In my project I am using the following approach to querying data from the database:
To isolate testing just to just the extension method i wouldn't mock anything. Create a list of Invoices in a List() with predefined values for each of the 3 tests and then invoke the extension method on the fakeInvoiceList.AsQueryable() and test the results.
Create entities in memory in a fakeList.
var testList = new List();
testList.Add(new Invoice {...});
var result = testList().AsQueryable().ByInvoiceType(enumValue).ToList();
// test results