Я хочу обработать исключение ManagementException только для определенного ErrorCode, и у меня возникли проблемы с написанием для него модульного теста. Обычно я бы написал тест примерно так:
Searcher search = MockRepository.GenerateMock<Searcher>();
// wrapper for ManagementObjectSearcher
...
search.Expect(s => s.Get()).Throw(new ManagementException());
...
Однако это не устанавливает ErrorCode на тот, который мне нужен, в частности, действительно, ManagementException не имеет конструктора, который устанавливает это значение.
Как это может быть сделано?
(Обратите внимание, что я использую RhinoMocks в качестве своего фиктивного фреймворка, но предполагаю, что он не зависит от фреймворка; все, что мне нужно знать, это как создать ManagementException с определенным значением ErrorCode. Также я нашел несколько ссылок на метод System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
онлайн, но это не общедоступно).