Я хочу обернуть фрагмент кода, использующий API-интерфейс Windows Impersonation, в аккуратный маленький вспомогательный класс, и, как обычно, я ищу способ пройти тестирование первым. Однако, хотя WindowsIdentity является управляемым классом, вызов LogonUser, необходимый для фактического выполнения входа в систему как другого пользователя, является неуправляемой функцией в advapi32.dll.
Я думаю, что могу обойти это, введя интерфейс для моего вспомогательного класса, чтобы использовать и скрыть вызовы P / Invoke в реализации, но тестирование этой реализации все еще будет проблемой. И вы можете себе представить, что на самом деле выполнение олицетворения в тесте может быть немного проблематичным, учитывая, что пользователю фактически необходимо существовать в системе.