private TFixtureServices ConfigureCacheServices(Action <InMemoryPeopleRepository, IServiceCollection> configureCache) { IServiceCollection services = new ServiceCollection(); var repository = new InMemoryPeopleRepository(People); services.AddSingleton(sp => Substitute.For <IConfiguration>()); services = ConfigureServices(services); services.UseFluentCache(); services.AddCachePolicy(GetCachePolicy()); configureCache(repository, services); var provider = services.BuildServiceProvider(); var sut = provider.GetRequiredService <IPeopleRepository>(); var supervisor = provider.GetRequiredService <ICacheSupervisor>(); return(CreateServices(sut, repository, supervisor, provider)); }
protected abstract TFixtureServices CreateServices(IPeopleRepository sut, InMemoryPeopleRepository repository, ICacheSupervisor supervisor, ServiceProvider provider);