public async Task Then_The_Data_Is_Retrieved_From_The_Service(
            GetAllTrainingProgrammesQuery query,
            List <TrainingProgramme> result,
            [Frozen] Mock <ITrainingProgrammeLookup> service,
            GetAllTrainingProgrammesQueryHandler handler)
        {
            service.Setup(x => x.GetAll()).ReturnsAsync(result);

            var actual = await handler.Handle(query, CancellationToken.None);

            actual.TrainingProgrammes.Should().BeEquivalentTo(result);
        }
        public async Task Then_The_Service_Is_Called_And_TrainingProgrammes_Returned()
        {
            //Arrange
            var query = new GetAllTrainingProgrammesQuery();

            //Act
            var actual = await _handler.Handle(query);

            //Assert
            var expectedList = new List <TrainingProgramme>();

            expectedList.AddRange(_standard.Standards.Select(c => new TrainingProgramme
            {
                Name           = c.Title,
                CourseCode     = c.Id,
                EffectiveFrom  = c.EffectiveFrom,
                EffectiveTo    = c.EffectiveTo,
                ProgrammeType  = ProgrammeType.Standard,
                FundingPeriods = c.FundingPeriods.Select(x => new TrainingProgrammeFundingPeriod
                {
                    EffectiveFrom = x.EffectiveFrom,
                    EffectiveTo   = x.EffectiveTo,
                    FundingCap    = x.FundingCap
                }).ToList()
            }));
            expectedList.AddRange(_frameworks.Frameworks.Select(c => new TrainingProgramme
            {
                Name           = c.Title,
                CourseCode     = c.Id,
                EffectiveFrom  = c.EffectiveFrom,
                EffectiveTo    = c.EffectiveTo,
                ProgrammeType  = ProgrammeType.Framework,
                FundingPeriods = c.FundingPeriods.Select(x => new TrainingProgrammeFundingPeriod
                {
                    EffectiveFrom = x.EffectiveFrom,
                    EffectiveTo   = x.EffectiveTo,
                    FundingCap    = x.FundingCap
                }).ToList()
            }));
            actual.TrainingProgrammes.ShouldBeEquivalentTo(expectedList.OrderBy(c => c.Name));
        }