private static string GetConnectionString(ITestOutputHelper outputHelper)
        {
            var options          = new SqlServerDockerDatabaseOptions(dockerSqlServerHostPort: 1458);
            var logger           = new TestLoggerForSqlServerDockerDatabase(outputHelper);
            var testDatabase     = new SqlServerDockerDatabase(options, logger);
            var connectionString = testDatabase.GetConnectionString("Items");

            return(connectionString);
        }
        public void Setting_RemoveDockerContainerOnDispose_to_true_forces_RemoveDockerContainerOnDispose_to_be_true()
        {
            // Act
            var options = new SqlServerDockerDatabaseOptions(stopDockerInstanceOnDispose: false, removeDockerContainerOnDispose: true);

            // Assert
            options.StopDockerInstanceOnDispose.Should().BeTrue();
            options.RemoveDockerContainerOnDispose.Should().BeTrue();
        }
        public DatabaseFixture(IMessageSink messageSink)
        {
            var options       = new SqlServerDockerDatabaseOptions(dockerSqlServerHostPort: 1455);
            var logger        = new TestLogger(m => messageSink.OnMessage(new DiagnosticMessage(m)));
            var loggerFactory = new TestLoggerFactory(logger);
            var sqlServerDockerDatabaseLogger = loggerFactory.CreateLogger <SqlServerDockerDatabase>();

            _databaseServer = new SqlServerDockerDatabase(options, sqlServerDockerDatabaseLogger);
        }
        public void Defaults()
        {
            // Act
            var options = new SqlServerDockerDatabaseOptions();

            // Assert
            options.DockerContainerName.Should().Be("TestDatabase_SqlServerDocker_T");
            options.DockerSqlServerPassword.Should().Be("yourStrong(!)Password");
            options.DockerSqlServerHostPort.Should().Be(1433);
            options.DockerSqlServerImageName.Should().Be("mcr.microsoft.com/mssql/server");
            options.DockerSqlServerImageTag.Should().Be("2019-GA-ubuntu-16.04");
            options.StopDockerInstanceOnDispose.Should().BeTrue();
            options.RemoveDockerContainerOnDispose.Should().BeTrue();
        }
        public void Overrides()
        {
            // Act
            var options = new SqlServerDockerDatabaseOptions(
                "container name",
                "password",
                1234,
                "image name",
                "image tag",
                false,
                false);

            // Assert
            options.DockerContainerName.Should().Be("container name");
            options.DockerSqlServerPassword.Should().Be("password");
            options.DockerSqlServerHostPort.Should().Be(1234);
            options.DockerSqlServerImageName.Should().Be("image name");
            options.DockerSqlServerImageTag.Should().Be("image tag");
            options.StopDockerInstanceOnDispose.Should().BeFalse();
            options.RemoveDockerContainerOnDispose.Should().BeFalse();
        }