public void ShouldSortByDependencies() { var a = new DependedObject("A"); var b = new DependedObject("B"); var c = new DependedObject("C"); var d = new DependedObject("D"); b.Dependencies.Add(a); c.Dependencies.Add(a); c.Dependencies.Add(d); d.Dependencies.Add(b); ShouldSortedCorrectly(new List <DependedObject> { a, b, c, d }); ShouldSortedCorrectly(new List <DependedObject> { d, c, b, a }); ShouldSortedCorrectly(new List <DependedObject> { a, c, d, b }); ShouldSortedCorrectly(new List <DependedObject> { c, a, d, b }); }
public void Should_SortByDependencies() { var a = new DependedObject("A"); var b = new DependedObject("B"); var c = new DependedObject("C"); var d = new DependedObject("D"); b.Dependencies.Add(a); c.Dependencies.Add(a); c.Dependencies.Add(d); d.Dependencies.Add(b); ShouldSortedCorrectly(new List<DependedObject> { a, b, c, d }); ShouldSortedCorrectly(new List<DependedObject> { d, c, b, a }); ShouldSortedCorrectly(new List<DependedObject> { a, c, d, b }); ShouldSortedCorrectly(new List<DependedObject> { c, a, d, b }); }
public void Should_Throw_Cyclic_Exception() { var a = new DependedObject("A"); var b = new DependedObject("B"); var c = new DependedObject("C"); b.Dependencies.Add(a); c.Dependencies.Add(b); a.Dependencies.Add(c); var dependedObjects = new List <DependedObject>() { a, b, c }; Assert.Throws <ArgumentException>(() => { dependedObjects.SortByDependencies(o => o.Dependencies); }); }