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
            });
        }
Beispiel #2
0
        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);
            });
        }