public void WebApi_DependencyResolver_GetService_should_return_null_when_unresolved()
        {
            HttpConfiguration unitTestWebApiConfiguration = new HttpConfiguration();

            ApplicationDependencyInjection di = new ApplicationDependencyInjectionBuilder()
                                                .ConfigureServices(services => { })
                                                .AddWebApiDependencyResolver(unitTestWebApiConfiguration)
                                                .Build();

            using ( di )
            {
                DependencyInjectionWebApiDependencyResolver webApiResolverInstance = di.GetClients()
                                                                                     .OfType <DependencyInjectionWebApiDependencyResolver>()
                                                                                     .Single();

                //

                IDependencyResolver webApiResolver = webApiResolverInstance;

                //

                {
                    Object implementation = webApiResolver.GetService(typeof(INonRegisteredService));
                    implementation.ShouldBeNull();
                }

                // And call it again for good measure:
                {
                    Object implementation = webApiResolver.GetService(typeof(INonRegisteredService));
                    implementation.ShouldBeNull();
                }
            }
        }
        public void WebApi_DependencyResolver_GetServices_should_return_empty_enumerable_when_unresolved()
        {
            HttpConfiguration unitTestWebApiConfiguration = new HttpConfiguration();

            ApplicationDependencyInjection di = new ApplicationDependencyInjectionBuilder()
                                                .ConfigureServices(services => { })
                                                .AddWebApiDependencyResolver(unitTestWebApiConfiguration)
                                                .Build();

            using ( di )
            {
                DependencyInjectionWebApiDependencyResolver webApiResolverInstance = di.GetClients()
                                                                                     .OfType <DependencyInjectionWebApiDependencyResolver>()
                                                                                     .Single();

                //

                IDependencyResolver webApiResolver = webApiResolverInstance;

                //

                IEnumerable <Object> services = webApiResolver.GetServices(typeof(INonRegisteredService));
                _ = services.ShouldNotBeNull();
                services.Count().ShouldBe(expected: 0);

                // Check twice, in case of IEnumerable<T> implementation shenanigans:
                services.Count().ShouldBe(expected: 0);
            }
        }
Ejemplo n.º 3
0
        protected void WrapTest <T>(Action <IServiceCollection> configure, Action <IDependencyResolver, T> testImpl, T arg)
        {
            HttpConfiguration nonSystemWebConfiguration = new HttpConfiguration();

            ApplicationDependencyInjection di = new ApplicationDependencyInjectionBuilder()
                                                .ConfigureServices(configure)
                                                .AddWebApiDependencyResolver(nonSystemWebConfiguration)
                                                .Build();

            using ( di )
            {
                DependencyInjectionWebApiDependencyResolver webApiResolverInstance = di.GetClients()
                                                                                     .OfType <DependencyInjectionWebApiDependencyResolver>()
                                                                                     .Single();

                IDependencyResolver webApiResolver = webApiResolverInstance;

                testImpl(webApiResolver, arg);
            }
        }