using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data.Entity; using System.Linq; using System.Linq.Expressions; namespace Application.Ringtoets.Storage.TestUtil { public static class DbTestSet { public static DbSet GetDbTestSet(ObservableCollection data) where T : class { return new TestDbSet(data); } } public class TestDbSet : DbSet, IDbSet where T: class { private readonly IQueryable queryable; private readonly ObservableCollection collection; public TestDbSet(ObservableCollection queryable) { collection = queryable; this.queryable = queryable.AsQueryable(); } public IQueryProvider Provider { get { return queryable.Provider; } } public Expression Expression { get { return queryable.Expression; } } public Type ElementType { get { return queryable.ElementType; } } public override ObservableCollection Local { get { return collection; } } public override T Add(T entity) { collection.Add(entity); return entity; } public override T Remove(T entity) { collection.Remove(entity); return entity; } public override IEnumerable RemoveRange(IEnumerable entities) { foreach(var e in entities) { collection.Remove(e); } return entities; } IEnumerator IEnumerable.GetEnumerator() { return collection.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return collection.GetEnumerator(); } } }