Reputation: 3671
I have a stored procedure which returns two resultsets. I process it like this in my production code:
Rdr = Cmd.ExecuteReader();
while (Rdr.Read())
{
// process first resultset
}
Rdr.NextResult();
while (Rdr.Read())
{
// process second resultset
}
I'm not sure how this should be mocked (using Moq).
When testing single resultset stored procedures, my test code looks like this:
DataTableReader testDataReader = testData.CreateDataReader(); //testData is a DataTable
commandMock.Setup(m => m.ExecuteReader()).Returns(testDataReader)
How do I setup my mocks to mock the second resultset?
Upvotes: 1
Views: 449
Reputation: 72268
You can put them into a DataSet
and create a reader over that
var dataset = new DataSet();
dataset.Tables.Add(testData1);
dataset.Tables.Add(testData2);
var testDataReader = dataset.CreateDataReader();
commandMock.Setup(m => m.ExecuteReader()).Returns(testDataReader)
Upvotes: 3