public void ServiceInstanceCanBeResolved() { // Arrange var collection = new ServiceCollection(); var instance = new FakeService(); collection.AddSingleton(typeof(IFakeServiceInstance), instance); var provider = CreateServiceProvider(collection); // Act var service = provider.GetService<IFakeServiceInstance>(); // Assert Assert.Same(instance, service); }
public void OuterServiceCanHaveOtherServicesInjected() { // Arrange var collection = new ServiceCollection(); var fakeService = new FakeService(); collection.AddTransient<IFakeOuterService, FakeOuterService>(); collection.AddSingleton<IFakeService>(x => fakeService); collection.AddTransient<IFakeMultipleService, FakeOneMultipleService>(); collection.AddTransient<IFakeMultipleService, FakeTwoMultipleService>(); var provider = CreateServiceProvider(collection); // Act var services = provider.GetService<IFakeOuterService>(); // Assert Assert.Same(fakeService, services.SingleService); Assert.Collection(services.MultipleServices.OrderBy(s => s.GetType().FullName), service => Assert.IsType<FakeOneMultipleService>(service), service => Assert.IsType<FakeTwoMultipleService>(service)); }