public async Task Test_Write_CopiesHeaders() { var responseHeaders = new HeaderDictionary() { { "a", "b" } }; var responseMock = new Mock <HttpResponse>(); responseMock.SetupGet(x => x.Headers) .Returns(responseHeaders); var httpContextMock = new Mock <HttpContext>(); httpContextMock.SetupGet(x => x.Response) .Returns(responseMock.Object); var next = Mock.Of <RequestDelegate>(); var handlingContext = new HandlingContext(httpContextMock.Object, Encoding.UTF8, next) { WriteResponse = false }; var notification = new UntypedNotification(); var value = new JObject(); var headers = new HeaderDictionary { { "header", "value" } }; var wrapper = new JsonServerResponseWrapper(value, notification, headers); await wrapper.Write(handlingContext, new HeaderJsonRpcSerializer()); responseMock.VerifyGet(x => x.Headers); responseHeaders.Should().HaveCount(2); responseHeaders.Should().ContainKey("header"); }
public async void ProxyMethodCopiesCorsHeader() { var mockOwnerSettings = new Mock <IOwnerSettingsStore>(); var mockRepoSettings = new Mock <IRepoSettingsStore>(); var mockHttpContext = new Mock <HttpContext>(); var mockRequestHeaders = new HeaderDictionary { { "Accept", new StringValues("application/n-quads") } }; var mockResponseHeaders = new HeaderDictionary(); var mockResponseStream = new MemoryStream(); mockHttpContext.Setup(c => c.Request.Headers).Returns(mockRequestHeaders); //var response = new DefaultHttpResponse(mockHttpContext.Object); mockHttpContext.SetupProperty(c => c.Response.StatusCode); mockHttpContext.SetupGet(c => c.Response.Headers).Returns(mockResponseHeaders); mockHttpContext.SetupGet(c => c.Response.Body).Returns(mockResponseStream); var controller = new LinkedDataController(mockOwnerSettings.Object, mockRepoSettings.Object) { ControllerContext = new ControllerContext(new ActionContext(mockHttpContext.Object, new RouteData(), new ControllerActionDescriptor())) }; await controller.ProxyRequest(new Uri("http://localhost:" + _fixture.Server.Ports[0] + "/owner/repo/data/void.nq")); mockResponseHeaders.Should().ContainKey("Access-Control-Allow-Origin"); mockResponseHeaders["Access-Control-Allow-Origin"].Should().HaveCount(1).And.Contain("*"); }