public void EnumerationShouldReturnEmptySet() { IProjectManager<Task, object> manager = new ProjectManager<Task, object>(); var alien = new Task(); // test: Enumerators should at least return empty sets Assert.IsNotNull(manager.ChildrenOf(alien), "ChildrenOf is null"); Assert.IsNotNull(manager.AncestorsOf(alien), "AncestorsOf is null"); Assert.IsNotNull(manager.DecendantsOf(alien), "DecendantsOf is null"); Assert.IsNotNull(manager.DependantsOf(alien), "DependantsOf is null"); Assert.IsNotNull(manager.PrecedentsOf(alien), "PrecedentsOf is null"); Assert.IsNotNull(manager.DirectDependantsOf(alien), "DirectDependantsOf is null"); Assert.IsNotNull(manager.DirectPrecedentsOf(alien), "DirectPrecedentsOf is null"); Assert.IsNotNull(manager.ResourcesOf(alien), "ResourcesOf is null"); Assert.IsNotNull(manager.TasksOf(alien), "TasksOf is null"); }
public void Create3LevelRelations() { IProjectManager<Task, object> manager = new ProjectManager<Task, object>(); var one = new Task(); var two = new Task(); var three = new Task(); manager.Add(one); manager.Add(two); manager.Add(three); // setup: one before two before three manager.Relate(one, two); manager.Relate(two, three); // test: check enumerations are established Assert.IsTrue(manager.DependantsOf(one).Count() == 2); Assert.IsTrue(manager.DependantsOf(two).Count() == 1); Assert.IsTrue(manager.DependantsOf(three).Count() == 0); Assert.IsTrue(manager.DirectDependantsOf(one).Count() == 1); Assert.IsTrue(manager.DirectDependantsOf(two).Count() == 1); Assert.IsTrue(manager.DirectDependantsOf(three).Count() == 0); Assert.IsTrue(manager.PrecedentsOf(one).Count() == 0); Assert.IsTrue(manager.PrecedentsOf(two).Count() == 1, string.Format("expected {0} != {1}", 1, manager.PrecedentsOf(two).Count())); Assert.IsTrue(manager.PrecedentsOf(three).Count() == 2); Assert.IsTrue(manager.DirectPrecedentsOf(one).Count() == 0); Assert.IsTrue(manager.DirectPrecedentsOf(two).Count() == 1); Assert.IsTrue(manager.DirectPrecedentsOf(three).Count() == 1); }
public void RelateMultipleDependants() { IProjectManager<Task, object> manager = new ProjectManager<Task, object>(); var one = new Task(); var two = new Task(); var three = new Task(); manager.Add(one); manager.Add(two); manager.Add(three); // setup: confirm no relations exists Assert.IsTrue(!manager.HasRelations(one)); Assert.IsTrue(!manager.HasRelations(two)); Assert.IsTrue(!manager.HasRelations(three)); // test: multiple relation setup manager.Relate(one, two); manager.Relate(one, three); Assert.IsTrue(manager.HasRelations(one)); Assert.IsTrue(manager.HasRelations(two)); Assert.IsTrue(manager.HasRelations(three)); Assert.IsTrue(manager.DirectDependantsOf(one).Count() == 2); Assert.IsTrue(manager.DirectPrecedentsOf(two).Count() == 1); Assert.IsTrue(manager.DirectPrecedentsOf(three).Count() == 1); }
public void CircularRelationLevel2() { IProjectManager<Task, object> manager = new ProjectManager<Task, object>(); var one = new Task(); var two = new Task(); var three = new Task(); manager.Add(one); manager.Add(two); manager.Add(three); // setup: one before two before three; manager.Relate(one, two); manager.Relate(two, three); Assert.IsTrue(manager.HasRelations(one)); Assert.IsTrue(manager.HasRelations(two)); Assert.IsTrue(manager.HasRelations(three)); Assert.IsTrue(manager.DirectDependantsOf(one).Contains(two)); Assert.IsTrue(manager.DirectDependantsOf(two).Contains(three)); Assert.IsTrue(manager.PrecedentsOf(three).Contains(one)); Assert.IsTrue(manager.PrecedentsOf(three).Contains(two)); // test: prevent circular relation (no effect) manager.Relate(three, one); Assert.IsTrue(manager.HasRelations(one)); Assert.IsTrue(manager.HasRelations(two)); Assert.IsTrue(manager.HasRelations(three)); Assert.IsTrue(manager.DirectDependantsOf(one).Contains(two)); Assert.IsTrue(manager.DirectDependantsOf(two).Contains(three)); Assert.IsTrue(manager.PrecedentsOf(three).Contains(one)); Assert.IsTrue(manager.PrecedentsOf(three).Contains(two)); }
public void KnownTasksEnumeration() { IProjectManager<Task, object> manager = new ProjectManager<Task, object>(); var local = new Task(); manager.Add(local); Assert.IsNotNull(manager.ChildrenOf(local)); Assert.IsNotNull(manager.AncestorsOf(local)); Assert.IsNotNull(manager.DecendantsOf(local)); Assert.IsNotNull(manager.DependantsOf(local)); Assert.IsNotNull(manager.PrecedentsOf(local)); Assert.IsNotNull(manager.DirectDependantsOf(local)); Assert.IsNotNull(manager.DirectPrecedentsOf(local)); Assert.IsNotNull(manager.ResourcesOf(local)); Assert.IsNotNull(manager.TasksOf(local)); }