Перемешивание WebOperationContext.IncomingRequest
Мне нужно смоделировать WebOperationContext и, в частности, IncomingRequest с заголовком, который назначает значение Accept, чтобы проверить, что значение читается правильно, и OutgoingReponse.ContentType соответствует этому желаемому формату. Я использую WCFMock и все было хорошо с общим тестированием, но я не могу понять, что мне нужно сделать, чтобы высмеивать Incoming Response.
Свойство Accept доступно только для чтения, поэтому назначение напрямую невозможно. Я попытался добавить установщик в WCFMock.IncomingWebRequestContextWrapper, который предсказуемо бомбит, так как он наследуется от System.SericeModel.Web.IncomingWebRequestContext.
Так что как то хотелось бы
[Test]
public void SerializeObjectToXMLTest()
{
var fake = new FakeRest();
var mockContext = new Mock<IWebOperationContext> { DefaultValue = DefaultValue.Mock };
using (new MockedWebOperationContext(mockContext.Object))
{
// WHAT I WOULD LOVE:
MockedWebOperationContext.Current.IncomingRequest.Accept = "application/json";
fake.SetResponseContentType();
}
// Assert
mockContext.VerifySet(c => c.OutgoingResponse.ContentType, "application/json");
}
Боюсь, мне нужно полностью высмеять WebRequest, и я стараюсь избегать этого, если это возможно.