コード例 #1
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestLessonWrite()
        {
            List <ConSim.Lib.Classes.clsTask> Tasks =
                new List <ConSim.Lib.Classes.clsTask> ();
            List <ConSim.Lib.Classes.clsModule> AllowedModules =
                new List <ConSim.Lib.Classes.clsModule> ();

            Tasks.Add(task);
            AllowedModules.Add(module);

            ConSim.Lib.Classes.clsLesson lesson =
                new ConSim.Lib.Classes.clsLesson(Name, Version, Tasks, AllowedModules, lessonDir);
            lesson.save(lessonJSON);

            lesson = new ConSim.Lib.Classes.clsLesson(lessonJSON);

            // Test that the lesson was read back correctly
            Assert.AreEqual(lesson.Name, Name);
            Assert.AreEqual(lesson.Version, Version);
            Assert.AreEqual(lesson.activeTask.ExpectedResult,
                            Tasks [0].ExpectedResult);
            Assert.AreEqual(lesson.activeTask.LongDescription,
                            Tasks [0].LongDescription);
            Assert.AreEqual(lesson.activeTask.Name, Tasks [0].Name);
            Assert.AreEqual(lesson.activeTask.ShortDescription,
                            Tasks [0].ShortDescription);
            Assert.AreEqual(lesson.AllowedModules [0].filename, module.filename);
            Assert.AreEqual(lesson.AllowedModules [0].gettype, module.gettype);
        }
コード例 #2
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestCommandMatch()
        {
            List <ConSim.Lib.Classes.clsTask> Tasks =
                new List <ConSim.Lib.Classes.clsTask> ();

            List <ConSim.Lib.Classes.clsModule> AllowedModules =
                new List <ConSim.Lib.Classes.clsModule> ();

            Tasks.Add(
                new ConSim.Lib.Classes.clsTask(task.Name, task.ShortDescription,
                                               task.LongDescription, "increment 6", false, false, true, false, null,
                                               null)
                );

            AllowedModules.Add(module);

            ConSim.Lib.Classes.clsLesson lesson =
                new ConSim.Lib.Classes.clsLesson(Name, Version, Tasks, AllowedModules,
                                                 lessonDir);

            string[] args = new string[1];

            //Fail Test
            args[0] = "4";
            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), false);
            //Success Test
            args[0] = "6";
            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), true);
        }
コード例 #3
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestModuleLoad()
        {
            ConSim.Lib.Classes.clsLesson lesson =
                new ConSim.Lib.Classes.clsLesson(lessonJSON);

            ConSim.Lib.Interfaces.iModule testMod =
                lesson.clsToiMod(lesson.AllowedModules[0]);

            // Test the loaded module returns expected name
            // and version.
            Assert.AreEqual(testMod.getName(), "TestModule");
            Assert.AreEqual(testMod.getVersion(), "TEST");

            string[] args = new string[1];
            args[0] = "1";

            testMod.run("increment", args);

            // Test that the increment module returns the
            // expected result.
            Assert.AreEqual(testMod.standardOutput(), "2");

            args[0] = "Invalid";

            testMod.run("increment", args);

            // Test that the increment module outputs to
            // the error stream when given a weird
            // value.
            Assert.AreEqual(testMod.errorOutput(), "Unexpected format in arguments");
        }
コード例 #4
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestLessonFlow()
        {
            List <ConSim.Lib.Classes.clsTask> Tasks =
                new List <ConSim.Lib.Classes.clsTask> ();

            List <ConSim.Lib.Classes.clsModule> AllowedModules =
                new List <ConSim.Lib.Classes.clsModule> ();

            Tasks.Add(
                new ConSim.Lib.Classes.clsTask(task.Name, task.ShortDescription,
                                               task.LongDescription, "2")
                );

            Tasks.Add(
                new ConSim.Lib.Classes.clsTask(task.Name, task.ShortDescription,
                                               task.LongDescription, "3")
                );

            AllowedModules.Add(module);

            ConSim.Lib.Classes.clsLesson lesson =
                new ConSim.Lib.Classes.clsLesson(Name, Version, Tasks, AllowedModules,
                                                 lessonDir);

            lesson.save(lessonJSON);

            lesson = new ConSim.Lib.Classes.clsLesson(lessonJSON);

            string[] args = new string[1];

            //Test a failed try returns false
            args[0] = lesson.activeTask.ExpectedResult.ToString();
            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), false);

            //Test a weird value still returns false
            args[0] = "random";
            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), false);

            //Test the right value returns false but advances the task
            args[0] = (Convert.ToInt32(lesson.activeTask.ExpectedResult) - 1).
                      ToString();
            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), false);

            Assert.AreNotEqual(lesson.activeTask.ExpectedResult, 2);

            //Test the final task completion returns true
            args[0] = (Convert.ToInt32(lesson.activeTask.ExpectedResult) - 1).
                      ToString();

            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), true);
        }
