How do I mock the method GetValues() in System.Data.IDataReader?
This method changes the array of objects passed to it, so it can’t simply return a mocked value.
private void UpdateItemPropertyValuesFromReader( object item, IDataReader reader ) { object[] fields = new object[ reader.FieldCount ]; reader.GetValues( fields ); //this needs to be mocked to return a fixed set of fields // process fields ... }
you need to use the method Expect.Do() which takes a delegate. this delegate then needs to ‘do’ something, in place of the calling code. Therefore, write a delegate that populates the fields variable for you.