public void AllCreatesASelectAllQueryExecutesAndReturnsResults() { var mockReader = new Mock<IDataReader>(); mockReader.Setup(x => x.Read()).Returns(new Queue<bool>(new[] { true, false }).Dequeue); var reader = mockReader.Object; var mockCommand = new Mock<IDbCommand>(); mockCommand.Setup(x => x.ExecuteReader()).Returns(reader); mockCommand.As<IDisposable>().Setup(x => x.Dispose()); var mockConnection = new Mock<IDbConnection>(); var mockSqlDialect = new Mock<ISqlDialect>(); mockSqlDialect.Setup(x => x.SqlCharacters).Returns(SqlCharacters.Empty); var mockDbDriver = new Mock<IDbDriver>(); mockDbDriver.Setup(x => x.GetConnection(ConnectionScope.PerTransaction)).Returns(mockConnection.Object); mockDbDriver.Setup(x => x.BuildCommand(SqlBuilder.Select("*").From(typeof(Customer)).ToSqlQuery())).Returns(mockCommand.Object); var session = new ReadOnlySession( ConnectionScope.PerTransaction, mockSqlDialect.Object, mockDbDriver.Object); var customers = session.All<Customer>(); session.ExecutePendingQueries(); Assert.Equal(1, customers.Values.Count); mockReader.VerifyAll(); mockCommand.VerifyAll(); mockConnection.VerifyAll(); mockSqlDialect.VerifyAll(); }