public void Mapper_FundingPeriodToPeriod_ShouldReturnCorrectPeriod() { // Arrange Mapper.Reset(); MapperConfigurationExpression mappings = new MapperConfigurationExpression(); mappings.AddProfile <ExternalApiMappingProfile>(); Mapper.Initialize(mappings); IMapper mapperUnderTest = Mapper.Instance; Models.Specs.Period fundingPeriod = new Models.Specs.Period() { Name = "Name", Id = "Id", StartDate = DateTimeOffset.MinValue, EndDate = DateTimeOffset.MaxValue }; // Act V1.Models.Period mappedPeriod = mapperUnderTest.Map <V1.Models.Period>(fundingPeriod); // Assert mappedPeriod.Should().NotBeNull(); mappedPeriod.StartYear.Should().Be(fundingPeriod.StartYear); mappedPeriod.EndYear.Should().Be(fundingPeriod.EndYear); mappedPeriod.Id.Should().Be(fundingPeriod.Id); mappedPeriod.Name.Should().Be(fundingPeriod.Name); }
public async Task GetTimePeriods_WhenServiceReturns200OkResult_ShouldReturnOkResultWithFundingPeriods() { // Arrange Models.Specs.Period fundingPeriod1 = new Models.Specs.Period() { Id = "AYCode", Name = "AcademicYear", StartDate = DateTimeOffset.Now, EndDate = DateTimeOffset.Now.AddYears(1) }; Models.Specs.Period fundingPeriod2 = new Models.Specs.Period() { Id = "FYCode", Name = "FinalYear", StartDate = DateTimeOffset.Now, EndDate = DateTimeOffset.Now.AddYears(1) }; Mapper.Reset(); MapperConfigurationExpression mappings = new MapperConfigurationExpression(); mappings.AddProfile <ExternalApiMappingProfile>(); Mapper.Initialize(mappings); IMapper mapper = Mapper.Instance; OkObjectResult specServiceOkObjectResult = new OkObjectResult(new List <Models.Specs.Period> { fundingPeriod1, fundingPeriod2 }); IFundingService mockFundingService = Substitute.For <IFundingService>(); mockFundingService.GetFundingPeriods(Arg.Any <HttpRequest>()).Returns(specServiceOkObjectResult); TimePeriodsService serviceUnderTest = new TimePeriodsService(mockFundingService, mapper); // Act IActionResult result = await serviceUnderTest.GetFundingPeriods(Substitute.For <HttpRequest>()); // Assert result .Should().NotBeNull() .And .Subject.Should().BeOfType <OkObjectResult>(); OkObjectResult resultCasted = result as OkObjectResult; resultCasted.Value .Should().NotBeNull() .And .Subject.Should().BeOfType <List <V1.Models.Period> >(); List <V1.Models.Period> resultPeriods = resultCasted.Value as List <V1.Models.Period>; resultPeriods .Count .Should() .Be(2); resultPeriods.ElementAt(0).Id.Should().Be("AYCode"); resultPeriods.ElementAt(0).Name.Should().Be("AcademicYear"); resultPeriods.ElementAt(0).StartYear.Should().Be(DateTimeOffset.Now.Year); resultPeriods.ElementAt(0).EndYear.Should().Be(DateTimeOffset.Now.Year + 1); resultPeriods.ElementAt(1).Id.Should().Be("FYCode"); resultPeriods.ElementAt(1).Name.Should().Be("FinalYear"); resultPeriods.ElementAt(1).StartYear.Should().Be(DateTimeOffset.Now.Year); resultPeriods.ElementAt(1).EndYear.Should().Be(DateTimeOffset.Now.Year + 1); }