Exemplo n.º 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>();
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }