Exemplo n.º 1
0
        public async Task Then_If_The_Cached_Object_Is_Null_Then_Redirect_To_EnterApprenticeshipDetails(
            int courseId,
            Guid demandId,
            GetCachedCreateCourseDemandQueryResult mediatorResult,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Arrange
            mediatorResult.CourseDemand = null;
            mediator.Setup(x =>
                           x.Send(It.Is <GetCachedCreateCourseDemandQuery>(c =>
                                                                           c.Id.Equals(demandId))
                                  , It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            //Act
            var actual = await controller.RegisterDemandCompleted(courseId, demandId) as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(actual);

            actual.RouteName.Should().Be(RouteNames.RegisterDemand);
            actual.RouteValues.ContainsKey("Id").Should().BeTrue();
            actual.RouteValues["Id"].Should().Be(courseId);
        }
        public async Task Then_If_There_Is_A_CreateDemand_Id_Then_It_Is_Passed_To_The_Query(
            int trainingCourseId,
            Guid createDemandId,
            GetCreateCourseDemandQueryResult mediatorResult,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Arrange
            mediator.Setup(x =>
                           x.Send(It.Is <GetCreateCourseDemandQuery>(c =>
                                                                     c.TrainingCourseId.Equals(trainingCourseId) &&
                                                                     c.CreateDemandId.Equals(createDemandId))
                                  , It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            //Act
            var actual = await controller.RegisterDemand(trainingCourseId, createDemandId) as ViewResult;

            //Assert
            Assert.IsNotNull(actual);
            var actualModel = actual.Model as RegisterCourseDemandViewModel;

            Assert.IsNotNull(actualModel);
            actualModel.TrainingCourse.Should().BeEquivalentTo(mediatorResult.CourseDemand.Course);
        }
Exemplo n.º 3
0
        public async Task Then_Mediator_Is_Called_And_The_ViewModel_Returned_And_FAT_Url_Taken_From_Config(
            int courseId,
            Guid demandId,
            GetCachedCreateCourseDemandQueryResult mediatorResult,
            [Frozen] Mock <IOptions <Domain.Configuration.EmployerDemand> > config,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Arrange
            mediator.Setup(x =>
                           x.Send(It.Is <GetCachedCreateCourseDemandQuery>(c =>
                                                                           c.Id.Equals(demandId))
                                  , It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            //Act
            var actual = await controller.RegisterDemandCompleted(courseId, demandId) as ViewResult;

            //Assert
            Assert.IsNotNull(actual);
            var actualModel = actual.Model as CompletedCourseDemandViewModel;

            Assert.IsNotNull(actualModel);
            actualModel.TrainingCourse.Should().BeEquivalentTo(mediatorResult.CourseDemand.Course);
            actualModel.FindApprenticeshipTrainingCourseUrl.Should().Be(config.Object.Value.FindApprenticeshipTrainingUrl + "/courses");
        }
Exemplo n.º 4
0
        public async Task Then_If_The_Number_Of_Apprentices_Is_Not_Known_Then_The_Value_Is_Set_To_Null(
            RegisterDemandRequest request,
            CreateCachedCourseDemandCommandResult mediatorResult,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Arrange
            request.NumberOfApprenticesKnown = false;
            mediator.Setup(x =>
                           x.Send(It.Is <CreateCachedCourseDemandCommand>(c =>
                                                                          c.TrainingCourseId.Equals(request.TrainingCourseId) &&
                                                                          c.Location.Equals(request.Location) &&
                                                                          c.OrganisationName.Equals(request.OrganisationName) &&
                                                                          c.ContactEmailAddress.Equals(request.ContactEmailAddress) &&
                                                                          c.NumberOfApprentices == string.Empty &&
                                                                          c.Id != Guid.Empty
                                                                          ), It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            //Act
            var actual = await controller.PostRegisterDemand(request) as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(actual);
            actual.RouteName.Should().Be(RouteNames.ConfirmRegisterDemand);
            actual.RouteValues["id"].Should().Be(request.TrainingCourseId);
            actual.RouteValues["createDemandId"].Should().Be(mediatorResult.Id);
        }
Exemplo n.º 5
0
        public async Task Then_Mediator_Is_Called_And_Existing_DemandId_Used_If_Updating_Then_Redirected_To_Confirm(
            RegisterDemandRequest request,
            CreateCachedCourseDemandCommandResult mediatorResult,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Arrange
            request.NumberOfApprenticesKnown = true;
            mediator.Setup(x =>
                           x.Send(It.Is <CreateCachedCourseDemandCommand>(c =>
                                                                          c.TrainingCourseId.Equals(request.TrainingCourseId) &&
                                                                          c.Location.Equals(request.Location) &&
                                                                          c.OrganisationName.Equals(request.OrganisationName) &&
                                                                          c.ContactEmailAddress.Equals(request.ContactEmailAddress) &&
                                                                          c.NumberOfApprentices.Equals(request.NumberOfApprentices) &&
                                                                          c.Id == request.CreateDemandId
                                                                          )
                                  , It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            //Act
            var actual = await controller.PostRegisterDemand(request) as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(actual);
            actual.RouteName.Should().Be(RouteNames.ConfirmRegisterDemand);
            actual.RouteValues["id"].Should().Be(request.TrainingCourseId);
            actual.RouteValues["createDemandId"].Should().Be(mediatorResult.Id);
        }
        public async Task Then_Mediator_Is_Called_And_Redirected_To_Completed(
            Guid demandId,
            int trainingCourseId,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Act
            var actual = await controller.PostConfirmRegisterDemand(trainingCourseId, demandId) as RedirectToRouteResult;

            //Assert
            mediator.Verify(x =>
                            x.Send(It.Is <CreateCourseDemandCommand>(c =>
                                                                     c.Id == demandId
                                                                     )
                                   , It.IsAny <CancellationToken>()), Times.Once);
            Assert.IsNotNull(actual);
            actual.RouteName.Should().Be(RouteNames.RegisterDemandCompleted);
            actual.RouteValues["id"].Should().Be(trainingCourseId);
            actual.RouteValues["createDemandId"].Should().Be(demandId);
        }
        public async Task Then_Mediator_Is_Called_And_The_ViewModel_Returned(
            int courseId,
            Guid demandId,
            GetCachedCreateCourseDemandQueryResult mediatorResult,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Arrange
            mediator.Setup(x =>
                           x.Send(It.Is <GetCachedCreateCourseDemandQuery>(c =>
                                                                           c.Id.Equals(demandId))
                                  , It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            //Act
            var actual = await controller.ConfirmRegisterDemand(courseId, demandId) as ViewResult;

            //Assert
            Assert.IsNotNull(actual);
            var actualModel = actual.Model as ConfirmCourseDemandViewModel;

            Assert.IsNotNull(actualModel);
            actualModel.TrainingCourse.Should().BeEquivalentTo(mediatorResult.CourseDemand.Course);
        }
Exemplo n.º 8
0
        public async Task Then_If_There_Is_A_Validation_Exception_The_Register_View_Is_Returned(
            RegisterDemandRequest request,
            CreateCachedCourseDemandCommandResult mediatorResult,
            GetCreateCourseDemandQueryResult result,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] RegisterDemandController controller)
        {
            //Arrange
            mediator.Setup(x =>
                           x.Send(It.IsAny <CreateCachedCourseDemandCommand>()
                                  , It.IsAny <CancellationToken>()))
            .ThrowsAsync(new ValidationException());
            mediator.Setup(x =>
                           x.Send(It.Is <GetCreateCourseDemandQuery>(c => c.TrainingCourseId.Equals(request.TrainingCourseId))
                                  , It.IsAny <CancellationToken>()))
            .ReturnsAsync(result);

            //Act
            var actual = await controller.PostRegisterDemand(request) as ViewResult;

            //Assert
            Assert.IsNotNull(actual);
            actual.ViewName.Should().Be("RegisterDemand");
        }