public async Task GetFundingPeriods_GivenFundingPeriodsInCache_ReturnsFromCache() { // Arrange HttpRequest request = Substitute.For <HttpRequest>(); Period[] fundingPeriods = { new Period(), new Period() }; ICacheProvider cacheProvider = CreateCacheProvider(); cacheProvider .GetAsync <Period[]>(Arg.Is(CacheKeys.FundingPeriods)) .Returns(fundingPeriods); ISpecificationsRepository specificationsRepository = CreateSpecificationsRepository(); IFundingService fundingService = CreateService(specificationsRepository: specificationsRepository, cacheProvider: cacheProvider); // Act IActionResult result = await fundingService.GetFundingPeriods(request); // Assert result .Should() .BeOfType <OkObjectResult>(); await specificationsRepository .DidNotReceive() .GetPeriods(); }
public async Task EditSpecificationStatus_GivenStatusHasntChanges_DoesNotUpdateReturnsOkResult() { //Arrange EditStatusModel specificationEditStatusModel = new EditStatusModel { PublishStatus = PublishStatus.Approved }; ILogger logger = CreateLogger(); Specification specification = CreateSpecification(); specification.Current.PublishStatus = PublishStatus.Approved; ISpecificationsRepository specificationsRepository = CreateSpecificationsRepository(); specificationsRepository .GetSpecificationById(Arg.Is(SpecificationId)) .Returns(specification); SpecificationsService service = CreateService(logs: logger, specificationsRepository: specificationsRepository); //Act IActionResult result = await service.EditSpecificationStatus(SpecificationId, specificationEditStatusModel, null); //Arrange result .Should() .BeOfType <OkObjectResult>() .Which .Value .Should() .Be(specification); await specificationsRepository .DidNotReceive() .UpdateSpecification(Arg.Any <Specification>()); }
public async Task EditSpecificationStatus_GivenStatusHasntChanges_DoesNotUpdateReturnsOkResult() { //Arrange EditStatusModel specificationEditStatusModel = new EditStatusModel { PublishStatus = PublishStatus.Approved }; string json = JsonConvert.SerializeObject(specificationEditStatusModel); byte[] byteArray = Encoding.UTF8.GetBytes(json); MemoryStream stream = new MemoryStream(byteArray); HttpContext context = Substitute.For <HttpContext>(); HttpRequest request = Substitute.For <HttpRequest>(); IQueryCollection queryStringValues = new QueryCollection(new Dictionary <string, StringValues> { { "specificationId", new StringValues(SpecificationId) }, }); request .Query .Returns(queryStringValues); request .Body .Returns(stream); request .HttpContext .Returns(context); ILogger logger = CreateLogger(); Specification specification = CreateSpecification(); specification.Current.PublishStatus = PublishStatus.Approved; ISpecificationsRepository specificationsRepository = CreateSpecificationsRepository(); specificationsRepository .GetSpecificationById(Arg.Is(SpecificationId)) .Returns(specification); SpecificationsService service = CreateService(logs: logger, specificationsRepository: specificationsRepository); //Act IActionResult result = await service.EditSpecificationStatus(request); //Arrange result .Should() .BeOfType <OkObjectResult>() .Which .Value .Should() .Be(specification); await specificationsRepository .DidNotReceive() .UpdateSpecification(Arg.Any <Specification>()); }