Ejemplo n.º 1
0
        public void GetDependencies()
        {
            var advice1 = ObjectMother.GetAdvice(name: "1");
            var advice2 = ObjectMother.GetAdvice(name: "2");
            var advice3 = ObjectMother.GetAdvice(name: "3");

            var orderingProviderMock1 = MockRepository.GenerateStrictMock <IAdviceOrderingProvider>();
            var orderingProviderMock2 = MockRepository.GenerateStrictMock <IAdviceOrderingProvider>();
            var orderingMock1         = MockRepository.GenerateStrictMock <IOrdering>();
            var orderingMock2         = MockRepository.GenerateStrictMock <IOrdering>();
            var orderingMock3         = MockRepository.GenerateStrictMock <IOrdering>();

            orderingProviderMock1.Expect(x => x.GetOrderings()).Return(new[] { orderingMock1, orderingMock2 }.AsOneTime());
            orderingProviderMock2.Expect(x => x.GetOrderings()).Return(new[] { orderingMock3 }.AsOneTime());

            var provider = new AdviceDependencyProvider(new[] { orderingProviderMock1, orderingProviderMock2 });

            orderingMock1.Expect(x => x.DependVisit(provider, advice1, advice2)).Return(false);
            orderingMock1.Expect(x => x.DependVisit(provider, advice2, advice1)).Return(true);
            orderingMock1.Expect(x => x.DependVisit(provider, advice2, advice3)).Return(false);
            orderingMock1.Expect(x => x.DependVisit(provider, advice3, advice2)).Return(false);
            orderingMock1.Expect(x => x.DependVisit(provider, advice1, advice3)).Return(false);
            orderingMock1.Expect(x => x.DependVisit(provider, advice3, advice1)).Return(false);

            orderingMock2.Expect(x => x.DependVisit(provider, advice1, advice2)).Return(false);
            orderingMock2.Expect(x => x.DependVisit(provider, advice2, advice1)).Return(false);
            orderingMock2.Expect(x => x.DependVisit(provider, advice2, advice3)).Return(false);
            orderingMock2.Expect(x => x.DependVisit(provider, advice3, advice2)).Return(false);
            orderingMock2.Expect(x => x.DependVisit(provider, advice1, advice3)).Return(true);
            orderingMock2.Expect(x => x.DependVisit(provider, advice3, advice1)).Return(false);

            orderingMock3.Expect(x => x.DependVisit(provider, advice1, advice2)).Return(false);
            orderingMock3.Expect(x => x.DependVisit(provider, advice2, advice1)).Return(false);
            orderingMock3.Expect(x => x.DependVisit(provider, advice2, advice3)).Return(true);
            orderingMock3.Expect(x => x.DependVisit(provider, advice3, advice2)).Return(false);
            orderingMock3.Expect(x => x.DependVisit(provider, advice1, advice3)).Return(false);
            orderingMock3.Expect(x => x.DependVisit(provider, advice3, advice1)).Return(false);

            var result = provider.GetDependencies(new[] { advice1, advice2, advice3 }).ToArray();

            orderingProviderMock1.VerifyAllExpectations();
            orderingProviderMock2.VerifyAllExpectations();
            orderingMock1.VerifyAllExpectations();
            orderingMock2.VerifyAllExpectations();
            orderingMock3.VerifyAllExpectations();
            var dependency1 = Tuple.Create(advice2, advice1);
            var dependency2 = Tuple.Create(advice1, advice3);
            var dependency3 = Tuple.Create(advice2, advice3);

            Assert.That(result, Is.EquivalentTo(new[] { dependency1, dependency2, dependency3 }));
        }
Ejemplo n.º 2
0
        public void GetDependencies_HashSet()
        {
            var advice1 = ObjectMother.GetAdvice(name: "1");
            var advice2 = ObjectMother.GetAdvice(name: "2");

            var orderingProviderMock = MockRepository.GenerateStrictMock <IAdviceOrderingProvider> ();
            var orderingMock1        = MockRepository.GenerateStrictMock <IOrdering>();
            var orderingMock2        = MockRepository.GenerateStrictMock <IOrdering>();

            orderingProviderMock.Expect(x => x.GetOrderings()).Return(new[] { orderingMock1, orderingMock2 });

            var provider = new AdviceDependencyProvider(new[] { orderingProviderMock });

            orderingMock1.Expect(x => x.DependVisit(provider, advice1, advice2)).Return(true);
            orderingMock1.Expect(x => x.DependVisit(provider, advice2, advice1)).Return(false);

            orderingMock2.Expect(x => x.DependVisit(provider, advice1, advice2)).Return(true);
            orderingMock2.Expect(x => x.DependVisit(provider, advice2, advice1)).Return(false);

            var result = provider.GetDependencies(new[] { advice1, advice2 }).ToArray();

            Assert.That(result, Has.Length.EqualTo(1));
        }
Ejemplo n.º 3
0
 public void SetUp()
 {
     _provider = new AdviceDependencyProvider(Enumerable.Empty <IAdviceOrderingProvider>());
 }