Actually sorry, I've expressed something wrong... from MethodInfo I get the type that needs to be mocked... so I can easily create the mock itself:
var mock = mocks.DynamicMock(methodInfo.ReturnType); ... now how can I assign this? >From methodInfo I have a method to which this mock needs to be assigned to (methodInfo.Name), if I could only do this: SetupResult.For(findMethodInfo).Return(findMethodReturnTypeMock); On Sep 22, 10:39 am, Vladan <[EMAIL PROTECTED]> wrote: > I have a bit of a strange situation. > > I have an Repository implementation which is based on a fluent > interface for defining a Find query, it looks something like this: > > var returnedItems = repository.Find(some_ICriteria) > .Order(some_Order) > .Group(some_Projection_for_group) > .All() > > Now, when testing this I need to write for example for SetupResult the > following tedious code: > > var findMock = mocks.DynamicMock<FindQueryPart>(); > var orderMock = mocks.DynamicMock<OrderQueryPart>(); > var groupMock = mocks.DynamicMock<GroupQueryPart>(); > var returnedItems = new List(); > > SetupResult.For(repository.Find(some_ICriteria)).Return(findMock); > SetupResult.For(findMock.Order(some_Order)).Return(orderMock); > SetupResult.For(orderMock.Group(some_Projection_for_group)).Return(groupMock); > SetupResult.For(groupMock.All()).Return(returnedItems); > > As you can imagine, for a single query call this is alot of code, and > somehow I feel it smells (I need this amount of code because each step > in the fluent interface above returns a different object via interface > (e.g. IFindQueryPart). > > One important thing is that the SetupResult must chain the methods in > exactly the way they've been chained in the call (for example Order > must be chained to Group and not vice versa). > > Now to aid this, I've written a Lambda expression inspector (simple > stuff) which call looks like this: > > MockFromLambda(repository => repository.Find(some_ICriteria) > > .Order(some_Order) > > .Group(some_Projection_for_group) > .All()); > > And it is able to return to me a MethodInfo object for each call in > the chain (Find call, Order call, Group call and All call). > > My question is now... how can I generate a DynamicMock from the > information in that MethodInfo? and after that feed that to the > SetupResult? > > The idea would be to dynamically generate the chain of mocks from the > Lambda expression and chain them all together? > > Any ideas anyone? Has anyone tried this before? > > Thanks, > Vladan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en -~----------~----~----~----~------~----~------~--~---
