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

0 ответов

Другие вопросы по тегам