Skip to content

Instantly share code, notes, and snippets.

@KerryRitter
Last active September 13, 2016 18:49
Show Gist options
  • Save KerryRitter/1de4f773391a77214942 to your computer and use it in GitHub Desktop.
Save KerryRitter/1de4f773391a77214942 to your computer and use it in GitHub Desktop.
AsMockDbSet extension for IEnumerables
public static Mock<DbSet<T>> AsMockDbSet<T>(this IEnumerable<T> data) where T : class
{
var mockSet = new Mock<DbSet<T>>();
var queryable = data.AsQueryable();
mockSet.As<IQueryable<T>>().Setup(m => m.Provider).Returns(() => queryable.Provider);
mockSet.As<IQueryable<T>>().Setup(m => m.Expression).Returns(() => queryable.Expression);
mockSet.As<IQueryable<T>>().Setup(m => m.ElementType).Returns(() => queryable.ElementType);
mockSet.As<IQueryable<T>>().Setup(m => m.GetEnumerator()).Returns(() => queryable.GetEnumerator());
mockSet.CallBase = true;
return mockSet;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment