c# - Moq - cannot iterate through a hidden IEnumerable -


we have reasonably complicated interface hierarchy , i'm struggling moq want to.

i have interface ireservation extends irulesreservation, , hides enumerator new implementation of type.

public interface ireservation : irulesreservation {     new ienumerator<iroutepart> getenumerator(); } 

irulesreservation extends ienumerable.

public interface irulesreservation : ienumerable<irulesroutepart> { } 

the method i'm trying test takes in ireservation, @ various points needs access ienumerable<irulesroutepart>. mock setup so:

m_mock = new mock<ireservation>(); m_mock.as<irulesreservation>().setup(r => r.getenumerator()).returns(routeparts.select(rp => (irulesroutepart)rp).getenumerator()); 

in example, routeparts list of irouteparts come mock<irouteparts> objects setup .as<irulesroutepart>().

whenever bit of code in function i'm testing uses enumerator, steps on iteration though collection empty.

am doing wrong in setup? or moq unable handle enumerator hidden in way?


edit: strange behaviour i've noticed when running test code on mock:

assert.that((reservation.object irulesreservation).count() == 8); assert.that((reservation.object ienumerable<irulesroutepart>).count() == 8); 

the first line pass, second line fail. tried changing mock setup enumerator ienumerable<irulesroutepart>, no effect:

m_mock.as<ienumerable<irulesroutepart>>().setup(r => r.getenumerator()).returns(routeparts.select(rp => (irulesroutepart)rp).getenumerator()); 

does object setup returns have data? that's problem.


Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -