public void Replace_ReplacesFirstServiceWithMatchingServiceType() { // Arrange var collection = new ServiceCollection(); var descriptor1 = new ServiceDescriptor(typeof(IFakeService), typeof(FakeService), ServiceLifetime.Transient); var descriptor2 = new ServiceDescriptor(typeof(IFakeService), typeof(FakeService), ServiceLifetime.Transient); collection.Add(descriptor1); collection.Add(descriptor2); var descriptor3 = new ServiceDescriptor(typeof(IFakeService), typeof(FakeService), ServiceLifetime.Singleton); // Act collection.Replace(descriptor3); // Assert Assert.Equal(new[] { descriptor2, descriptor3 }, collection); }
public void Replace_AddsServiceIfServiceTypeIsNotRegistered() { // Arrange var collection = new ServiceCollection(); var descriptor1 = new ServiceDescriptor(typeof(IFakeService), typeof(FakeService), ServiceLifetime.Transient); var descriptor2 = new ServiceDescriptor(typeof(IFakeOuterService), typeof(FakeOuterService), ServiceLifetime.Transient); collection.Add(descriptor1); // Act collection.Replace(descriptor2); // Assert Assert.Equal(new[] { descriptor1, descriptor2 }, collection); }