Как имитировать System.Data.Linq.Table

Один из моих базовых классов репозитория содержит метод:

public abstract class RepositoryBase<T, TDb> : IRepository<T>
    where T : IEntity
    where TDb : class, IDbEntity, new()
{
    protected internal abstract Table<TDb> GetTable();
    ...
}

Я пишу модульный тест для производного класса репозитория, который содержит реализацию упомянутого метода:

public class CmOptionRepository : 
    RepositoryBase<ICmOption, CMCoreDAL.DbData.CMOption>, ICmOptionRepository
{
    protected internal override System.Data.Linq.Table<CMCoreDAL.DbData.CMOption>
        GetTable()
    {
        return Context.CMOptions;
    }

....
}

Здесь: Контекст - это Linq-модель БД, CMOptions - одна из таблиц БД.

Я хочу, чтобы мой метод GetTable () возвращал специальный набор данных.

Я собираюсь издеваться над методом:

        System.Data.Linq.Table<CMCoreDAL.DbData.CMOption> table = ...;
        Mock<CmOptionRepository> mockRepository =
            new Mock<CmOptionRepository>(MockBehavior.Strict);
        mockRepository.Setup(mock => mock.GetTable()).Returns(table);

Но не знаю, как создать экземпляр класса System.Data.Linq.Table .

Вопрос: как издеваться над System.Data.Linq.Table <> ? Или, возможно, мне нужно изменить подпись метода, чтобы избежать использования класса System.Data.Linq.Table <> ?

Пожалуйста, сообщите. Приветствуются любые мысли.

PS Я использую Moq.

7
задан Budda 23 November 2010 в 14:26
поделиться