Faking LINQ Queries

You can fake the result of a LINQ query.

When to Use

When your test requires to fake a SQL query or query result.

Syntax

C#

Isolate.WhenCalled(()=><linq_query>.WillReturnCollectionValuesOf(fakedList.AsQueryable());

VB

Isolate.WhenCalled(Function() <linq_query>).WillReturnCollectionValuesOf(fakedList.AsQueryable())

Samples

Sample 1: Faking the Result of a LINQ Query

The following sample shows how to fake the result of a LINQ query.

C#

public void ProcessCustomerList()
{
  var nycCustomers = from customer in customerList.USCustomers where customer.City == "NYC" select customer;
  // Process list
}

//The following sample shows how to fake the entire query and return your own customer list instead.
var fakedList = new List<USCustomers>();
Isolate.WhenCalled(()=> from customer in customerList.USCustomers where customer.City == "NYC"select customer).WillReturnCollectionValuesOf(fakedList.AsQueryable());

VB

Public Sub ProcessCustomerList()
	Dim nycCustomers = From customer In customerList.USCustomers Where customer.City = "NYC" customer
	' Process list
End Sub

'The following sample shows how to fake the entire query and return your own customer list instead.
Isolate.WhenCalled(Function() From customer In customerList.USCustomers Where customer.City = "NYC" select customer).WillReturnCollectionValuesOf(fakedList.AsQueryable())

Sample 2: Returning a Queryable Fake Result

If the customer list is retrieved from the database, you might want to return a faked set from the USCustomers property.

The following sample shows how to fake the USCustomers property and return it as IQueryable.

C#
var fakedList = new List<USCustomers>();
Isolate.WhenCalled(() => customerList.USCustomers).WillReturnCollectionValuesOf(fakedList.AsQueryable());

VB

Dim fakedList = New List(Of USCustomers)()
Isolate.WhenCalled(Function() customerList.USCustomers).WillReturnCollectionValuesOf(fakedList.AsQueryable())