public WhenExecutingTwoQueriesAndTheSqlDialectUsedSupportsBatching() { this.mockDbDriver.Setup(x => x.Combine(It.IsNotNull <SqlQuery>(), It.IsNotNull <SqlQuery>())).Returns(new SqlQuery("")); var mockReader = new Mock <IDataReader>(); mockReader.Setup(x => x.Read()).Returns(new Queue <bool>(new[] { true, false }).Dequeue); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteReader(It.IsAny <CommandBehavior>())).Returns(mockReader.Object); var mockConnection = new Mock <IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(new MockDbCommandWrapper(mockCommand.Object)); var mockSqlDialect = new Mock <ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildSelectSqlQuery(It.IsNotNull <IObjectInfo>(), It.IsNotNull <object>())).Returns(new SqlQuery("")); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); mockDbDriver.Setup(x => x.SupportsBatchedQueries).Returns(true); mockDbDriver.Setup(x => x.BuildCommand(It.IsNotNull <SqlQuery>())).Returns(new MockDbCommandWrapper(mockCommand.Object)); var session = new AsyncReadOnlySession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object); var includeCustomer = session.Include.Single <Customer>(2); var customer = session.SingleAsync <Customer>(1).Result; }
public void SingleSqlQueryExecutesAndReturnsResult() { var mockSqlDialect = new Mock <ISqlDialect>(); var mockReader = new Mock <IDataReader>(); mockReader.Setup(x => x.Read()).Returns(new Queue <bool>(new[] { true, false }).Dequeue); mockReader.As <IDisposable>().Setup(x => x.Dispose()); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteReader(It.IsAny <CommandBehavior>())).Returns(mockReader.Object); 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 AsyncReadOnlySession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object); var customer = session.SingleAsync <Customer>(new SqlQuery("")).Result; Assert.NotNull(customer); mockReader.VerifyAll(); mockCommand.VerifyAll(); mockConnection.VerifyAll(); }
public void SingleSqlQueryThrowsArgumentNullExceptionForNullSqlQuery() { var session = new AsyncReadOnlySession( ConnectionScope.PerTransaction, new Mock <ISqlDialect>().Object, new Mock <IDbDriver>().Object); SqlQuery sqlQuery = null; var exception = Assert.Throws <AggregateException>( () => session.SingleAsync <Customer>(sqlQuery).Result); Assert.Equal("sqlQuery", ((ArgumentNullException)exception.InnerException).ParamName); }
public void SingleSqlQueryThrowsObjectDisposedExceptionIfDisposed() { var session = new AsyncReadOnlySession( ConnectionScope.PerTransaction, new Mock <ISqlDialect>().Object, new Mock <IDbDriver>().Object); using (session) { } var exception = Assert.Throws <AggregateException>( () => session.SingleAsync <Customer>(new SqlQuery("")).Result); Assert.IsType <ObjectDisposedException>(exception.InnerException); }
public void SingleIdentifierExecutesAndReturnsNull() { object identifier = 100; var mockReader = new Mock <IDataReader>(); mockReader.Setup(x => x.Read()).Returns(false); mockReader.As <IDisposable>().Setup(x => x.Dispose()); var mockCommand = new Mock <IDbCommand>(); mockCommand.Setup(x => x.ExecuteReader(It.IsAny <CommandBehavior>())).Returns(mockReader.Object); mockCommand.As <IDisposable>().Setup(x => x.Dispose()); var mockConnection = new Mock <IDbConnection>(); var mockSqlDialect = new Mock <ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildSelectSqlQuery(It.IsNotNull <IObjectInfo>(), identifier)).Returns(new SqlQuery("")); var mockDbDriver = new Mock <IDbDriver>(); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); mockDbDriver.Setup(x => x.BuildCommand(It.IsNotNull <SqlQuery>())).Returns(new MockDbCommandWrapper(mockCommand.Object)); var session = new AsyncReadOnlySession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object); var customer = session.SingleAsync <Customer>(identifier).Result; Assert.Null(customer); mockReader.VerifyAll(); mockCommand.VerifyAll(); mockConnection.VerifyAll(); mockSqlDialect.VerifyAll(); }
public WhenExecutingTwoQueriesAndTheSqlDialectUsedSupportsBatching() { var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildSelectSqlQuery(It.IsNotNull<IObjectInfo>(), It.IsNotNull<object>())).Returns(new SqlQuery("")); this.mockDbDriver.Setup(x => x.Combine(It.IsNotNull<SqlQuery>(), It.IsNotNull<SqlQuery>())).Returns(new SqlQuery("")); var mockReader = new Mock<IDataReader>(); mockReader.Setup(x => x.Read()).Returns(new Queue<bool>(new[] { true, false }).Dequeue); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteReader(It.IsAny<CommandBehavior>())).Returns(mockReader.Object); var mockConnection = new Mock<IDbConnection>(); mockConnection.Setup(x => x.CreateCommand()).Returns(mockCommand.Object); mockDbDriver.Setup(x => x.CreateConnection()).Returns(new MockDbConnectionWrapper(mockConnection.Object)); mockDbDriver.Setup(x => x.SupportsBatchedQueries).Returns(true); var session = new AsyncReadOnlySession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object); var includeCustomer = session.Include.Single<Customer>(2); var customer = session.SingleAsync<Customer>(1).Result; }
public void SingleSqlQueryThrowsObjectDisposedExceptionIfDisposed() { var session = new AsyncReadOnlySession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, new Mock<IDbDriver>().Object); using (session) { } var exception = Assert.Throws<AggregateException>( () => session.SingleAsync<Customer>(new SqlQuery("")).Result); Assert.IsType<ObjectDisposedException>(exception.InnerException); }
public void SingleSqlQueryThrowsArgumentNullExceptionForNullSqlQuery() { var session = new AsyncReadOnlySession( ConnectionScope.PerTransaction, new Mock<ISqlDialect>().Object, new Mock<IDbDriver>().Object); SqlQuery sqlQuery = null; var exception = Assert.Throws<AggregateException>( () => session.SingleAsync<Customer>(sqlQuery).Result); Assert.Equal("sqlQuery", ((ArgumentNullException)exception.InnerException).ParamName); }
public void SingleSqlQueryExecutesAndReturnsResult() { var mockSqlDialect = new Mock<ISqlDialect>(); var mockReader = new Mock<IDataReader>(); mockReader.Setup(x => x.Read()).Returns(new Queue<bool>(new[] { true, false }).Dequeue); mockReader.As<IDisposable>().Setup(x => x.Dispose()); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteReader(It.IsAny<CommandBehavior>())).Returns(mockReader.Object); 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 AsyncReadOnlySession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object); var customer = session.SingleAsync<Customer>(new SqlQuery("")).Result; Assert.NotNull(customer); mockReader.VerifyAll(); mockCommand.VerifyAll(); mockConnection.VerifyAll(); }
public void SingleIdentifierExecutesAndReturnsNull() { object identifier = 100; var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.BuildSelectSqlQuery(It.IsNotNull<IObjectInfo>(), identifier)).Returns(new SqlQuery("")); var mockReader = new Mock<IDataReader>(); mockReader.Setup(x => x.Read()).Returns(false); var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteReader(It.IsAny<CommandBehavior>())).Returns(mockReader.Object); 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 AsyncReadOnlySession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object); var customer = session.SingleAsync<Customer>(identifier).Result; Assert.Null(customer); mockReader.VerifyAll(); mockCommand.VerifyAll(); mockConnection.VerifyAll(); mockSqlDialect.VerifyAll(); }