public IntegrationTestFixture()
 {
     Factory              = new IntegrationTestWebApplicationFactory <Startup>();
     _checkpoint          = new Checkpoint();
     _configuration       = Factory.Services.GetRequiredService <IConfiguration>();
     _serviceScopeFactory = Factory.Services.GetRequiredService <IServiceScopeFactory>();
 }
        private WebApplicationFactory <TRemoteStartup> CreateFactory()
        {
            string postgresPassword   = Environment.GetEnvironmentVariable("PGPASSWORD") ?? "postgres";
            string dbConnectionString =
                $"Host=localhost;Port=5432;Database=JsonApiTest-{Guid.NewGuid():N};User ID=postgres;Password={postgresPassword}";

            var factory = new IntegrationTestWebApplicationFactory();

            factory.ConfigureLogging(_loggingConfiguration);

            factory.ConfigureServicesBeforeStartup(services =>
            {
                _beforeServicesConfiguration?.Invoke(services);

                services.AddDbContext <TDbContext>(options =>
                {
                    options.UseNpgsql(dbConnectionString,
                                      postgresOptions => postgresOptions.SetPostgresVersion(new Version(9, 6)));

                    options.EnableSensitiveDataLogging();
                    options.EnableDetailedErrors();
                });
            });

            factory.ConfigureServicesAfterStartup(_afterServicesConfiguration);

            using IServiceScope scope = factory.Services.CreateScope();
            var dbContext = scope.ServiceProvider.GetRequiredService <TDbContext>();

            dbContext.Database.EnsureCreated();

            return(factory);
        }
Ejemplo n.º 3
0
        private WebApplicationFactory <EmptyStartup> CreateFactory()
        {
            var factory = new IntegrationTestWebApplicationFactory();

            factory.ConfigureServicesBeforeStartup(services =>
            {
                _beforeServicesConfiguration?.Invoke(services);

                services.AddSingleton(sp =>
                {
                    var client = new MongoClient(_runner.ConnectionString);
                    return(client.GetDatabase($"JsonApiDotNetCore_MongoDb_{new Random().Next()}_Test"));
                });

                services.AddJsonApi(ConfigureJsonApiOptions, facade => facade.AddCurrentAssembly());
                services.AddJsonApiMongoDb();

                services.AddScoped(typeof(IResourceReadRepository <>), typeof(MongoDbRepository <>));
                services.AddScoped(typeof(IResourceReadRepository <,>), typeof(MongoDbRepository <,>));
                services.AddScoped(typeof(IResourceWriteRepository <>), typeof(MongoDbRepository <>));
                services.AddScoped(typeof(IResourceWriteRepository <,>), typeof(MongoDbRepository <,>));
                services.AddScoped(typeof(IResourceRepository <>), typeof(MongoDbRepository <>));
                services.AddScoped(typeof(IResourceRepository <,>), typeof(MongoDbRepository <,>));
            });

            factory.ConfigureServicesAfterStartup(_afterServicesConfiguration);

            return(factory);
        }
Ejemplo n.º 4
0
        protected HttpClient CreateClient(Func <IConfiguration, IEnumerable <IMicroserviceInitializer> > intializerFactory)
        {
            IntegrationTestsStartup.InitializerFactory = intializerFactory;

            var factory = new IntegrationTestWebApplicationFactory <IntegrationTestsStartup>();

            return(factory.CreateClient());
        }
 public static HttpClient WithSpecificUser(this IntegrationTestWebApplicationFactory <Startup> factory, IUser user)
 {
     return(factory.WithWebHostBuilder(builder =>
     {
         builder.ConfigureTestServices(ConfigureAuthenticationHandler)
         .ConfigureServices(services => ConfigureNewUserUserService(services, user));
     }).CreateDefaultClient(new UnwrappingResponseHandler()));
 }
        public void Up()
        {
            using (var context = CreateContext())
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();
            }

            _clientFactory = new IntegrationTestWebApplicationFactory <Startup>();
        }
Ejemplo n.º 7
0
        private async Task <string> AuthoriseAsync(HttpClient client, string requestAuthContent)
        {
            var validationToken = IntegrationTestWebApplicationFactory.GetFormValidationToken(requestAuthContent, "/api/v1/authorize");
            var response        = await client.PostAsync("/api/v1/authorize", new FormUrlEncodedContent(new[] {
                KeyValuePair.Create("__RequestVerificationToken", validationToken),
                KeyValuePair.Create("allowapiauth", "true"),
                KeyValuePair.Create("appkey", appKey),
                KeyValuePair.Create("redirecturi", redirectUri)
            }));

            response.StatusCode.Should().Be(HttpStatusCode.Redirect);
            response.Headers.Location.AbsoluteUri.Should().StartWith(redirectUri);
            var refreshTokenParam = "?refreshToken=";

            response.Headers.Location.Query.Should().StartWith(refreshTokenParam);
            return(response.Headers.Location.Query.Substring(refreshTokenParam.Length));
        }
Ejemplo n.º 8
0
        public async Task Authorise_reject_should_send_error_code_to_redirect_uri()
        {
            using var client = _factory.CreateAuthenticatedClient(false);
            var responseContent = await RequestAuthoriseAsync(client);

            var validationToken = IntegrationTestWebApplicationFactory.GetFormValidationToken(responseContent, "/api/v1/authorize");
            var response        = await client.PostAsync("/api/v1/authorize", new FormUrlEncodedContent(new[] {
                KeyValuePair.Create("__RequestVerificationToken", validationToken),
                KeyValuePair.Create("allowapiauth", "false"),
                KeyValuePair.Create("appkey", appKey),
                KeyValuePair.Create("redirecturi", redirectUri)
            }));

            response.StatusCode.Should().Be(HttpStatusCode.Redirect);
            response.Headers.Location.AbsoluteUri.Should().StartWith(redirectUri);
            response.Headers.Location.Query.Should().Be("?errorCode=user_declined");
        }
 public When_Retrieving_A_Product_Option_By_Id(IntegrationTestWebApplicationFactory <Startup> factory) => _factory = factory;
Ejemplo n.º 10
0
 public When_Creating_A_Product_Option(IntegrationTestWebApplicationFactory <Startup> factory) => _factory = factory;
Ejemplo n.º 11
0
 public CacheTests(IntegrationTestFixture testFixture)
 {
     _clientFactory = testFixture.Factory;
 }
Ejemplo n.º 12
0
 public When_Deleting_A_Product(IntegrationTestWebApplicationFactory <Startup> factory) => _factory = factory;
 public GameDetailsTests(IntegrationTestWebApplicationFactory <Startup> factory)
 {
     _factory = factory;
 }
 public AttackShipTests(IntegrationTestWebApplicationFactory <Startup> factory)
 {
     _factory = factory;
 }
Ejemplo n.º 15
0
 public PlayerListTests(IntegrationTestWebApplicationFactory <Startup> factory)
 {
     _factory = factory;
 }
 public CreatePlayerTests(IntegrationTestWebApplicationFactory <Startup> factory)
 {
     _factory = factory;
 }
 public AdminControllerTests(IntegrationTestWebApplicationFactory <Startup> factory)
 {
     _client = factory.CreateClient();
 }
Ejemplo n.º 18
0
 public UsersControllerTest(IntegrationTestWebApplicationFactory <Startup> webApplicationFactory)
 {
     _client = webApplicationFactory.CreateClient();
 }
Ejemplo n.º 19
0
 public When_Retrieving_All_Products(IntegrationTestWebApplicationFactory <Startup> factory) => _factory = factory;