Beispiel #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);
        }
Beispiel #2
0
        public void HasRegistration_returns_false_if_no_contained_provider_has_the_key(IServiceRegistrationProvider[] providers,
                                                                                       ServiceRegistrationKey key)
        {
            // Arrange
            Mock.Get(providers[0]).Setup(x => x.HasRegistration(key)).Returns(false);
            Mock.Get(providers[1]).Setup(x => x.HasRegistration(key)).Returns(false);
            Mock.Get(providers[2]).Setup(x => x.HasRegistration(key)).Returns(false);
            var sut = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.HasRegistration(key);

            // Assert
            Assert.That(result, Is.False);
        }
Beispiel #3
0
        public void CanFulfilRequest_returns_false_if_no_contained_provider_can_fulfil_the_request(IServiceRegistrationProvider[] providers,
                                                                                                   ResolutionRequest request)
        {
            // Arrange
            Mock.Get(providers[0]).Setup(x => x.CanFulfilRequest(request)).Returns(false);
            Mock.Get(providers[1]).Setup(x => x.CanFulfilRequest(request)).Returns(false);
            Mock.Get(providers[2]).Setup(x => x.CanFulfilRequest(request)).Returns(false);
            var sut = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.CanFulfilRequest(request);

            // Assert
            Assert.That(result, Is.False);
        }
Beispiel #4
0
        public void HasRegistration_returns_true_if_any_contained_provider_has_the_registration(IServiceRegistrationProvider[] providers,
                                                                                                IServiceRegistration registration)
        {
            // Arrange
            Mock.Get(providers[0]).Setup(x => x.HasRegistration(registration)).Returns(false);
            Mock.Get(providers[1]).Setup(x => x.HasRegistration(registration)).Returns(true);
            Mock.Get(providers[2]).Setup(x => x.HasRegistration(registration)).Returns(false);
            var sut = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.HasRegistration(registration);

            // Assert
            Assert.That(result, Is.True);
        }
Beispiel #5
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));
        }
Beispiel #6
0
        public void Get_gets_from_the_first_provider_which_can_fulfil_the_request(IServiceRegistrationProvider[] providers,
                                                                                  ResolutionRequest request,
                                                                                  IServiceRegistration registration)
        {
            // Arrange
            Mock.Get(providers[0]).Setup(x => x.CanFulfilRequest(request)).Returns(false);
            Mock.Get(providers[1]).Setup(x => x.CanFulfilRequest(request)).Returns(true);
            Mock.Get(providers[1]).Setup(x => x.Get(request)).Returns(registration);
            Mock.Get(providers[2]).Setup(x => x.CanFulfilRequest(request)).Returns(false);
            var sut = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.Get(request);

            // Assert
            Assert.That(result, Is.SameAs(registration));
        }
Beispiel #7
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));
        }
Beispiel #8
0
        public void Get_only_gets_from_the_first_provider_which_can_fulfil_a_request(IServiceRegistrationProvider[] providers,
                                                                                     ResolutionRequest request,
                                                                                     IServiceRegistration registration)
        {
            // Arrange
            Mock.Get(providers[0]).Setup(x => x.CanFulfilRequest(request)).Returns(false);
            Mock.Get(providers[1]).Setup(x => x.CanFulfilRequest(request)).Returns(true);
            Mock.Get(providers[1]).Setup(x => x.Get(request)).Returns(registration);
            Mock.Get(providers[2]).Setup(x => x.CanFulfilRequest(request)).Returns(true);
            Mock.Get(providers[2]).Setup(x => x.Get(request)).Returns(registration);
            var sut = new StackOfRegistriesRegistrationProvider(providers);

            // Act
            var result = sut.Get(request);

            // Assert
            Mock.Get(providers[1]).Verify(x => x.Get(request), Times.Once);
            Mock.Get(providers[2]).Verify(x => x.Get(request), Times.Never);
        }