Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 570425
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T13:24:00+00:00 2026-05-13T13:24:00+00:00

Is it possible to Mock a Linq Expression via Moq using a Generic class

  • 0

Is it possible to Mock a Linq Expression via Moq using a Generic class such as ~1Repository. ~IRepository being something that is injected via an IoC such as StructureMap or Windsor?

CODE TO TEST:

   var person = _repository.Find<Person>()
                           .Where(p => p.Id == person.Id).SingleOrDefault();

TEST:

    var repository = new Mock<IRepository>();

    repository.Setup(i => i.Find<Person>()
                     .Where(p => p.Id == person.Id).SingleOrDefault())
                     .Returns(person).Verifiable();

EXCEPTION:

System.ArgumentException: Invalid setup on a non-member method:i => i.Find().Where(p => p.Id == “Fred”).SingleOrDefault()

SOLUTION

    using System.Linq;
    ...

    _container.GetMock<IRepository>.Setup(i => i.Find<Person>())
                     .Returns(new List{person}.AsQueryable()).Verifiable();

    ...
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T13:24:01+00:00Added an answer on May 13, 2026 at 1:24 pm

    If Find<T>() is an extension method on IRepository, then I don’t think it’ll work, because you’re dealing with a static type.

    If Find<T>() is a method on IRepository, then you set up a return value only for repository.Find<Person>().

    Create an IEnumerable<> or IQueryable<> for Find<>() to return (whichever type it is actually supposed to return — I don’t know which it is), and the LINQ expression will just do its work on that in the actual class. You don’t have to mock the LINQ because that is just filtering the results of your own method, even though in production, if this is, say, Entity Framework or LINQ to SQL, the whole expression will instead be converted to an optimized database call.

    If in your setup you give the collection an item with a matching ID, you’ll assert that you get it back.
    If in your setup you don’t give the collection an item with a matching ID, you’ll assert that you get null (the default).
    If in your setup you return null from repository.Find<>(), you’ll assert than an exception is thrown because you can’t call the extension methods on null.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is it possible to mock the Assembly class? If so, using what framework, and
Is it possible to use Moq to mock an object that implements an interface
Is it possible to mock a concrete class using EaskMock? If so, how do
Possible Duplicate: How to mock a method that returns an int with MOQ Here's
Is it possible using Mockito and optionally Powermock to mock a superclass S such
Is it possible to mock an object in a way that it fakes multiple
Is it possible to determine if an EasyMock mock is on replay mode? Something
Is it possible to mock a static method using Rhino.Mocks? If Rhino does not
Is it possible to create a strict mock using the new AAA syntax of
Is that possible in RhinoMocks to create mock object without it constructor invocation? public

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.