public async Task And_NotFoundException_Then_Redirect_To_Epao_Unavailable(
            GetCourseEpaoDetailsRequest getRequest,
            NotFoundException <CourseEpao> exception,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] CoursesController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.IsAny <GetCourseEpaoQuery>(),
                       It.IsAny <CancellationToken>()))
            .ThrowsAsync(exception);

            var result = await controller.CourseEpao(getRequest) as RedirectToRouteResult;

            result !.RouteName.Should().Be(RouteNames.ErrorEpaoUnavailable);
        }
        public async Task And_Error_Then_Redirect_To_Error_Route(
            int providerId,
            int courseId,
            string location,
            Exception exception,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] CoursesController controller
            )
        {
            // Arrange
            mediator.Setup(x => x.Send(It.Is <GetCourseProviderQuery>(c =>
                                                                      c.ProviderId.Equals(providerId) && c.CourseId.Equals(courseId)),
                                       It.IsAny <CancellationToken>()))
            .ThrowsAsync(exception);

            // Act
            var actual = await controller.CourseProviderDetail(courseId, providerId, location, "", "") as RedirectToRouteResult;

            // Assert
            actual !.RouteName.Should().Be(RouteNames.Error500);
        }