Beispiel #1
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);
        }
Beispiel #2
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);
        }
Beispiel #3
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");
        }