public void WithoutCredentials()
        {
            var connectionString = "Host=myServerName;Port=5432;Database=myDataBase;Username=xxxx;Password=xxxx";
            var options          = new ConnectionProviderOptions
            {
                ConnectionString = connectionString,
                Username         = "",
                Password         = ""
            };
            var mock = new Mock <IOptions <ConnectionProviderOptions> >();

            mock.Setup(x => x.Value).Returns(options);
            var connectionProvider = new PostgreSqlConnectionProvider(mock.Object, _encryptionHelper);

            var connection = connectionProvider.Create();

            // connection string should be unchanged
            Assert.Equal(connection.ConnectionString, connectionString);
        }
        public void WithEncryptedCredentials()
        {
            var connectionString = "Host=myServerName;Port=5432;Database=myDataBase;Username=xxxx;Password=xxxx";
            var options          = new ConnectionProviderOptions
            {
                ConnectionString = connectionString,
                Username         = "******",
                Password         = "******"
            };
            var mock = new Mock <IOptions <ConnectionProviderOptions> >();

            mock.Setup(x => x.Value).Returns(options);
            var connectionProvider = new PostgreSqlConnectionProvider(mock.Object, _encryptionHelper);

            var connection = connectionProvider.Create();
            var expected   = "Host=myServerName;Port=5432;Database=myDataBase;Username=testUsername;Password=testPassword";

            // connection string should have username/password substituded in
            Assert.Equal(connection.ConnectionString, expected);
        }