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); }
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); }
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); }
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); }
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)); }
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)); }
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)); }
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); }