public async Task GetFundingSchemaByVersion_WhenCheckingAlreadyExistsThrowsException_ReturnsInternalServerError() { //arrange const string version = "0.6"; string blobName = $"{fundingSchemaFolder}/{version}.json"; IFundingSchemaRepository fundingSchemaRepository = CreateFundingSchemaRepository(); fundingSchemaRepository .When(x => x.SchemaVersionExists(Arg.Any <string>())) .Do(x => { throw new Exception(); }); ILogger logger = CreateLogger(); FundingSchemaService fundingSchemaService = CreateFundingSchemaService(logger, fundingSchemaRepository: fundingSchemaRepository); //Act IActionResult result = await fundingSchemaService.GetFundingSchemaByVersion(version); //Assert result .Should() .BeAssignableTo <InternalServerErrorResult>() .Which .Value .Should() .Be($"Error occurred fetching funding schema verion '{version}'"); logger .Received(1) .Error(Arg.Is($"Failed to check if funding schema version: '{blobName}' exists")); }
public async Task SaveFundingSchema_WhenVersionDoesNotExistButSavingToBlobStorageCausesAnError_ReturnsNoContentResult() { //arrange const string version = "1.0"; string blobName = $"{fundingSchemaFolder}/{version}.json"; string json = CreateSchemaFile("CalculateFunding.Services.Policy.Resources.LogicalModel.json"); IFundingSchemaRepository fundingSchemaRepository = CreateFundingSchemaRepository(); fundingSchemaRepository .When(x => x.SaveFundingSchemaVersion(Arg.Any <string>(), Arg.Any <byte[]>())) .Do(x => { throw new Exception(); }); ILogger logger = CreateLogger(); FundingSchemaService fundingSchemaService = CreateFundingSchemaService(logger, fundingSchemaRepository: fundingSchemaRepository); //Act IActionResult result = await fundingSchemaService.SaveFundingSchema( createdAtActionName, createdAtControllerName, json); //Assert result .Should() .BeAssignableTo <InternalServerErrorResult>() .Which .Value .Should() .Be("Error occurred uploading funding schema"); logger .Received(1) .Error(Arg.Any <Exception>(), Arg.Is($"Failed to save funding schema '{blobName}' to blob storage")); }