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); } }
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); } }