public void DeleteInstanceThrowsMicroLiteExceptionIfIdentifierNotSet() { var customer = new Customer { Id = 0 }; var mockConnection = new Mock <IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(new Mock <IDbCommand>().Object); var mockDbDriver = new Mock <IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock <ISqlDialect>().Object, mockDbDriver.Object, new SessionListeners()); var exception = Assert.Throws <AggregateException>( () => session.DeleteAsync(customer).Result); Assert.IsType <MicroLiteException>(exception.InnerException); Assert.Equal(ExceptionMessages.Session_IdentifierNotSetForDelete, exception.InnerException.Message); }
public void DeleteInstanceReturnsFalseIfNoRecordsDeleted() { var customer = new Customer { Id = 14556 }; var mockSqlDialect = new Mock <ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull <IObjectInfo>(), customer.Id)).Returns(new SqlQuery("")); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Returns(0); var mockConnection = new Mock <IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock <IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new SessionListeners()); Assert.False(session.DeleteAsync(customer).Result); mockSqlDialect.VerifyAll(); mockDbDriver.VerifyAll(); mockCommand.VerifyAll(); }
public void DeleteTypeByIdentifierReturnsTrueIfRecordDeleted() { var type = typeof(Customer); var identifier = 1234; var mockSqlDialect = new Mock <ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull <IObjectInfo>(), identifier)).Returns(new SqlQuery("")); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Returns(1); var mockConnection = new Mock <IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock <IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new SessionListeners()); Assert.True(session.DeleteAsync(type, identifier).Result); mockSqlDialect.VerifyAll(); mockDbDriver.VerifyAll(); mockCommand.VerifyAll(); }
public void DeleteTypeByIdentifierThrowsArgumentNullExceptionForNullType() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock <ISqlDialect>().Object, new Mock <IDbDriver>().Object, new SessionListeners()); var exception = Assert.Throws <AggregateException>( () => session.DeleteAsync(null, 1234).Result); Assert.Equal("type", ((ArgumentNullException)exception.InnerException).ParamName); }
public void DeleteInstanceInvokesListeners() { var customer = new Customer { Id = 187224 }; var mockSqlDialect = new Mock <ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull <IObjectInfo>(), customer.Id)).Returns(new SqlQuery("")); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Returns(1); var mockConnection = new Mock <IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock <IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); int counter = 0; var mockListener1 = new Mock <IDeleteListener>(); mockListener1.Setup(x => x.AfterDelete(customer, 1)).Callback(() => Assert.Equal(4, ++counter)); mockListener1.Setup(x => x.BeforeDelete(customer)).Callback(() => Assert.Equal(1, ++counter)); var mockListener2 = new Mock <IDeleteListener>(); mockListener2.Setup(x => x.AfterDelete(customer, 1)).Callback(() => Assert.Equal(3, ++counter)); mockListener2.Setup(x => x.BeforeDelete(customer)).Callback(() => Assert.Equal(2, ++counter)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new SessionListeners( new[] { mockListener1.Object, mockListener2.Object }, new IInsertListener[0], new IUpdateListener[0])); session.DeleteAsync(customer).Wait(); mockListener1.VerifyAll(); mockListener2.VerifyAll(); }
public void DeleteTypeByIdentifierThrowsArgumentNullExceptionForNullIdentifier() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock <ISqlDialect>().Object, new Mock <IDbDriver>().Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); var exception = Assert.Throws <AggregateException>( () => session.DeleteAsync(typeof(Customer), null).Result); Assert.Equal("identifier", ((ArgumentNullException)exception.InnerException).ParamName); }
public void DeleteTypeByIdentifierThrowsObjectDisposedExceptionIfDisposed() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock <ISqlDialect>().Object, new Mock <IDbDriver>().Object, new SessionListeners()); using (session) { } var exception = Assert.Throws <AggregateException>( () => session.DeleteAsync(typeof(Customer), 1234).Result); Assert.IsType <ObjectDisposedException>(exception.InnerException); }
public void DeleteInstanceInvokesListeners() { var customer = new Customer { Id = 187224 }; var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull<IObjectInfo>(), customer.Id)).Returns(new SqlQuery("")); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Returns(1); var mockConnection = new Mock<IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock<IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); int counter = 0; var mockListener1 = new Mock<IDeleteListener>(); mockListener1.Setup(x => x.AfterDelete(customer, 1)).Callback(() => Assert.Equal(4, ++counter)); mockListener1.Setup(x => x.BeforeDelete(customer)).Callback(() => Assert.Equal(1, ++counter)); var mockListener2 = new Mock<IDeleteListener>(); mockListener2.Setup(x => x.AfterDelete(customer, 1)).Callback(() => Assert.Equal(3, ++counter)); mockListener2.Setup(x => x.BeforeDelete(customer)).Callback(() => Assert.Equal(2, ++counter)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new SessionListeners( new[] { mockListener1.Object, mockListener2.Object }, new IInsertListener[0], new IUpdateListener[0])); session.DeleteAsync(customer).Wait(); mockListener1.VerifyAll(); mockListener2.VerifyAll(); }
public void DeleteInstanceThrowsObjectDisposedExceptionIfDisposed() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock <ISqlDialect>().Object, new Mock <IDbDriver>().Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); using (session) { } var exception = Assert.Throws <AggregateException>( () => session.DeleteAsync(new Customer()).Result); Assert.IsType <ObjectDisposedException>(exception.InnerException); }
public void DeleteInstanceThrowsMicroLiteExceptionIfExecuteNonQueryThrowsException() { var customer = new Customer { Id = 187224 }; var mockSqlDialect = new Mock <ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull <IObjectInfo>(), customer.Id)).Returns(new SqlQuery("")); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Throws <InvalidOperationException>(); var mockConnection = new Mock <IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock <IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); var exception = Assert.Throws <AggregateException>(() => session.DeleteAsync(customer).Wait()); Assert.IsType <MicroLiteException>(exception.InnerException); Assert.IsType <InvalidOperationException>(exception.InnerException.InnerException); Assert.Equal(exception.InnerException.InnerException.Message, exception.InnerException.Message); // Command should still be disposed. mockCommand.VerifyAll(); }
public void DeleteTypeByIdentifierThrowsMicroLiteExceptionIfExecuteNonQueryThrowsException() { var type = typeof(Customer); var identifier = 1234; var mockSqlDialect = new Mock <ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull <IObjectInfo>(), identifier)).Returns(new SqlQuery("")); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Throws <InvalidOperationException>(); var mockConnection = new Mock <IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock <IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new SessionListeners()); var exception = Assert.Throws <AggregateException>(() => session.DeleteAsync(type, identifier).Result); Assert.IsType <MicroLiteException>(exception.InnerException); Assert.IsType <InvalidOperationException>(exception.InnerException.InnerException); Assert.Equal(exception.InnerException.InnerException.Message, exception.InnerException.Message); // Command should still be disposed. mockCommand.VerifyAll(); }
public void DeleteTypeByIdentifierThrowsMicroLiteExceptionIfExecuteNonQueryThrowsException() { var type = typeof(Customer); var identifier = 1234; var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull<IObjectInfo>(), identifier)).Returns(new SqlQuery("")); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Throws<InvalidOperationException>(); var mockConnection = new Mock<IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock<IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); var exception = Assert.Throws<AggregateException>(() => session.DeleteAsync(type, identifier).Result); Assert.IsType<MicroLiteException>(exception.InnerException); Assert.IsType<InvalidOperationException>(exception.InnerException.InnerException); Assert.Equal(exception.InnerException.InnerException.Message, exception.InnerException.Message); // Command should still be disposed. mockCommand.VerifyAll(); }
public void DeleteTypeByIdentifierThrowsArgumentNullExceptionForNullType() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, new Mock<IDbDriver>().Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); var exception = Assert.Throws<AggregateException>( () => session.DeleteAsync(null, 1234).Result); Assert.Equal("type", ((ArgumentNullException)exception.InnerException).ParamName); }
public void DeleteTypeByIdentifierReturnsTrueIfRecordDeleted() { var type = typeof(Customer); var identifier = 1234; var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull<IObjectInfo>(), identifier)).Returns(new SqlQuery("")); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Returns(1); var mockConnection = new Mock<IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock<IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); Assert.True(session.DeleteAsync(type, identifier).Result); mockSqlDialect.VerifyAll(); mockDbDriver.VerifyAll(); mockCommand.VerifyAll(); }
public void DeleteInstanceThrowsMicroLiteExceptionIfIdentifierNotSet() { var customer = new Customer { Id = 0 }; var mockConnection = new Mock<IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(new Mock<IDbCommand>().Object); var mockDbDriver = new Mock<IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, mockDbDriver.Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); var exception = Assert.Throws<AggregateException>( () => session.DeleteAsync(customer).Result); Assert.IsType<MicroLiteException>(exception.InnerException); Assert.Equal(ExceptionMessages.Session_IdentifierNotSetForDelete, exception.InnerException.Message); }
public void DeleteInstanceThrowsObjectDisposedExceptionIfDisposed() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, new Mock<IDbDriver>().Object, new SessionListeners()); using (session) { } var exception = Assert.Throws<AggregateException>( () => session.DeleteAsync(new Customer()).Result); Assert.IsType<ObjectDisposedException>(exception.InnerException); }
public void DeleteTypeByIdentifierThrowsArgumentNullExceptionForNullIdentifier() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, new Mock<IDbDriver>().Object, new SessionListeners()); var exception = Assert.Throws<AggregateException>( () => session.DeleteAsync(typeof(Customer), null).Result); Assert.Equal("identifier", ((ArgumentNullException)exception.InnerException).ParamName); }
public void DeleteInstanceThrowsMicroLiteExceptionIfExecuteNonQueryThrowsException() { var customer = new Customer { Id = 187224 }; var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull<IObjectInfo>(), customer.Id)).Returns(new SqlQuery("")); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Throws<InvalidOperationException>(); var mockConnection = new Mock<IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock<IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new SessionListeners()); var exception = Assert.Throws<AggregateException>(() => session.DeleteAsync(customer).Wait()); Assert.IsType<MicroLiteException>(exception.InnerException); Assert.IsType<InvalidOperationException>(exception.InnerException.InnerException); Assert.Equal(exception.InnerException.InnerException.Message, exception.InnerException.Message); // Command should still be disposed. mockCommand.VerifyAll(); }
public void DeleteTypeByIdentifierThrowsObjectDisposedExceptionIfDisposed() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, new Mock<IDbDriver>().Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); using (session) { } var exception = Assert.Throws<AggregateException>( () => session.DeleteAsync(typeof(Customer), 1234).Result); Assert.IsType<ObjectDisposedException>(exception.InnerException); }
public void DeleteInstanceReturnsFalseIfNoRecordsDeleted() { var customer = new Customer { Id = 14556 }; var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildDeleteSqlQuery(It.IsNotNull<IObjectInfo>(), customer.Id)).Returns(new SqlQuery("")); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteNonQuery()).Returns(0); var mockConnection = new Mock<IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); var mockDbDriver = new Mock<IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); var session = new AsyncSession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object, new IDeleteListener[0], new IInsertListener[0], new IUpdateListener[0]); Assert.False(session.DeleteAsync(customer).Result); mockSqlDialect.VerifyAll(); mockDbDriver.VerifyAll(); mockCommand.VerifyAll(); }
public void DeleteInstanceThrowsArgumentNullExceptionForNullInstance() { var session = new AsyncSession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, new Mock<IDbDriver>().Object, new SessionListeners()); var exception = Assert.Throws<AggregateException>( () => session.DeleteAsync(null).Result); Assert.Equal("instance", ((ArgumentNullException)exception.InnerException).ParamName); }