示例#1
0
        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");
        }
示例#2
0
        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("*");
        }