Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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"));
        }