コード例 #5
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestSandboxLessonFlow()
        {
            // Copy the module file for sandbox tests
            if (Directory.Exists(sandboxLessonDir + ps + "Modules" + ps) == false)
            {
                Directory.CreateDirectory(sandboxLessonDir + ps + "Modules" + ps);
            }

            File.Copy(lessonModule, sandboxLessonDir + ps + "Modules" +
                      ps + DLLName, true);

            List <ConSim.Lib.Classes.clsTask> Tasks =
                new List <ConSim.Lib.Classes.clsTask> ();

            List <ConSim.Lib.Classes.clsModule> AllowedModules =
                new List <ConSim.Lib.Classes.clsModule> ();

            AllowedModules.Add(module);

            ConSim.Lib.Classes.clsLesson lesson =
                new ConSim.Lib.Classes.clsLesson(Name, Version, Tasks, AllowedModules,
                                                 sandboxLessonDir);

            lesson.save(sandboxLessonJSON);

            lesson = new ConSim.Lib.Classes.clsLesson(sandboxLessonJSON);

            string[] args = new string[1];

            //Test multiple commands and ensure the expected output
            args[0] = "1";
            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), false);
            Assert.AreEqual(lesson.lastStandardOutput, "2");
            args[0] = "random";
            Assert.AreEqual(lesson.attemptTask("increment", args,
                                               lesson.clsToiMod(module)), false);
            Assert.AreEqual(lesson.lastErrorOutput,
                            "Unexpected format in arguments");
        }
コード例 #6
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestCommandMatch()
        {
            List<ConSim.Lib.Classes.clsTask> Tasks =
            new List<ConSim.Lib.Classes.clsTask> ();

              List<ConSim.Lib.Classes.clsModule> AllowedModules =
            new List<ConSim.Lib.Classes.clsModule> ();

              Tasks.Add (
            new ConSim.Lib.Classes.clsTask (task.Name, task.ShortDescription,
              task.LongDescription, "increment 6",false,false,true, false, null,
              null)
              );

              AllowedModules.Add (module);

              ConSim.Lib.Classes.clsLesson lesson =
            new ConSim.Lib.Classes.clsLesson (Name, Version, Tasks, AllowedModules,
              lessonDir);

              string[] args = new string[1];

              //Fail Test
              args[0] = "4";
              Assert.AreEqual (lesson.attemptTask ("increment", args,
            lesson.clsToiMod (module)), false);
              //Success Test
              args[0] = "6";
              Assert.AreEqual (lesson.attemptTask ("increment", args,
            lesson.clsToiMod (module)), true);
        }
コード例 #7
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestSandboxLessonFlow()
        {
            // Copy the module file for sandbox tests
              if (Directory.Exists (sandboxLessonDir + ps + "Modules" + ps) == false)
            Directory.CreateDirectory (sandboxLessonDir + ps + "Modules" + ps);

              File.Copy (lessonModule, sandboxLessonDir + ps + "Modules" +
            ps + DLLName, true);

              List<ConSim.Lib.Classes.clsTask> Tasks =
            new List<ConSim.Lib.Classes.clsTask> ();

              List<ConSim.Lib.Classes.clsModule> AllowedModules =
            new List<ConSim.Lib.Classes.clsModule> ();

              AllowedModules.Add (module);

              ConSim.Lib.Classes.clsLesson lesson =
            new ConSim.Lib.Classes.clsLesson (Name, Version, Tasks, AllowedModules,
              sandboxLessonDir);

              lesson.save (sandboxLessonJSON);

              lesson = new ConSim.Lib.Classes.clsLesson  (sandboxLessonJSON);

              string[] args = new string[1];

              //Test multiple commands and ensure the expected output
              args[0] = "1";
              Assert.AreEqual(lesson.attemptTask("increment", args,
            lesson.clsToiMod(module)), false);
              Assert.AreEqual (lesson.lastStandardOutput, "2");
              args[0] = "random";
              Assert.AreEqual (lesson.attemptTask ("increment", args,
            lesson.clsToiMod(module)), false);
              Assert.AreEqual (lesson.lastErrorOutput,
            "Unexpected format in arguments");
        }
コード例 #8
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestModuleLoad()
        {
            ConSim.Lib.Classes.clsLesson lesson =
            new ConSim.Lib.Classes.clsLesson (lessonJSON);

              ConSim.Lib.Interfaces.iModule testMod =
            lesson.clsToiMod(lesson.AllowedModules[0]);

              // Test the loaded module returns expected name
              // and version.
              Assert.AreEqual (testMod.getName (), "TestModule");
              Assert.AreEqual (testMod.getVersion (), "TEST");

              string[] args = new string[1];
              args[0] = "1";

              testMod.run ("increment", args);

              // Test that the increment module returns the
              // expected result.
              Assert.AreEqual (testMod.standardOutput(), "2");

              args[0] = "Invalid";

              testMod.run ("increment", args);

              // Test that the increment module outputs to
              // the error stream when given a weird
              // value.
              Assert.AreEqual (testMod.errorOutput(), "Unexpected format in arguments");
        }
コード例 #9
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestLessonWrite()
        {
            List<ConSim.Lib.Classes.clsTask> Tasks =
            new List<ConSim.Lib.Classes.clsTask> ();
              List<ConSim.Lib.Classes.clsModule> AllowedModules =
            new List<ConSim.Lib.Classes.clsModule> ();

              Tasks.Add (task);
              AllowedModules.Add (module);

              ConSim.Lib.Classes.clsLesson lesson =
            new ConSim.Lib.Classes.clsLesson (Name, Version, Tasks, AllowedModules,lessonDir);
              lesson.save (lessonJSON);

              lesson = new ConSim.Lib.Classes.clsLesson (lessonJSON);

              // Test that the lesson was read back correctly
              Assert.AreEqual (lesson.Name, Name);
              Assert.AreEqual (lesson.Version, Version);
              Assert.AreEqual (lesson.activeTask.ExpectedResult,
            Tasks [0].ExpectedResult);
              Assert.AreEqual (lesson.activeTask.LongDescription,
            Tasks [0].LongDescription);
              Assert.AreEqual (lesson.activeTask.Name, Tasks [0].Name);
              Assert.AreEqual (lesson.activeTask.ShortDescription,
            Tasks [0].ShortDescription);
              Assert.AreEqual (lesson.AllowedModules [0].filename, module.filename);
              Assert.AreEqual (lesson.AllowedModules [0].gettype, module.gettype);
        }
コード例 #10
0
ファイル: LessonTests.cs プロジェクト: hazardfn/ConSim
        public void TestLessonFlow()
        {
            List<ConSim.Lib.Classes.clsTask> Tasks =
            new List<ConSim.Lib.Classes.clsTask> ();

              List<ConSim.Lib.Classes.clsModule> AllowedModules =
            new List<ConSim.Lib.Classes.clsModule> ();

              Tasks.Add (
            new ConSim.Lib.Classes.clsTask (task.Name, task.ShortDescription,
              task.LongDescription, "2")
              );

              Tasks.Add (
            new ConSim.Lib.Classes.clsTask (task.Name, task.ShortDescription,
              task.LongDescription, "3")
              );

              AllowedModules.Add (module);

              ConSim.Lib.Classes.clsLesson lesson =
            new ConSim.Lib.Classes.clsLesson (Name, Version, Tasks, AllowedModules,
              lessonDir);

              lesson.save (lessonJSON);

              lesson = new ConSim.Lib.Classes.clsLesson (lessonJSON);

              string[] args = new string[1];

              //Test a failed try returns false
              args[0] = lesson.activeTask.ExpectedResult.ToString();
              Assert.AreEqual(lesson.attemptTask("increment", args,
            lesson.clsToiMod(module)), false);

              //Test a weird value still returns false
              args[0] = "random";
              Assert.AreEqual (lesson.attemptTask ("increment", args,
            lesson.clsToiMod(module)), false);

              //Test the right value returns false but advances the task
              args[0] = (Convert.ToInt32(lesson.activeTask.ExpectedResult) - 1).
            ToString();
              Assert.AreEqual (lesson.attemptTask ("increment", args,
            lesson.clsToiMod(module)), false);

              Assert.AreNotEqual (lesson.activeTask.ExpectedResult, 2);

              //Test the final task completion returns true
              args[0] = (Convert.ToInt32(lesson.activeTask.ExpectedResult) - 1).
            ToString();

              Assert.AreEqual (lesson.attemptTask ("increment", args,
            lesson.clsToiMod(module)), true);
        }