Example #1
0
        private void InitializeModel(string includees)
        {
            model = new Model("Test Model");
            model.AddService <ITaskManagementService>(new TaskManagementService());
            t   = new TestTask(model, "Top Task");
            t1  = new TestTask(model, "Task 1");
            t2  = new TestTask(model, "Task 2");
            t3  = new TestTask(model, "Task 3");
            t11 = new TestTask(model, "Task 1.1");
            t12 = new TestTask(model, "Task 1.2");
            t13 = new TestTask(model, "Task 1.3");
            t21 = new TestTask(model, "Task 2.1");
            t22 = new TestTask(model, "Task 2.2");
            t23 = new TestTask(model, "Task 2.3");
            t31 = new TestTask(model, "Task 3.1");
            t32 = new TestTask(model, "Task 3.2");
            t33 = new TestTask(model, "Task 3.3");

            tp = new TaskProcessor(model, "TP1", Guid.NewGuid(), t);

            if (include("t1", includees))
            {
                t.AddChildEdge(t1);
            }
            if (include("t2", includees))
            {
                t.AddChildEdge(t2);
            }
            if (include("t3", includees))
            {
                t.AddChildEdge(t3);
            }

            tL1 = new TaskList(model, "Task 1 Children", Guid.NewGuid(), t1);
            tL2 = new TaskList(model, "Task 2 Children", Guid.NewGuid(), t2);
            tL3 = new TaskList(model, "Task 3 Children", Guid.NewGuid(), t3);

            if (include("t11", includees))
            {
                tL1.AppendTask(t11);
            }
            if (include("t12", includees))
            {
                tL1.AppendTask(t12);
            }
            if (include("t13", includees))
            {
                tL1.AppendTask(t13);
            }
            if (include("t21", includees))
            {
                tL2.AppendTask(t21);
            }
            if (include("t22", includees))
            {
                tL2.AppendTask(t22);
            }
            if (include("t23", includees))
            {
                tL2.AppendTask(t23);
            }
            if (include("t31", includees))
            {
                tL3.AppendTask(t31);
            }
            if (include("t32", includees))
            {
                tL3.AppendTask(t32);
            }
            if (include("t33", includees))
            {
                tL3.AppendTask(t33);
            }

            Highpoint.Sage.Graphs.Validity.ValidationService vm = new Highpoint.Sage.Graphs.Validity.ValidationService(t);

//			model.Start();  AEL: I want control in the tests over when the model is started/validated.
        }
Example #2
0
        public void TestSynchronizeTasks()
        {
            InitializeModel("t,t1,t2,t3,t11,t12,t13,t21,t22,t23,t31,t32");

            Assert.IsTrue(!t11.ValidityState, "Task 11 is valid when it should be invalid");
            Assert.IsTrue(!t12.ValidityState, "Task 12 is valid when it should be invalid");
            Assert.IsTrue(!t13.ValidityState, "Task 13 is valid when it should be invalid");
            Assert.IsTrue(!t21.ValidityState, "Task 21 is valid when it should be invalid");
            Assert.IsTrue(!t22.ValidityState, "Task 22 is valid when it should be invalid");
            Assert.IsTrue(!t23.ValidityState, "Task 23 is valid when it should be invalid");
            Assert.IsTrue(!t31.ValidityState, "Task 31 is valid when it should be invalid");
            Assert.IsTrue(!t32.ValidityState, "Task 32 is valid when it should be invalid");

            model.Start();

            Assert.IsTrue(t11.ValidityState, "Task 11 is invalid when it should be valid");
            Assert.IsTrue(t12.ValidityState, "Task 12 is invalid when it should be valid");
            Assert.IsTrue(t13.ValidityState, "Task 13 is invalid when it should be valid");
            Assert.IsTrue(t21.ValidityState, "Task 21 is invalid when it should be valid");
            Assert.IsTrue(t22.ValidityState, "Task 22 is invalid when it should be valid");
            Assert.IsTrue(t23.ValidityState, "Task 23 is invalid when it should be valid");
            Assert.IsTrue(t31.ValidityState, "Task 31 is invalid when it should be valid");
            Assert.IsTrue(t32.ValidityState, "Task 32 is invalid when it should be valid");


            // Synchronize two valid tasks from two different task lists
            Synchronize(t12, t32);
            Assert.IsTrue(!t12.ValidityState, "Task 12 is still valid even after being synchronized with Task 32");
            Assert.IsTrue(!t32.ValidityState, "Task 32 is still valid even after being synchronized with Task 12");

            // Create new tasks with task list
            TestTask nt = new TestTask(model, "New Task");

            t.AddChildEdge(nt);
            TestTask nt1 = new TestTask(model, "New Task 1");
            TestTask nt2 = new TestTask(model, "New Task 2");
            TestTask nt3 = new TestTask(model, "New Task 3");

            tLnew = new TaskList(model, "Task new 1 Children", Guid.NewGuid(), nt);
            tLnew.AppendTask(nt1);
            tLnew.AppendTask(nt2);
            tLnew.AppendTask(nt3);


            // Sychnronize a new task before a validated task - it should invalidate the following task.
            Assert.IsTrue(!nt3.ValidityState, "New Task is valid when it should be invalid");
            Assert.IsTrue(t21.ValidityState, "Task 21 is invalid when it should be valid");
            Synchronize(nt3, t21);
            Assert.IsTrue(!nt3.ValidityState, "New Task is valid when it should be invalid");
            Assert.IsTrue(!t21.ValidityState, "Task 21 is valid when it should be invalid");

            // Sychnronize a validated task with a new task
            Assert.IsTrue(t11.ValidityState, "Task 11 is invalid when it should be valid");
            Assert.IsTrue(!nt2.ValidityState, "New Task is valid when it should be invalid");
            Synchronize(t11, nt2);
            Assert.IsTrue(!t11.ValidityState, "Task 11 is valid when it should be invalid");
            Assert.IsTrue(!nt2.ValidityState, "New Task is valid when it should be invalid");

            // Sychnronize a new task after a validated task - it should NOT invalidate the preceding task.
            Assert.IsTrue(!nt1.ValidityState, "New Task is valid when it should be invalid");
            Assert.IsTrue(t31.ValidityState, "Task 31 is invalid when it should be valid");
            Synchronize(t31, nt1);
            Assert.IsTrue(!nt1.ValidityState, "New Task is valid when it should be invalid");
            Assert.IsTrue(!t31.ValidityState, "Task 31 is valid when it should be invalid");

            Validate("Test 2");

            Assert.IsTrue(t12.ValidityState, "Task 12 is not valid after being validated");
            Assert.IsTrue(t13.ValidityState, "Task 13 is not valid after being validated");
            Assert.IsTrue(t21.ValidityState, "Task 21 is not valid after being validated");
            Assert.IsTrue(t22.ValidityState, "Task 22 is not valid after being validated");
            Assert.IsTrue(t23.ValidityState, "Task 23 is not valid after being validated");
            Assert.IsTrue(t32.ValidityState, "Task 32 is not valid after being validated");
            Assert.IsTrue(nt.ValidityState, "New Task is not valid after being validated");
            Assert.IsTrue(nt1.ValidityState, "New Task 1 is not valid after being validated");
            Assert.IsTrue(nt2.ValidityState, "New Task 2 is not valid after being validated");
        }