public async Task Then_Gets_Training_Courses_From_Mediator_With_Keyword_And_RouteIds_And_Levels_And_OrderBy_If_Supplied(
            string keyword,
            List <int> levels,
            List <Guid> routeIds,
            GetTrainingCoursesListResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] TrainingCoursesController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetTrainingCoursesListQuery>(c =>
                                                           c.Keyword.Equals(keyword) &&
                                                           c.RouteIds.Equals(routeIds) &&
                                                           c.Levels.Equals(levels) &&
                                                           c.OrderBy.Equals(OrderBy.Score)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetList(keyword, routeIds, levels, "Relevance") as ObjectResult;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = controllerResult.Value as GetTrainingCoursesListResponse;

            model.TrainingCourses.Should().BeEquivalentTo(mediatorResult.Courses, options => options
                                                          .Excluding(tc => tc.ApprenticeshipFunding)
                                                          .Excluding(tc => tc.StandardDates)
                                                          );
            model.Total.Should().Be(mediatorResult.Total);
            model.TotalFiltered.Should().Be(mediatorResult.TotalFiltered);
        }
Example #2
0
        public async Task Then_Gets_Training_Courses_And_Sectors_And_Levels_From_Mediator_And_Shortlist_Count(
            Guid?shortlistUserId,
            GetTrainingCoursesListResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] TrainingCoursesController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetTrainingCoursesListQuery>(c => c.ShortlistUserId.Equals(shortlistUserId)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetList(shortlistUserId : shortlistUserId) as ObjectResult;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = controllerResult.Value as GetTrainingCoursesListResponse;

            model.TrainingCourses.Should().BeEquivalentTo(mediatorResult.Courses.Select(item => (GetTrainingCourseListItem)item));
            model.Sectors.Should().BeEquivalentTo(mediatorResult.Sectors, options => options.Excluding(c => c.Name));
            model.Levels.Should().BeEquivalentTo(mediatorResult.Levels);
            model.ShortlistItemCount.Should().Be(mediatorResult.ShortlistItemCount);
        }
        public async Task Then_Gets_Training_Courses_And_Sectors_And_Levels_From_Mediator(
            GetTrainingCoursesListResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] TrainingCoursesController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.IsAny <GetTrainingCoursesListQuery>(),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetList() as ObjectResult;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = controllerResult.Value as GetTrainingCoursesListResponse;

            model.TrainingCourses.Should().BeEquivalentTo(mediatorResult.Courses, options => options
                                                          .Excluding(tc => tc.ApprenticeshipFunding)
                                                          .Excluding(tc => tc.StandardDates)
                                                          );
            model.Sectors.Should().BeEquivalentTo(mediatorResult.Sectors);
            model.Levels.Should().BeEquivalentTo(mediatorResult.Levels);
        }