Skip to content

Instantly share code, notes, and snippets.

@maxgherman
Created July 15, 2014 05:49
Show Gist options
  • Save maxgherman/48e96139b51535b24283 to your computer and use it in GitHub Desktop.
Save maxgherman/48e96139b51535b24283 to your computer and use it in GitHub Desktop.
Entity Framework DbSet NSubsitute Helper
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using NSubstitute;
namespace ConsoleApplication
{
public static class EntityFrameworkHelper
{
public static DbSet<R> AsDbSetSubstitute<R>(this IEnumerable<R> data) where R : class
{
var dataQuarebale = data.AsQueryable();
var dbSet = Substitute.For<DbSet<R>, IQueryable<R>>();
dbSet.InitializeDbSet<R>(dataQuarebale);
return dbSet;
}
public static void InitializeDbSet<R>(this DbSet<R> dbSet, IQueryable<R> data) where R : class
{
var dbSetQuarebale = (IQueryable<R>)dbSet;
dbSetQuarebale.Provider.Returns(data.Provider);
dbSetQuarebale.Expression.Returns(data.Expression);
dbSetQuarebale.ElementType.Returns(data.ElementType);
dbSetQuarebale.GetEnumerator().Returns(data.GetEnumerator());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment