override fun createCourse()

in intellij-plugin/Edu-Go/testSrc/com/jetbrains/edu/go/slow/checker/GoTheoryCheckerTest.kt [14:142]


  override fun createCourse(): Course {
    return course(language = GoLanguage.INSTANCE) {
      lesson {
        theoryTask("Theory") {
          goTaskFile("main.go", """
            package main
            
            import (
              "fmt"
            )
            
            func main() {
              fmt.Println("Hello!")
            }
          """)
          taskFile("go.mod", """
            module theory
          """)
        }
        theoryTask("TheoryWithCustomRunConfiguration") {
          goTaskFile("main.go", """
            package main
            
            import (
              "fmt"
              "os"
            )
            
            func main() {
              fmt.Println(os.Getenv("EXAMPLE_ENV"))
            }
          """)
          taskFile("go.mod", """
            module theorywithcustomrunconfiguration
          """)
          dir("runConfigurations") {
            xmlTaskFile("CustomRun.run.xml", $$"""
              <component name="ProjectRunConfigurationManager">
                <configuration default="false" name="CustomRun" type="GoApplicationRunConfiguration" factoryName="Go Application">
                  <module name="Go Course" />
                  <working_directory value="$TASK_DIR$" />
                  <envs>
                    <env name="EXAMPLE_ENV" value="Hello!" />
                  </envs>
                  <kind value="PACKAGE" />
                  <filePath value="$TASK_DIR$/main.go" />
                  <package value="theorywithcustomrunconfiguration" />
                  <directory value="$PROJECT_DIR$" />
                  <method v="2" />
                </configuration>
              </component>              
            """)
          }
        }
      }
      frameworkLesson {
        theoryTask("FrameworkTheoryWithCustomRunConfiguration1") {
          goTaskFile("main.go", """
            package main
            
            import (
              "fmt"
              "os"
            )
            
            func main() {
              fmt.Println(os.Getenv("EXAMPLE_ENV"))
            }
          """)
          taskFile("go.mod", """
            module task
          """)
          dir("runConfigurations") {
            xmlTaskFile("CustomRun.run.xml", $$"""
              <component name="ProjectRunConfigurationManager">
                <configuration default="false" name="CustomRun1" type="GoApplicationRunConfiguration" factoryName="Go Application">
                  <module name="Go Course" />
                  <working_directory value="$TASK_DIR$" />
                  <envs>
                    <env name="EXAMPLE_ENV" value="Hello from FrameworkTheory1!" />
                  </envs>
                  <kind value="PACKAGE" />
                  <package value="task" />
                  <directory value="$PROJECT_DIR$" />
                  <filePath value="$TASK_DIR$/main.go" />
                  <method v="2" />
                </configuration>
              </component>             
            """)
          }
        }
        theoryTask("FrameworkTheoryWithCustomRunConfiguration2") {
          goTaskFile("main.go", """
            package main
            
            import (
              "fmt"
              "os"
            )
            
            func main() {
              fmt.Println(os.Getenv("EXAMPLE_ENV"))
            }
          """)
          taskFile("go.mod", """
            module task
          """)
          dir("runConfigurations") {
            xmlTaskFile("CustomRun.run.xml", $$"""
              <component name="ProjectRunConfigurationManager">
                <configuration default="false" name="CustomRun2" type="GoApplicationRunConfiguration" factoryName="Go Application">
                  <module name="Go Course" />
                  <working_directory value="$TASK_DIR$" />
                  <envs>
                    <env name="EXAMPLE_ENV" value="Hello from FrameworkTheory2!" />
                  </envs>
                  <kind value="PACKAGE" />
                  <package value="task" />
                  <directory value="$PROJECT_DIR$" />
                  <filePath value="$TASK_DIR$/main.go" />
                  <method v="2" />
                </configuration>
              </component>             
            """)
          }
        }
      }
    }
  }