示例#1
0
        public void GetAll_can_filter_by_type_into_contained_providers(IServiceRegistrationProvider[] providers)
        {
            // Arrange
            var type = typeof(ISampleService);
            var sut  = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.GetAll(type);

            // Assert
            Mock.Get(providers[0]).Verify(x => x.GetAll(type), Times.Once);
            Mock.Get(providers[1]).Verify(x => x.GetAll(type), Times.Once);
            Mock.Get(providers[2]).Verify(x => x.GetAll(type), Times.Once);
        }
示例#2
0
        public void GetAll_does_not_return_registrations_which_are_overridden_in_child_registries(IServiceRegistrationProvider[] providers,
                                                                                                  [Registration(Name = "Same")] IServiceRegistration overriddenRegistration,
                                                                                                  [Registration(Name = "Same")] IServiceRegistration overridingRegistration)
        {
            // Arrange
            Mock.Get(providers[2]).Setup(x => x.GetAll()).Returns(new [] { overriddenRegistration });
            Mock.Get(providers[0]).Setup(x => x.GetAll()).Returns(new [] { overridingRegistration });

            var sut = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.GetAll();

            // Assert
            Assert.That(result, Has.Exactly(1).Items);
            Assert.That(result, Has.One.SameAs(overridingRegistration));
        }
示例#3
0
        public void GetAll_can_merge_non_conflicting_registrations_from_multiple_providers(IServiceRegistrationProvider[] providers,
                                                                                           [Registration(Name = "One")] IServiceRegistration registration1,
                                                                                           [Registration(Name = "Two")] IServiceRegistration registration2)
        {
            // Arrange
            Mock.Get(providers[2]).Setup(x => x.GetAll()).Returns(new [] { registration1 });
            Mock.Get(providers[0]).Setup(x => x.GetAll()).Returns(new [] { registration2 });

            var sut = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.GetAll();

            // Assert
            Assert.That(result, Has.Exactly(2).Items);
            Assert.That(result, Has.One.SameAs(registration1));
            Assert.That(result, Has.One.SameAs(registration2));
        }