public void Configures_DbCommand_with_timeout() { var optionsExtension = new FakeRelationalOptionsExtension { ConnectionString = ConnectionString, CommandTimeout = 42 }; var fakeConnection = CreateConnection(CreateOptions(optionsExtension)); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger <RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new RelationalParameter[0]); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); var command = fakeConnection.DbConnections[0].DbCommands[0]; Assert.Equal(42, command.CommandTimeout); }
public void Configures_DbCommand_with_timeout() { var optionsExtension = new FakeRelationalOptionsExtension { ConnectionString = ConnectionString, CommandTimeout = 42 }; var fakeConnection = CreateConnection(CreateOptions(optionsExtension)); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger<RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new RelationalParameter[0]); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); var command = fakeConnection.DbConnections[0].DbCommands[0]; Assert.Equal(42, command.CommandTimeout); }
public void Can_ExecuteNonQuery(bool manageConnection) { var executeNonQueryCount = 0; var disposeCount = -1; var fakeDbConnection = new FakeDbConnection( ConnectionString, new FakeCommandExecutor( executeNonQuery: c => { executeNonQueryCount++; disposeCount = c.DisposeCount; return(1); })); var optionsExtension = new FakeRelationalOptionsExtension { Connection = fakeDbConnection }; var options = CreateOptions(optionsExtension); var fakeConnection = new FakeRelationalConnection(options); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger <RelationalCommand>(), new DiagnosticListener("Fake"), "ExecuteNonQuery Command", new RelationalParameter[0]); var result = relationalCommand.ExecuteNonQuery(fakeConnection, manageConnection: manageConnection); Assert.Equal(1, result); var expectedCount = manageConnection ? 1 : 0; Assert.Equal(expectedCount, fakeDbConnection.OpenCount); Assert.Equal(expectedCount, fakeDbConnection.CloseCount); // Durring command execution Assert.Equal(1, executeNonQueryCount); Assert.Equal(0, disposeCount); // After command execution Assert.Equal(1, fakeDbConnection.DbCommands[0].DisposeCount); }
public void Configures_DbCommand_with_parameters() { var fakeConnection = CreateConnection(); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger <RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new[] { new RelationalParameter("FirstParameter", 17, new RelationalTypeMapping("int", typeof(int), DbType.Int32), false, null), new RelationalParameter("SecondParameter", 18L, new RelationalTypeMapping("long", typeof(long), DbType.Int64), true, null), new RelationalParameter("ThirdParameter", null, RelationalTypeMapping.NullMapping, null, null) }); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); Assert.Equal(3, fakeConnection.DbConnections[0].DbCommands[0].Parameters.Count); var parameter = fakeConnection.DbConnections[0].DbCommands[0].Parameters[0]; Assert.Equal("FirstParameter", parameter.ParameterName); Assert.Equal(17, parameter.Value); Assert.Equal(ParameterDirection.Input, parameter.Direction); Assert.Equal(false, parameter.IsNullable); Assert.Equal(DbType.Int32, parameter.DbType); parameter = fakeConnection.DbConnections[0].DbCommands[0].Parameters[1]; Assert.Equal("SecondParameter", parameter.ParameterName); Assert.Equal(18L, parameter.Value); Assert.Equal(ParameterDirection.Input, parameter.Direction); Assert.Equal(true, parameter.IsNullable); Assert.Equal(DbType.Int64, parameter.DbType); parameter = fakeConnection.DbConnections[0].DbCommands[0].Parameters[2]; Assert.Equal("ThirdParameter", parameter.ParameterName); Assert.Equal(DBNull.Value, parameter.Value); Assert.Equal(ParameterDirection.Input, parameter.Direction); Assert.Equal(FakeDbParameter.DefaultDbType, parameter.DbType); }
public void Configures_DbCommand_with_transaction() { var fakeConnection = CreateConnection(); var relationalTransaction = fakeConnection.BeginTransaction(); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger<RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new RelationalParameter[0]); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); var command = fakeConnection.DbConnections[0].DbCommands[0]; Assert.Same(relationalTransaction.GetInfrastructure(), command.Transaction); }
public void Configures_DbCommand() { var fakeConnection = CreateConnection(); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger<RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new RelationalParameter[0]); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); var command = fakeConnection.DbConnections[0].DbCommands[0]; Assert.Equal("CommandText", command.CommandText); Assert.Null(command.Transaction); Assert.Equal(FakeDbCommand.DefaultCommandTimeout, command.CommandTimeout); }
public void Configures_DbCommand_with_transaction() { var fakeConnection = CreateConnection(); var relationalTransaction = fakeConnection.BeginTransaction(); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger <RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new RelationalParameter[0]); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); var command = fakeConnection.DbConnections[0].DbCommands[0]; Assert.Same(relationalTransaction.GetDbTransaction(), command.Transaction); }
public void Configures_DbCommand() { var fakeConnection = CreateConnection(); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger <RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new RelationalParameter[0]); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); var command = fakeConnection.DbConnections[0].DbCommands[0]; Assert.Equal("CommandText", command.CommandText); Assert.Null(command.Transaction); Assert.Equal(FakeDbCommand.DefaultCommandTimeout, command.CommandTimeout); }
public void Configures_DbCommand_with_parameters() { var fakeConnection = CreateConnection(); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger<RelationalCommand>(), new DiagnosticListener("Fake"), "CommandText", new[] { new RelationalParameter("FirstParameter", 17, new RelationalTypeMapping("int", typeof(int), DbType.Int32), false), new RelationalParameter("SecondParameter", 18L, new RelationalTypeMapping("long", typeof(long), DbType.Int64), true), new RelationalParameter("ThirdParameter", null, RelationalTypeMapping.NullMapping, null) }); relationalCommand.ExecuteNonQuery(fakeConnection); Assert.Equal(1, fakeConnection.DbConnections.Count); Assert.Equal(1, fakeConnection.DbConnections[0].DbCommands.Count); Assert.Equal(3, fakeConnection.DbConnections[0].DbCommands[0].Parameters.Count); var parameter = fakeConnection.DbConnections[0].DbCommands[0].Parameters[0]; Assert.Equal("FirstParameter", parameter.ParameterName); Assert.Equal(17, parameter.Value); Assert.Equal(ParameterDirection.Input, parameter.Direction); Assert.Equal(false, parameter.IsNullable); Assert.Equal(DbType.Int32, parameter.DbType); parameter = fakeConnection.DbConnections[0].DbCommands[0].Parameters[1]; Assert.Equal("SecondParameter", parameter.ParameterName); Assert.Equal(18L, parameter.Value); Assert.Equal(ParameterDirection.Input, parameter.Direction); Assert.Equal(true, parameter.IsNullable); Assert.Equal(DbType.Int64, parameter.DbType); parameter = fakeConnection.DbConnections[0].DbCommands[0].Parameters[2]; Assert.Equal("ThirdParameter", parameter.ParameterName); Assert.Equal(DBNull.Value, parameter.Value); Assert.Equal(ParameterDirection.Input, parameter.Direction); Assert.Equal(FakeDbParameter.DefaultDbType, parameter.DbType); }
public void Can_ExecuteNonQuery(bool manageConnection) { var executeNonQueryCount = 0; var disposeCount = -1; var fakeDbConnection = new FakeDbConnection( ConnectionString, new FakeCommandExecutor( executeNonQuery: c => { executeNonQueryCount++; disposeCount = c.DisposeCount; return 1; })); var optionsExtension = new FakeRelationalOptionsExtension { Connection = fakeDbConnection }; var options = CreateOptions(optionsExtension); var fakeConnection = new FakeRelationalConnection(options); var relationalCommand = new RelationalCommand( new FakeSensitiveDataLogger<RelationalCommand>(), new DiagnosticListener("Fake"), "ExecuteNonQuery Command", new RelationalParameter[0]); relationalCommand.ExecuteNonQuery(fakeConnection, manageConnection: manageConnection); var expectedCount = manageConnection ? 1 : 0; Assert.Equal(expectedCount, fakeDbConnection.OpenCount); Assert.Equal(expectedCount, fakeDbConnection.CloseCount); // Durring command execution Assert.Equal(1, executeNonQueryCount); Assert.Equal(0, disposeCount); // After command execution Assert.Equal(1, fakeDbConnection.DbCommands[0].DisposeCount); }