예제 #1
0
        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>();
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }