public async Task Returns400IfPrereqChecksFailsForGetRefreshFundingJobPrereqErrors() { string errorMessage = "calc error"; ApiSpecificationSummary specificationSummary = NewApiSpecificationSummary(_ => _.WithId(SpecificationId)); GivenTheApiResponseDetailsForTheSuppliedId(specificationSummary); AndGetPreReqCheckerLocatorReturnsRefreshPreReqChecker(); AndPrereqChecksFails(specificationSummary, errors: new[] { errorMessage }); await WhenGetRefreshFundingJobPrereqErrors(); ThenTheResponseShouldBe <BadRequestObjectResult>(); BadRequestObjectResult objectResult = ActionResult as BadRequestObjectResult; objectResult.Should().NotBeNull(); objectResult.Value.Should().BeOfType <SerializableError>(); SerializableError errors = objectResult.Value as SerializableError; errors.Should().NotBeNull(); errors.Count.Should().Be(1); errors.FirstOrDefault().Value.Should().BeOfType <string[]>(); string[] errorArray = errors.FirstOrDefault().Value as string[]; errorArray.Should().NotBeNull(); errorArray.Length.Should().Be(1); errorArray.FirstOrDefault().Should().Be(errorMessage); }
public async Task ValidateSpecificationForRefresh_ReturnsBadRequest_ForBadRequestApiResponses() { string errorMessage = "Error"; IEnumerable <string> errors = new[] { errorMessage }; ValidatedApiResponse <IEnumerable <string> > apiResponse = new ValidatedApiResponse <IEnumerable <string> >(HttpStatusCode.BadRequest) { ModelState = new Dictionary <string, IEnumerable <string> > { { "", errors } } }; _publishingApiClient .ValidateSpecificationForRefresh(Arg.Is(ValidSpecificationId)) .Returns(apiResponse); IActionResult result = await _publishController.ValidateSpecificationForRefresh(ValidSpecificationId); result.Should().BeOfType <BadRequestObjectResult>(); BadRequestObjectResult okObjectResult = result as BadRequestObjectResult; okObjectResult.Should().NotBeNull(); okObjectResult.Value.Should().NotBeNull(); okObjectResult.Value.Should().BeOfType <Dictionary <string, IEnumerable <string> > >(); Dictionary <string, IEnumerable <string> > content = okObjectResult.Value as Dictionary <string, IEnumerable <string> >; content.Should().NotBeNull(); content.FirstOrDefault().Should().NotBeNull(); content.FirstOrDefault().Value.Count().Should().Be(1); content.FirstOrDefault().Value.FirstOrDefault().Should().Be(errorMessage); }
public void ErrorAs_Null_ShouldFail() { ActionResult result = new BadRequestObjectResult(null as object); var failureMessage = FailureMessageHelper.ExpectedContextTypeXButFoundNull( "BadRequestObjectResult.Error", typeof(object)); Action a = () => result.Should().BeBadRequestObjectResult().ErrorAs <object>(); a.Should().Throw <Exception>().WithMessage(failureMessage); }
public async Task QueueBatchUploadValidationReturnsBadRequestIfRequestFailsValidation() { BatchUploadValidationRequest request = NewBatchUploadValidationRequest(); ValidationResult validationResult = NewValidationResult(_ => _.WithValidationFailures(NewValidationFailure(), NewValidationFailure())); GivenTheValidationResultForTheRequest(request, validationResult); BadRequestObjectResult badRequest = await WhenTheBatchUploadValidationIsQueued(request, null, null) as BadRequestObjectResult; badRequest .Should() .NotBeNull(); }
public async Task AssignProfilePatternKeyReturnsBadRequestIfFundingConfigurationIsNotEnableedUserEditableRuleBasedProfiles() { string fundingLineCode = NewRandomString(); string key = NewRandomString(); PublishedProvider publishedProvider = NewPublishedProvider(_ => _.WithCurrent( NewPublishedProviderVersion(ppv => ppv.WithProfilePatternKeys( NewProfilePatternKey(ppk => ppk.WithFundingLineCode(fundingLineCode).WithKey(key)))))); GivenThePublishedProvider(publishedProvider); GivenTheFundingConfiguration(false); ProfilePatternKey profilePatternKey = NewProfilePatternKey(); BadRequestObjectResult result = await WhenProfilePatternKeyIsAssigned(_fundingStreamId, _fundingPeriodId, _providerId, profilePatternKey) as BadRequestObjectResult; result .Should() .NotBeNull(); result .Value .Should() .Be($"User not allowed to edit rule based profiles for funding stream - '{_fundingStreamId}' and funding period - '{_fundingPeriodId}'"); }