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