예제 #1
0
        public async Task WhenInvalidProductVersionRequest_ThenPostProductDataByProductVersionsReturnsBadRequest()
        {
            var validationMessage = new ValidationFailure("productName", "productName cannot be blank or null.")
            {
                ErrorCode = HttpStatusCode.BadRequest.ToString()
            };

            var exchangeSetResponse = new ExchangeSetResponse()
            {
            };
            var exchangeSetServiceResponse = new ExchangeSetServiceResponse()
            {
                ExchangeSetResponse = exchangeSetResponse,
                HttpStatusCode      = HttpStatusCode.BadRequest
            };

            A.CallTo(() => fakeProductDataService.ValidateProductDataByProductVersions(A <ProductDataProductVersionsRequest> .Ignored))
            .Returns(new ValidationResult(new List <ValidationFailure> {
                validationMessage
            }));

            A.CallTo(() => fakeProductDataService.CreateProductDataByProductVersions(A <ProductDataProductVersionsRequest> .Ignored, A <AzureAdB2C> .Ignored))
            .Returns(exchangeSetServiceResponse);

            var result = (BadRequestObjectResult)await controller.PostProductDataByProductVersions(
                new List <ProductVersionRequest>() { new ProductVersionRequest()
                                                     {
                                                         ProductName = null
                                                     } }, "");

            var errors = (ErrorDescription)result.Value;

            Assert.AreEqual(400, result.StatusCode);
            Assert.AreEqual("productName cannot be blank or null.", errors.Errors.Single().Description);
        }