Esempio n. 1
0
        public async Task GetTemplateMapping_GivenFailedResponseFromCalculationsApi_ThrowsRetriableException()
        {
            //Arrange
            ApiResponse <TemplateMapping> apiResponse = new ApiResponse <TemplateMapping>(HttpStatusCode.NotFound);

            ICalculationsApiClient calculationsApiClient = CreateCalculationsApiClient();

            calculationsApiClient
            .GetTemplateMapping(Arg.Is(specificationId), Arg.Is(fundingStreamId))
            .Returns(apiResponse);

            ILogger logger = CreateLogger();

            string errorMessage = $"Failed to retrieve template mapping for specification id '{specificationId}' and  funding stream id '{fundingStreamId}'" +
                                  $" with status code '{apiResponse.StatusCode}'";

            CalculationsService calculationsService = CreateCalculationsService(calculationsApiClient, logger);

            //Act
            Func <Task> test = async() => await calculationsService.GetTemplateMapping(specificationId, fundingStreamId);

            //Assert
            test
            .Should()
            .ThrowExactly <RetriableException>()
            .Which
            .Message
            .Should()
            .Be(errorMessage);

            logger
            .Received(1)
            .Error(Arg.Is(errorMessage));
        }
Esempio n. 2
0
        public async Task GetTemplateMapping_GivenResponseIsSuccess_ReturnsTempalteMappingValue()
        {
            //Arrange
            TemplateMapping expectedTemplateMapping = new TemplateMapping()
            {
                SpecificationId = specificationId, FundingStreamId = fundingStreamId
            };
            ApiResponse <TemplateMapping> apiResponse = new ApiResponse <TemplateMapping>(HttpStatusCode.OK, expectedTemplateMapping);

            ICalculationsApiClient calculationsApiClient = CreateCalculationsApiClient();

            calculationsApiClient
            .GetTemplateMapping(Arg.Is(specificationId), Arg.Is(fundingStreamId))
            .Returns(apiResponse);

            ILogger logger = CreateLogger();

            CalculationsService calculationsService = CreateCalculationsService(calculationsApiClient, logger);

            //Act
            TemplateMapping responseValue = await calculationsService.GetTemplateMapping(specificationId, fundingStreamId);

            //Assert
            responseValue
            .Should()
            .Be(expectedTemplateMapping);
        }