public void Execute_OneDbCommandBuilder()
        {
            _dbCommandBuilder1Mock.Expect(mock => mock.Create(_commandExecutionContextStub)).Return(_dbCommandMock1);
            _dbCommandMock1.Expect(mock => mock.Dispose());
            _dataReaderMock.Expect(mock => mock.Dispose());
            _commandExecutionContextStub.Stub(stub => stub.ExecuteReader(_dbCommandMock1, CommandBehavior.SingleResult)).Return(_dataReaderMock);
            _objectIDReaderStub.Stub(stub => stub.ReadSequence(_dataReaderMock)).Return(_fakeResult);
            _repository.ReplayAll();

            var command = new MultiObjectIDLoadCommand(new[] { _dbCommandBuilder1Mock }, _objectIDReaderStub);

            var result = command.Execute(_commandExecutionContextStub).ToArray();

            _repository.VerifyAll();
            Assert.That(result, Is.EqualTo(new[] { _objectID1 }));
        }
        public void Execute_SeveralCommandBuilders()
        {
            _commandExecutionContextStub.Stub(stub => stub.ExecuteReader(_dbCommandMock1, CommandBehavior.SingleResult)).Return(_dataReaderMock);
            _commandExecutionContextStub.Stub(stub => stub.ExecuteReader(_dbCommandMock2, CommandBehavior.SingleResult)).Return(_dataReaderMock);
            _dbCommandBuilderMock1.Expect(mock => mock.Create(_commandExecutionContextStub)).Return(_dbCommandMock1);
            _dbCommandBuilderMock2.Expect(mock => mock.Create(_commandExecutionContextStub)).Return(_dbCommandMock2);
            _dbCommandMock1.Expect(mock => mock.Dispose());
            _dbCommandMock2.Expect(mock => mock.Dispose());
            _dataReaderMock.Expect(mock => mock.Dispose()).Repeat.Twice();
            _repository.ReplayAll();

            _objectReaderStub1.Stub(stub => stub.ReadSequence(_dataReaderMock)).Return(new[] { _fakeResult1 });
            _objectReaderStub2.Stub(stub => stub.ReadSequence(_dataReaderMock)).Return(new[] { _fakeResult2 });

            var command = new MultiObjectLoadCommand <object> (
                new[]
            {
                Tuple.Create(_dbCommandBuilderMock1, _objectReaderStub1),
                Tuple.Create(_dbCommandBuilderMock2, _objectReaderStub2)
            });

            var result = command.Execute(_commandExecutionContextStub).ToArray();

            _repository.VerifyAll();
            Assert.That(result, Is.EqualTo(new[] { _fakeResult1, _fakeResult2 }));
        }