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
-~----------~----~----~----~------~----~------~--~---

Reply via email to