public void Then_Maps_Fields_Appropriately(GetEpaoCoursesResult source)
        {
            var response = (GetEpaoCoursesApiModel)source;

            response.EpaoId.Should().BeEquivalentTo(source.EpaoId);
            response.Courses.Count().Should().Be(source.Courses.Count);
        }
        public void Then_Maps_An_Empty_List(GetEpaoCoursesResult source)
        {
            source.Courses = new List <GetStandardResponse>();

            var response = (GetEpaoCoursesApiModel)source;

            response.EpaoId.Should().BeEquivalentTo(source.EpaoId);
            response.Courses.Should().BeEmpty();
        }
        public async Task Then_Gets_EpaoCourses_From_Mediator(
            string epaoId,
            GetEpaoCoursesResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] EpaosController controller)
        {
            controller.Url = Mock.Of <IUrlHelper>();
            var expectedModel = (GetEpaoCoursesApiModel)mediatorResult;

            expectedModel.BuildLinks(controller.Url);
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetEpaoCoursesQuery>(query => query.EpaoId == epaoId),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetEpaoCourses(epaoId) as ObjectResult;

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

            model.Should().BeEquivalentTo(expectedModel);
        }