<rsd version="1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://archipelago.phrasewise.com/rsd">
  <service>
    <engineName>MyGet</engineName>
    <engineLink>http://www.myget.org/</engineLink>
    <dc:identifier>https://www.myget.org/F/mockqueryable/</dc:identifier>
    <dc:owner>romantitov</dc:owner>
    <dc:creator>romantitov</dc:creator>
    <dc:title>Extension for mocking Entity Framework Core operations such ToListAsync, FirstOrDefaultAsync etc. by Moq When writing tests for your application it is often desirable to avoid hitting the database. The extension allows you to achieve this by creating a context – with behavior defined by your tests – that makes use of in-memory data.</dc:title>
    <dc:description># MockQueryable

[![Build status](https://ci.appveyor.com/api/projects/status/ggdbipcyyfb4av9e?svg=true)](https://ci.appveyor.com/project/handybudget/mockqueryable)
[![Build Status](https://travis-ci.org/romantitov/MockQueryable.svg?branch=master)](https://travis-ci.org/romantitov/MockQueryable)
[![Downloads](https://img.shields.io/nuget/dt/MockQueryable.Moq.svg)](https://www.nuget.org/packages/MockQueryable.Moq/)


Extension for mocking [Entity Framework Core](https://github.com/aspnet/EntityFrameworkCore/) operations such ToListAsync, FirstOrDefaultAsync etc. by [Moq](https://github.com/moq/moq)
When writing tests for your application it is often desirable to avoid hitting the database. The extension allows you to achieve this by creating a context - with behavior defined by your tests - that makes use of in-memory data.

### How do I get started?

    //1 - create a List&lt;T&gt; with test items
    var users = new List&lt;UserEntity&gt;()
    {
      new UserEntity{LastName = "ExistLastName", DateOfBirth = DateTime.Parse("01/20/2012")},
     ...
    };

    //2 - build mock by extension
    var mock = users.AsQueryable().BuildMock();

    //3 - setup the mock as Queryable 
    _userRepository.Setup(x =&gt; x.GetQueryable()).Returns(mock.Object);


Check out the [sample project](https://github.com/romantitov/MockQueryable/tree/master/src/MockQueryable/MockQueryable.Sample)

### Where can I get it?

First, [install NuGet](http://docs.nuget.org/docs/start-here/installing-nuget). Then, install [MockQueryable.Moq](https://www.nuget.org/packages/MockQueryable.Moq/) from the package manager console:

```
PM&gt; Install-Package MockQueryable.Moq
```

### Can I use it with my favorite mock framework?

You can install [MockQueryable.Core](https://www.nuget.org/packages/MockQueryable.Core/) from the package manager console:

```
PM&gt; Install-Package MockQueryable.Core
```
[![Downloads](https://img.shields.io/nuget/dt/MockQueryable.Moq.svg)](https://www.nuget.org/packages/MockQueryable.Core/)

Then [make own extension](https://github.com/romantitov/MockQueryable/blob/master/src/MockQueryable/MockQueryable.Moq/MoqExtensions.cs) for your favorite mock framework</dc:description>
    <homePageLink>https://www.myget.org/Feed/Details/mockqueryable/</homePageLink>
    <apis>
      <api name="nuget-v3-packages" blogID="" preferred="false" apiLink="https://www.myget.org/F/mockqueryable/api/v3/index.json" />
      <api name="nuget-v2-packages" blogID="" preferred="true" apiLink="https://www.myget.org/F/mockqueryable/api/v2/" />
      <api name="nuget-v1-packages" blogID="" preferred="false" apiLink="https://www.myget.org/F/mockqueryable/api/v1/" />
    </apis>
  </service>
</rsd>