override fun createCourse()

in intellij-plugin/Edu-Rust/testSrc/com/jetbrains/edu/rust/slow/checker/RsCheckersTest.kt [14:160]


  override fun createCourse(): Course {
    return course(language = RsLanguage) {
      lesson {
        eduTask("Edu") {
          taskFile("Cargo.toml", """
            [package]
            name = "task"
            version = "0.1.0"
            edition = "2018"
          """)
          rustTaskFile("src/lib.rs", """
              pub fn foo() -> String {
                  String::from("foo")
              }
          """)
          rustTaskFile("tests/tests.rs", """
              use task::foo;

              #[test]
              fn test() {
                  assert_eq!(String::from("foo"), foo());
              }
          """)
        }
        eduTask("EduWithIgnoredTest") {
          taskFile("Cargo.toml", """
            [package]
            name = "task"
            version = "0.1.0"
            edition = "2018"
          """)
          rustTaskFile("src/lib.rs", """
              pub fn foo() -> String {
                  String::from("foo")
              }
          """)
          rustTaskFile("tests/tests.rs", """
              use task::foo;

              #[test]
              fn test() {
                  assert_eq!(String::from("foo"), foo());
              }
              
              #[test]
              #[ignore]
              fn ignored_test() {
                  assert_eq!(1, 2);
              }
          """)
        }
        outputTask("Output") {
          taskFile("Cargo.toml", """
            [package]
            name = "task"
            version = "0.1.0"
            edition = "2018"
          """)
          rustTaskFile("src/main.rs", """
              fn main() {
                  println!("Hello, World!");
              }
          """)
          taskFile("tests/output.txt") {
            withText("Hello, World!\n")
          }
        }
        outputTask("OutputIgnoreWarnings") {
          taskFile("Cargo.toml", """
            [package]
            name = "task"
            version = "0.1.0"
            edition = "2018"
          """)
          rustTaskFile("src/main.rs", """
              fn main() {
                  println!("Hello, World!");
              }
              fn foo() {}
          """)
          taskFile("tests/output.txt") {
            withText("Hello, World!\n")
          }
        }
        outputTask("OutputWithSeveralBinaryTargets") {
          taskFile("Cargo.toml", """
            [package]
            name = "task"
            version = "0.1.0"
            edition = "2018"
          """)
          rustTaskFile("src/main.rs", """
              fn main() {
                  println!("Hello, World!");
              }
          """)
          rustTaskFile("src/bin/foo.rs", """
              fn main() {
                  println!("Hello fom foo.rs!");
              }
          """)
          taskFile("tests/output.txt") {
            withText("Hello, World!\n")
          }
        }
        outputTask("OutputWithDependencies") {
          taskFile("Cargo.toml", """
            [package]
            name = "task"
            version = "0.1.0"
            edition = "2018"

            [dependencies]
            rand = "0.6.1"
          """)
          rustTaskFile("src/main.rs", """
              fn main() {
                  println!("Hello, World!");
              }
          """)
          taskFile("tests/output.txt") {
            withText("Hello, World!\n")
          }
        }
        outputTask("OutputWithInput") {
          taskFile("Cargo.toml", """
            [package]
            name = "task"
            version = "0.1.0"
            edition = "2018"
          """)
          rustTaskFile("src/main.rs", """
              fn main() {
                  let text = std::io::stdin().lines().next().unwrap();
                  println!("{}", text.unwrap() + ", World!");
              }
          """)
          taskFile("tests/output.txt") {
            withText("Hello, World!\n")
          }
          taskFile("tests/input.txt") {
            withText("Hello")
          }
        }
      }
    }
  }