public void PerformOnConnection_Verify_Mapper_Called_On_DataReader()
        {
            IResultMapper <MyTestClass> mockMapper = MockRepository.GenerateMock <IResultMapper <MyTestClass> >();

            var mockTestClass = new MyTestClass();

            this.DataReader.Stub(x => x.Read())
            .Repeat
            .Once()
            .Return(true);

            //mock no fields so that no query structure is populated as we do not care about
            //it in this test
            this.DataReader.Stub(x => x.FieldCount)
            .Return(0);


            mockMapper.Expect(x => x.MapResult(Arg <IDataReader> .Is.Equal(this.DataReader), Arg <QueryResultStructure> .Is.Anything))
            .Return(mockTestClass);

            var result = RetrievalQueryExecutorBuilder <MyTestClass> .ForQuery("QUERY")
                         .WithCustomResultMapper(mockMapper)
                         .Build()
                         .PerformOnConnection(this.Connection);

            mockMapper.VerifyAllExpectations();

            Assert.AreSame(mockTestClass, result.First(), "Did not return the expected mapped object");
        }