Esempio n. 1
0
        public async Task RunBeforeAnyTests()
        {
            TestContext.Progress.WriteLine(isTestingEnv);

            _config = new ConfigurationBuilder()
                      .AddJsonFile("appsettings.json")
                      .AddJsonFile("appsettings.Integration.json")
                      .Build();

            if (!bool.TryParse(isTestingEnv, out var result) || !result)
            {
                UpdateConfig("mongodb://127.0.0.1:27017");
                _dockerClient = new DockerClientConfiguration(
                    // TODO: This needs to be configurable in order to execute tests in CI
                    new Uri("npipe://./pipe/docker_engine"))
                                .CreateClient();

                DockerContainerBase.CleanupOrphanedContainers(_dockerClient).Wait(30000);

                _mongoContainer = new MongoContainer();
                await _mongoContainer.Start(_dockerClient);
            }
            else
            {
                UpdateConfig("mongodb://127.0.0.1:27018");
            }

            _factory = new IntegrationTestsApplicationFactory <TestStartup>();

            Client = _factory.CreateClient();
        }
Esempio n. 2
0
        public async Task <(string, DbConnection)> StartAsync()
        {
            var dockerUri = IDatabaseController.GetDockerUri();

            _dockerClient = new DockerClientConfiguration(
                new Uri(dockerUri))
                            .CreateClient();

            DockerContainerBase.CleanupOrphanedContainersAsync(_dockerClient).Wait(Timeout * 500);

            _sqlServerContainer = new SqlServerContainer(Port, Password);

            await _sqlServerContainer.StartAsync(_dockerClient, Timeout);

            var connectionString = _sqlServerContainer.GetConnectionString(DatabaseName);

            //TODO: use logger
            Console.WriteLine($"*** SQL Server database started and the connection string is: \"{connectionString}\"");

            var connection = new SqlConnection(connectionString);

            return(connectionString, connection);
        }