public void UseResolverWithoutRegisteringServiceCallsResolver() { var di = new ServiceManager(); var resolver = new IndependentServiceResolver(); di.RegisterResolver(resolver); var service = di.GetService <IIndependentService>(); service.Should().NotBeNull(); service.Should().BeOfType <IndependentService>(); }
public void UseResolverForUndeclaredService() { var di = new ServiceManager(); var resolver = new IndependentServiceResolver(); di.RegisterResolver(resolver); di.RegisterTransient <IDependentService, DependentService>(); var service = di.GetService <IDependentService>(); service.Should().NotBeNull(); resolver.Called.Should().Be(1); }
public void UseResolverCalledMultipleForTransient() { var di = new ServiceManager(); var resolver = new IndependentServiceResolver(); di.RegisterResolver(resolver); di.RegisterTransient <IIndependentService, IndependentService>(); var service = di.GetService <IIndependentService>(); service.Should().NotBeNull(); service.Should().BeOfType <IndependentService>(); resolver.Called.Should().Be(1); var service2 = di.GetService <IIndependentService>(); service2.Should().NotBeNull(); service2.Should().BeOfType <IndependentService>(); resolver.Called.Should().Be(2); }
public void UseResolverCalledOnceForSingleton() { var di = new ServiceManager(); var resolver = new IndependentServiceResolver(); di.RegisterResolver(resolver); di.RegisterSingleton <IIndependentService, IndependentService>(); var service = di.GetService <IIndependentService>(); service.Should().NotBeNull(); service.Should().BeOfType <IndependentService>(); resolver.Called.Should().Be(1); var service2 = di.GetService <IIndependentService>(); service2.Should().NotBeNull(); service2.Should().BeOfType <IndependentService>(); resolver.Called.Should().Be(1); service.Should().Be(service2); }