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); }