Как я могу подделать ObjectContext при модульном тестировании?Я создал свой общий репозиторий, который исключает ObjectContext, подделал ObjectSets, но я не могу понять, как создать и передать поддельный ObjectContext, содержащий поддельные ObjectSets, в мой репозиторий.Мой репозиторий принимает класс типа ObjectContext.
Есть идеи?
public class FakeObjectSet<T> : IObjectSet<T> where T : class {
HashSet<T> _data;
IQueryable _query;
public FakeObjectSet(){
this._data = new HashSet<T>();
this._query = this._data.AsQueryable();
}
public void AddObject(T Item) {
this._data.Add(Item);
}
public void Attach(T Item) {
this._data.Add(Item);
}
public void DeleteObject(T Item) {
this._data.Remove(Item);
}
public void Detach(T Item) {
this._data.Remove(Item);
}
public IEnumerator<T> GetEnumerator() {
return this._data.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator() {
return _data.GetEnumerator();
}
public Type ElementType {
get { return _data.AsQueryable().ElementType; }
}
public Expression Expression {
get { return _data.AsQueryable().Expression; }
}
public IQueryProvider Provider {
get { return _query.Provider; }
}
}
Моя реализация поддельного объекта
public class FakeJobSet : FakeObjectSet<Job>{
}
и мой класс поддельного контекста:
public class FakeCentralRepositoryContext{
public FakeCentralRepositoryContext(){
this.Jobs = new FakeJobSet();
}
public IObjectSet<Job> Jobs
{
get; private set;
}
}