public void ShouldThrowArgumentNullExceptionWhenConnectionIsNull() { var language = new FakeDbLanguage(); GWT.Given("testing constructor") .When(x => new Database <IDbConnection, IDbLanguage>(connection: null, language: language)) .Then <ArgumentNullException>().ShouldBeThrown().ForParameter("connection"); }
public void ShouldThrowArgumentNullExceptionWhenTableIsNull() { var connection = new FakeDbConnection(openConnection: true); var language = new FakeDbLanguage(); TableMetaData nullTable = null; GWT.Given(new Database <IDbConnection, IDbLanguage>(connection, language)) .When(d => d.CreateTable(nullTable)) .Then <ArgumentNullException>().ShouldBeThrown().ForParameter("table"); }
public void ShouldThrowArgumentNullExceptionWhenTableIsNull() { var connection = new FakeDbConnection(openConnection: true); var language = new FakeDbLanguage(); var row = new TestEntity(); GWT.Given(new Database <IDbConnection, IDbLanguage>(connection, language)) .When(d => d.Insert(row: row, table: null)) .Then <ArgumentNullException>().ShouldBeThrown().ForParameter("table"); }
public void ShouldThrowArgumentNullExceptionWhenRowIsNull() { var connection = new FakeDbConnection(openConnection: true); var language = new FakeDbLanguage(); var table = new TableMetaData <TestEntity>(); TestEntity nullRow = null; GWT.Given(new Database <IDbConnection, IDbLanguage>(connection, language)) .When(d => d.Insert(row: nullRow)) .Then <ArgumentNullException>().ShouldBeThrown().ForParameter("row"); }
public void ShouldThrowArgumentExceptionWhenConnectionIsNotOpen() { // Given var connection = new FakeDbConnection(openConnection: false); var language = new FakeDbLanguage(); // When Action action = () => new Database <IDbConnection, IDbLanguage>(connection, language); // Then action.ShouldThrow <ArgumentException>().WithMessage("Connection must be open. It is closed.\r\nParameter name: connection"); }
public void ShouldThrowExceptionWhenCreateTableCommandDoesNotReturnZero() { // Given var connection = new FakeDbConnection(openConnection: true); var language = new FakeDbLanguage(); var database = new Database <FakeDbConnection, FakeDbLanguage>(connection, language); var table = new TableMetaData <TestEntity>(); connection.CreateCommandFactory = () => new FakeDbCommand() { ReturnValueForExecuteNonQuery = 1 }; // When Action action = () => database.CreateTable(table); // Then action.ShouldThrow <Exception>().WithMessage("CREATE TABLE returned 1. Expected value to be 0."); }
public void ShouldThrowExceptionWhenInsertTableCommandDoesNotReturnOne() { // Given var connection = new FakeDbConnection() { CreateCommandFactory = () => new FakeDbCommand() { ReturnValueForExecuteNonQuery = 0 } }; var language = new FakeDbLanguage(); var database = new Database <FakeDbConnection, FakeDbLanguage>(connection, language); var row = new TestEntity(); // When Action action = () => database.Insert(row); // Then action.ShouldThrow <Exception>().WithMessage("INSERT returned 0. Expected value to be 1."); }
public void ShouldInsertRow() { // Given var connection = new FakeDbConnection() { CreateCommandFactory = () => new FakeDbCommand() { ReturnValueForExecuteNonQuery = 1 } }; var language = new FakeDbLanguage(); var database = new Database <FakeDbConnection, FakeDbLanguage>(connection, language); var row = new TestEntity(); // When database.Insert(row); // Then var command = connection.Commands.Single(); command.CommandText.Should().Be(FormatCommandText( @"INSERT INTO *TestEntities* ( *RequiredInt*, *NullableInt*, *RequiredString*, *NullableString* ) VALUES ( #RequiredInt, #NullableInt, #RequiredString, #NullableString );" )); var parameterNames = from p in command.Parameters.Cast <IDbDataParameter>() select p.ParameterName; parameterNames.ShouldBeEquivalentTo(new string[] { "#RequiredInt", "#NullableInt", "#RequiredString", "#NullableString" }); }
public void ShouldIdAfterPreviousInsert() { // Given var expectedLastId = 123; var connection = new FakeDbConnection() { CreateCommandFactory = () => new FakeDbCommand() { ReturnValueForExecuteScalar = expectedLastId } }; var language = new FakeDbLanguage(); var database = new Database <FakeDbConnection, FakeDbLanguage>(connection, language); // When var lastId = database.GetLastId <TestEntity>(); // Then var command = connection.Commands.Single(); lastId.Should().Be(expectedLastId); command.CommandText.Should().Be("SELECT #GetLastId;"); }
public void ShouldCreateTable() { // Given var connection = new FakeDbConnection(openConnection: true); var language = new FakeDbLanguage(); var database = new Database <FakeDbConnection, FakeDbLanguage>(connection, language); var table = new TableMetaData <TestEntity>(); // When database.CreateTable(table); // Then var command = connection.Commands.Single(); command.CommandText.Should().Be(FormatCommandText( @"CREATE TABLE *TestEntities* ( *Id* Int32 NOT NULL PRIMARY KEY, *RequiredInt* Int32 NOT NULL, *NullableInt* Nullable`1[[Int32]], *RequiredString* String NOT NULL, *NullableString* String );" )); }