コード例 #1
0
        public async Task PatchRegionHttpTrigger_ReturnsStatusCodeBadRequest_WhenMissingBody()
        {
            // arrange
            const string         path                   = ValidPathValue + "_Patch";
            const PageRegions    pageRegion             = PageRegions.Body;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.BadRequest;
            var responseModel = new Regions.Models.Region()
            {
                DocumentId     = Guid.NewGuid(),
                Path           = "a-path",
                PageRegion     = PageRegions.Body,
                RegionEndpoint = ValidEndpointValueWithPlaceHolder,
            };

            _httpRequestHelper.GetResourceFromRequest <JsonPatchDocument <Region> >(_request).Returns(Task.FromResult(default(JsonPatchDocument <Region>)).Result);
            _regionService.GetAsync(Arg.Any <string>(), Arg.Any <PageRegions>()).Returns(Task.FromResult(responseModel).Result);
            _regionService.ReplaceAsync(Arg.Any <Regions.Models.Region>()).Returns(Task.FromResult(responseModel).Result);

            _httpResponseMessageHelper.BadRequest().Returns(x => new HttpResponseMessage(expectedHttpStatusCode));

            // act
            var result = await RunFunctionAsync(path, (int)pageRegion);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #2
0
        public async Task PutRegionHttpTrigger_ReturnsStatusCodeBadRequest_WhenBadPathUrlInBody()
        {
            // arrange
            const string         path                   = ValidPathValue + "_Put";
            const PageRegions    pageRegion             = PageRegions.Body;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.BadRequest;
            var responseModel = new Regions.Models.Region()
            {
                DocumentId     = Guid.NewGuid(),
                Path           = NullPathValue,
                PageRegion     = pageRegion,
                RegionEndpoint = ValidEndpointValue
            };

            _httpRequestHelper.GetResourceFromRequest <Regions.Models.Region>(_request).Returns(Task.FromResult(responseModel).Result);

            _regionService.ReplaceAsync(Arg.Any <Regions.Models.Region>()).Returns(Task.FromResult(responseModel).Result);

            _httpResponseMessageHelper.BadRequest().Returns(x => new HttpResponseMessage(expectedHttpStatusCode));

            // act
            var result = await RunFunctionAsync(path, (int)pageRegion);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #3
0
        private async Task <HttpResponseMessage> RunFunctionAsync(string path, Regions.Models.Region regionModel)
        {
            var request                   = serviceProvider.GetService <DefaultHttpRequest>();
            var log                       = serviceProvider.GetService <ILogger>();
            var loggerHelper              = serviceProvider.GetService <ILoggerHelper>();
            var httpRequestHelper         = serviceProvider.GetService <IHttpRequestHelper>();
            var httpResponseMessageHelper = serviceProvider.GetService <IHttpResponseMessageHelper>();
            var jsonHelper                = serviceProvider.GetService <IJsonHelper>();
            var regionService             = serviceProvider.GetService <Services.IRegionService>();

            request.Body = MemoryStreamFromObject(regionModel);

            var response = await DFC.Composite.Regions.Functions.PostRegionHttpTrigger.Run(
                request,
                log,
                path,
                loggerHelper,
                httpRequestHelper,
                httpResponseMessageHelper,
                jsonHelper,
                regionService
                ).ConfigureAwait(false);

            return(response);
        }
コード例 #4
0
        public async Task PutRegionHttpTrigger_ReturnsStatusCodeOk_ForUpdatedRegion_WithPlaceHolder()
        {
            // arrange
            const string         path                   = ValidPathValue + "_Put";
            const PageRegions    pageRegion             = PageRegions.Body;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.OK;
            var responseModel = new Regions.Models.Region()
            {
                DocumentId     = Guid.NewGuid(),
                Path           = path,
                PageRegion     = pageRegion,
                RegionEndpoint = ValidEndpointValueWithPlaceHolder,
                OfflineHtml    = ValidHtmlFragment
            };

            _httpRequestHelper.GetResourceFromRequest <Regions.Models.Region>(_request).Returns(Task.FromResult(responseModel).Result);

            _regionService.ReplaceAsync(Arg.Any <Regions.Models.Region>()).Returns(Task.FromResult(responseModel).Result);

            _httpResponseMessageHelper.Ok(Arg.Any <string>()).Returns(x => new HttpResponseMessage(expectedHttpStatusCode));

            // act
            var result = await RunFunctionAsync(path, (int)pageRegion);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #5
0
        public async Task PutRegionHttpTrigger_ReturnsStatusCodeBadRequest_WhenPageRegionDoesNotMatchRoute()
        {
            // arrange
            const string         path                   = ValidPathValue + "_Put";
            const PageRegions    pageRegion             = PageRegions.Body;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.BadRequest;
            var responseModel = new Regions.Models.Region()
            {
                DocumentId     = Guid.NewGuid(),
                Path           = path,
                PageRegion     = PageRegions.SidebarRight,
                RegionEndpoint = ValidEndpointValue,
                OfflineHtml    = ValidHtmlFragment
            };

            _httpRequestHelper.GetResourceFromRequest <Regions.Models.Region>(_request).Returns(Task.FromResult(responseModel).Result);

            _httpResponseMessageHelper.BadRequest().Returns(x => new HttpResponseMessage(expectedHttpStatusCode));

            // act
            var result = await RunFunctionAsync(path, (int)pageRegion);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #6
0
        public async Task PostRegionHttpTrigger_ReturnsStatusCodeBadRequest_WhenMalformedHtml()
        {
            // arrange
            const string         path = ValidPathValue + "_Post";
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.BadRequest;
            var responseModel = new Regions.Models.Region()
            {
                Path           = path,
                PageRegion     = PageRegions.Body,
                RegionEndpoint = ValidEndpointValue,
                OfflineHtml    = MalformedHtmlFragment
            };

            _httpRequestHelper.GetResourceFromRequest <Regions.Models.Region>(_request).Returns(Task.FromResult(responseModel).Result);

            _regionService.CreateAsync(Arg.Any <Regions.Models.Region>()).Returns(Task.FromResult(responseModel).Result);

            _httpResponseMessageHelper.BadRequest().Returns(x => new HttpResponseMessage(expectedHttpStatusCode));

            // act
            var result = await RunFunctionAsync(path);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #7
0
        public async Task PutRegionHttpTrigger_ReturnsStatusCodeOk_ForUpdatedRegion_WithPlaceHolder()
        {
            // arrange
            const string         path                   = ValidPathValue + "_Put";
            const PageRegions    pageRegion             = PageRegions.Body;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.OK;
            var regionModel = new Regions.Models.Region()
            {
                DocumentId     = Guid.NewGuid(),
                Path           = path,
                PageRegion     = pageRegion,
                RegionEndpoint = ValidEndpointValueWithPlaceHolder,
                OfflineHtml    = ValidHtmlFragment
            };
            var regionService = serviceProvider.GetService <Services.IRegionService>();

            regionModel = await regionService.CreateAsync(regionModel);

            // act
            var result = await RunFunctionAsync(path, (int)pageRegion, regionModel);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #8
0
        public async Task GetRegionHttpTrigger_ReturnsStatusCodeOk_WhenRegionExists()
        {
            // arrange
            const string         path                   = ValidPathValue + "_Get";
            const PageRegions    pageRegion             = PageRegions.Body;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.OK;
            var responseModel = new Regions.Models.Region();

            _regionService.GetAsync(Arg.Any <string>(), Arg.Any <PageRegions>()).Returns(Task.FromResult(responseModel).Result);

            _httpResponseMessageHelper.Ok(Arg.Any <string>()).Returns(x => new HttpResponseMessage(expectedHttpStatusCode));

            // act
            var result = await RunFunctionAsync(path, (int)pageRegion);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #9
0
        public async Task PostRegionHttpTrigger_ReturnsStatusCodeBadRequest_WhenPathIsInvalid()
        {
            // arrange
            const string         path = InvalidPathValue;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.BadRequest;
            var regionModel = new Regions.Models.Region()
            {
                Path           = path,
                PageRegion     = PageRegions.Body,
                RegionEndpoint = ValidEndpointValue,
                OfflineHtml    = ValidHtmlFragment
            };

            // act
            var result = await RunFunctionAsync(path, regionModel);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #10
0
        public async Task PostRegionHttpTrigger_ReturnsStatusCodeOk_ForNewRegionWithPlaceHolder()
        {
            // arrange
            const string         path = ValidPathValue + "_Post_WithPlaceHolder";
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.OK;
            var regionModel = new Regions.Models.Region()
            {
                Path           = path,
                PageRegion     = PageRegions.Body,
                RegionEndpoint = ValidEndpointValueWithPlaceHolder,
                OfflineHtml    = ValidHtmlFragment
            };

            // act
            var result = await RunFunctionAsync(path, regionModel);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #11
0
        public async Task PutRegionHttpTrigger_ReturnsStatusCodeBadRequest_WhenMalformedHtml()
        {
            // arrange
            const string         path                   = ValidPathValue + "_Put";
            const PageRegions    pageRegion             = PageRegions.Body;
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.BadRequest;
            var regionModel = new Regions.Models.Region()
            {
                DocumentId     = Guid.NewGuid(),
                Path           = path,
                PageRegion     = pageRegion,
                RegionEndpoint = ValidEndpointValue,
                OfflineHtml    = MalformedHtmlFragment
            };

            // act
            var result = await RunFunctionAsync(path, (int)pageRegion, regionModel);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }
コード例 #12
0
        public async Task PostRegionHttpTrigger_ReturnsStatusCodeBadRequest_WhenPageRegionIsInvalid()
        {
            // arrange
            const string         path = ValidPathValue + "_Post";
            const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.BadRequest;
            var responseModel = new Regions.Models.Region()
            {
                Path           = path,
                PageRegion     = (PageRegions)(-1),
                RegionEndpoint = ValidEndpointValue
            };

            _httpRequestHelper.GetResourceFromRequest <Regions.Models.Region>(_request).Returns(Task.FromResult(responseModel).Result);

            _httpResponseMessageHelper.BadRequest().Returns(x => new HttpResponseMessage(expectedHttpStatusCode));

            // act
            var result = await RunFunctionAsync(path);

            // assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(expectedHttpStatusCode, result.StatusCode);
        }