public void GetConnectionString_ThrowsArgumentException_WhenUsernameIsMissing()
        {
            //Arrange
            var config = new PostgresConfiguration();

            config.Host     = fixture.Create <string>();
            config.Port     = fixture.Create <int>();
            config.Username = string.Empty;;
            config.Password = fixture.Create <string>();
            config.Database = fixture.Create <string>();

            //Act
            Action action = (() => config.GetConnectionString());

            //Assert
            Assert.Throws <ArgumentException>(action);
        }
        public void GetConnectionString_IsValid_WhenPortIsMissing()
        {
            //Arrange
            var config = new PostgresConfiguration();

            config.Host     = fixture.Create <string>();
            config.Port     = -1;
            config.Username = fixture.Create <string>();
            config.Password = fixture.Create <string>();
            config.Database = fixture.Create <string>();

            var expectedConnectionString = $"Host={config.Host};Username={config.Username};" +
                                           $"Password={config.Password};Database={config.Database}";

            //Act
            var connectionString = config.GetConnectionString();

            //Assert
            connectionString.Should().Be(expectedConnectionString);
        }
 public IPostgresConnection Create(PostgresConfiguration configuration)
 {
     return(new PostgresConnection(
                new NpgsqlConnection(configuration.GetConnectionString())
                ));
 }