public async Task SaveFundingPeriod_GivenValidJsonButFailedToSaveToDatabase_ReturnsStatusCode() { //Arrange ILogger logger = CreateLogger(); IPolicyRepository policyRepository = CreatePolicyRepository(); policyRepository .When(x => x.SaveFundingPeriods(Arg.Any <FundingPeriod[]>())) .Do(x => { throw new Exception(); }); FundingPeriodService fundingPeriodService = CreateFundingPeriodService(logger: logger, policyRepository: policyRepository); string errorMessage = $"Exception occurred writing json file to cosmos db"; //Act IActionResult result = await fundingPeriodService.SaveFundingPeriods(CreateFundingPeriodsJsonModel()); //Assert result .Should() .BeOfType <InternalServerErrorResult>() .Which .Value .Should() .Be(errorMessage); logger .Received(1) .Error(Arg.Any <Exception>(), Arg.Is(errorMessage)); }
public async Task SaveFundingStream_GivenValidYamlAndSaveWasSuccesful_ReturnsOK() { //Arrange ILogger logger = CreateLogger(); IPolicyRepository policyRepository = CreatePolicyRepository(); ICacheProvider cacheProvider = CreateCacheProvider(); FundingPeriodService fundingPeriodService = CreateFundingPeriodService(logger: logger, policyRepository: policyRepository, cacheProvider: cacheProvider); //Act IActionResult result = await fundingPeriodService.SaveFundingPeriods(CreateFundingPeriodsJsonModel()); //Assert result .Should() .BeOfType <OkResult>(); logger .Received(1) .Information(Arg.Is($"Successfully saved file to cosmos db")); await policyRepository .Received(1) .SaveFundingPeriods(Arg.Is <FundingPeriod[]>(m => m.Count() == 4)); await cacheProvider .Received(1) .RemoveAsync <FundingPeriod[]>(CacheKeys.FundingPeriods); }
public async Task SaveFundingPeriod_GivenNoJsonWasProvided_ReturnsBadRequest() { //Arrange ILogger logger = CreateLogger(); FundingPeriodService fundingPeriodService = CreateFundingPeriodService(logger: logger); //Act IActionResult result = await fundingPeriodService.SaveFundingPeriods(null); //Assert result .Should() .BeOfType <BadRequestObjectResult>(); logger .Received(1) .Error(Arg.Is($"Null or empty json provided for file")); }