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); }
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 void Then_The_Dictionary_Is_Built_And_Ordered() { //Act var propertyOrderedDictionary = RegisterDemandRequest.BuildPropertyOrderDictionary(); //Assert propertyOrderedDictionary.Should().BeAssignableTo <Dictionary <string, int> >(); propertyOrderedDictionary.Count.Should().Be(typeof(RegisterDemandRequest).Properties().Count()); }
private async Task <RegisterCourseDemandViewModel> BuildRegisterCourseDemandViewModelFromPostRequest( RegisterDemandRequest request) { var model = (RegisterCourseDemandViewModel)request; var result = await _mediator.Send(new GetCreateCourseDemandQuery { TrainingCourseId = request.TrainingCourseId }); model.TrainingCourse = result.CourseDemand.Course; return(model); }
public async Task <IActionResult> PostRegisterDemand(RegisterDemandRequest request) { try { if (request.NumberOfApprenticesKnown.HasValue && !request.NumberOfApprenticesKnown.Value) { request.NumberOfApprentices = string.Empty; } var createResult = await _mediator.Send(new CreateCachedCourseDemandCommand { Id = !request.CreateDemandId.HasValue || request.CreateDemandId == Guid.Empty ? Guid.NewGuid() : request.CreateDemandId.Value, Location = request.Location, OrganisationName = request.OrganisationName, ContactEmailAddress = request.ContactEmailAddress, NumberOfApprentices = request.NumberOfApprentices, TrainingCourseId = request.TrainingCourseId, NumberOfApprenticesKnown = request.NumberOfApprenticesKnown }); return(RedirectToRoute(RouteNames.ConfirmRegisterDemand, new { createDemandId = createResult.Id, Id = request.TrainingCourseId })); } catch (ValidationException e) { foreach (var member in e.ValidationResult.MemberNames) { ModelState.AddModelError(member.Split('|')[0], member.Split('|')[1]); } var model = await BuildRegisterCourseDemandViewModelFromPostRequest(request); return(View("RegisterDemand", model)); } }
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"); }
public void Then_The_Fields_Are_Correctly_Mapped(RegisterDemandRequest source) { var actual = (RegisterCourseDemandViewModel)source; actual.Should().BeEquivalentTo(source, options => options.Excluding(c => c.TrainingCourseId)); }