Подделки - Шим частный конструктор для ответа (DirectoryServices)
Я пытаюсь подделать следующее:
DirectoryServices.AccountManagement.PrincipalSearcher.FindAll()
Проблема в том, что класс, возвращаемый из этого метода, имеет закрытый конструктор:
PrincipalSearchResult<Principal>
Так что я не могу принять обычный подход шиммала:
...
ShimPrincipalSearcher shimSearcher = new ShimPrincipalSearcher();
shimSearcher.FindAll = () => { return new PrincipalSearchResult<Principal>(); };
...
Кто-нибудь видел это раньше и нашел решение / подход для этого?
Я знаю, что здесь есть очень похожий вопрос:
Статический метод MS Fakes, который возвращает класс с помощью частного конструктора
Но принятый ответ, похоже, не работает для моего сценария - я подозреваю, потому что он специфичен для метода, рассматриваемого в этом вопросе.
Я хотел бы придерживаться Fakes / Shim, если это возможно - поскольку я использую его в других местах в своих модульных тестах - хотя я был бы счастлив попробовать альтернативные подходы (хотя я вряд ли получу одобрение на что-то вроде Typemock Isolator - как упомянуто в том другом посте - из-за стоимости)
У меня был некоторый успех с другими применениями прокладок - в том числе для других методов DirectoryServices - поэтому немного расстраивает то, что я застрял на чем-то подобном (что, я думаю, почти наверняка приведет к некоторой простой ошибке с моей стороны)
Любые указатели на это будут приветствоваться!