Мне нужно смоделировать 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, и я стараюсь избегать этого, если это возможно.