CreateResolver <TResult>(params TResult[] results) where TResult : class { var services = new ServiceCollection(); IMongoDatabase database = _resource.CreateDatabase(); IMongoCollection <TResult> collection = database.GetCollection <TResult>("col"); collection.InsertMany(results); services.AddSingleton <IMongoCollection <TResult> >(collection); return(services, ctx => ctx.Service <IMongoCollection <TResult> >().AsQueryable()); }
public async Task InitializeAsync() { MongoResource = new MongoResource(); await MongoResource.InitializeAsync(); Database = MongoResource.CreateDatabase(); IWebHostBuilder hostBuilder = new WebHostBuilder() .ConfigureAppConfiguration(builder => { builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile("appsettings.test.json", optional: true); builder.AddInMemoryCollection(new Dictionary <string, string> { ["Identity:Database:ConnectionString"] = MongoResource.ConnectionString, ["Identity:Database:DatabaseName"] = Database.DatabaseNamespace.DatabaseName }); }) .ConfigureTestServices(services => { }) .UseStartup <Startup>(); var server = new TestServer(hostBuilder); Services = server.Services; IIdentityDbContext dbContext = server.Services.GetService <IIdentityDbContext>(); var seeder = new DataSeeder(dbContext); await seeder.SeedIntialDataAsync(default);
private static MongoDbContextData CreateContext(MongoResource mongoResource) { var mongoOptions = new MongoOptions { ConnectionString = mongoResource.ConnectionString, DatabaseName = mongoResource.CreateDatabase().DatabaseNamespace.DatabaseName }; var builder = new MongoDatabaseBuilder(mongoOptions); builder.RegisterImmutableConventionPack(); return(builder.Build()); }
public async Task InitializeAsync() { MongoResource = new MongoResource(); await MongoResource.InitializeAsync(); Database = MongoResource.CreateDatabase(); DbContext = new MediaStoreContext( new MongoOptions { ConnectionString = MongoResource.ConnectionString, DatabaseName = Database.DatabaseNamespace.DatabaseName }); IWebHostBuilder hostBuilder = new WebHostBuilder() .ConfigureAppConfiguration(builder => { builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile("appsettings.test.json", optional: true); builder.AddInMemoryCollection(new Dictionary <string, string> { ["MagicMedia:Database:ConnectionString"] = MongoResource.ConnectionString, ["MagicMedia:Database:DatabaseName"] = Database.DatabaseNamespace.DatabaseName }); }) .ConfigureTestServices(services => { services.AddSingleton(_httpClientFactory); services.AddMagicMediaTest(); services.RemoveAll <IOperationExecutorFactory>(); services.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( "MagicMediaTest", sp.GetRequiredService <InMemoryHttpClientFactory>().CreateClient, PipelineFactory(sp), sp)); }) .UseStartup <Startup>(); var server = new TestServer(hostBuilder); Services = server.Services; HttpClient = server.CreateClient(); GraphQLClient = Services.GetService <IMagicMediaTest>(); _httpClientFactory.HttpClient = server.CreateClient(); _httpClientFactory.HttpClient.BaseAddress = new Uri("http://localhost/graphql"); await SeedIntialDataAsync(); }
public async Task InitializeAsync() { Containers = new ComposeResource <MagicApiAppOptions>(); await Containers.InitializeAsync(); MongoResource = Containers.GetResource <MongoResource>("mongo"); IdentityHost = Containers .GetResource <GenericContainerResource <IdentityHostOptions> >("identity"); Database = MongoResource.CreateDatabase(); DbContext = new MediaStoreContext( new MongoOptions { ConnectionString = MongoResource.ConnectionString, DatabaseName = Database.DatabaseNamespace.DatabaseName }); string identityUrl = IdentityHost.GetContainerUri().ToString(); IWebHostBuilder hostBuilder = new WebHostBuilder() .ConfigureAppConfiguration(builder => { builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile("appsettings.test.json", optional: true); builder.AddInMemoryCollection(new Dictionary <string, string> { ["MagicMedia:Database:ConnectionString"] = MongoResource.ConnectionString, ["MagicMedia:Database:DatabaseName"] = Database.DatabaseNamespace.DatabaseName, ["MagicMedia:Security:Authority"] = identityUrl }); }) .ConfigureTestServices(services => { services.AddSingleton(_httpClientFactory); services.AddMagicMediaTest(); services.RemoveAll <IOperationExecutorFactory>(); services.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( "MagicMediaTest", sp.GetRequiredService <InMemoryHttpClientFactory>().CreateClient, PipelineFactory(sp), sp)); }) .UseStartup <Startup>(); var server = new TestServer(hostBuilder); Services = server.Services; HttpClient = server.CreateClient(); GraphQLClient = Services.GetService <IMagicMediaTest>(); _httpClientFactory.HttpClient = server.CreateClient(); _httpClientFactory.HttpClient.BaseAddress = new Uri("http://localhost/graphql"); _httpClientFactory.TokenResolver = GetTokenAsync; await SeedIntialDataAsync(); //TODO. Improve readycheck for IdentityServer container await Task.Delay(TimeSpan.FromSeconds(1)); }