public async Task Register_ReturnsCorrectJson_WhenTaskIsClosed() { const TaskResultStatus volunteerTaskSignUpResultStatus = TaskResultStatus.Failure_ClosedTask; var model = new VolunteerTaskSignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model))) .ReturnsAsync(new VolunteerTaskSignupResult { Status = volunteerTaskSignUpResultStatus }); var sut = new TaskApiController(mediator.Object, null, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var successStatus = jsonResult.GetValueForProperty <bool>("isSuccess"); var errors = jsonResult.GetValueForProperty <string[]>("errors"); Assert.False(successStatus); Assert.NotNull(errors); Assert.Single(errors); Assert.Equal("Signup failed - Task is closed", errors[0]); }
public async Task Register_ReturnsCorrectJson_WhenApiResult_IsSuccess() { const TaskResultStatus volunteerTaskSignUpResultStatus = TaskResultStatus.Success; var model = new VolunteerTaskSignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model))) .ReturnsAsync(new VolunteerTaskSignupResult { Status = volunteerTaskSignUpResultStatus, VolunteerTask = new VolunteerTask { Id = 1, Name = "Task" } }); var sut = new TaskApiController(mediator.Object, null, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var successStatus = jsonResult.GetValueForProperty <bool>("isSuccess"); var volunteerTaskModel = jsonResult.GetValueForProperty <VolunteerTaskViewModel>("task"); Assert.True(successStatus); Assert.NotNull(volunteerTaskModel); }
public async Task Register_ReturnsCorrectJson_WhenTaskNotFound() { const string volunteerTaskSignUpResultStatus = VolunteerTaskSignupResult.FAILURE_TASKNOTFOUND; var model = new VolunteerTaskSignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model))) .ReturnsAsync(new VolunteerTaskSignupResult { Status = volunteerTaskSignUpResultStatus }); var sut = new TaskApiController(mediator.Object, null, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var successStatus = jsonResult.GetValueForProperty <bool>("isSuccess"); var errors = jsonResult.GetValueForProperty <string[]>("errors"); Assert.False(successStatus); Assert.NotNull(errors); Assert.Equal(1, errors.Count()); Assert.Equal("Signup failed - The task could not be found", errors[0]); }
public async Task <ActionResult> RegisterTask(VolunteerTaskSignupViewModel signupModel) { if (signupModel == null) { return(BadRequest()); } if (!ModelState.IsValid) { // this condition should never be hit because client side validation is being performed // but just to cover the bases, if this does happen send the erros to the client return(Json(new { errors = ModelState.GetErrorMessages() })); } var result = await _mediator.SendAsync(new VolunteerTaskSignupCommand { TaskSignupModel = signupModel }); switch (result.Status) { case TaskResultStatus.Success: return(Json(new { isSuccess = true, task = result.VolunteerTask == null ? null : new VolunteerTaskViewModel(result.VolunteerTask, signupModel.UserId) })); case TaskResultStatus.Failure_ClosedTask: return(Json(new { isSuccess = false, errors = new[] { "Signup failed - Task is closed" }, })); case TaskResultStatus.Failure_EventNotFound: return(Json(new { isSuccess = false, errors = new[] { "Signup failed - The event could not be found" }, })); case TaskResultStatus.Failure_TaskNotFound: return(Json(new { isSuccess = false, errors = new[] { "Signup failed - The task could not be found" }, })); default: return(Json(new { isSuccess = false, errors = new[] { "Unkown error" }, })); } }
public void SetTaskIdAndTaskName_WhenTaskSignupsTaskIsNotNull() { var volunteerTaskSignup = new VolunteerTaskSignup { VolunteerTask = new VolunteerTask { Id = 1, Name = "TaskName" } }; var sut = new VolunteerTaskSignupViewModel(volunteerTaskSignup); Assert.Equal(sut.VolunteerTaskId, volunteerTaskSignup.VolunteerTask.Id); Assert.Equal(sut.VolunteerTaskName, volunteerTaskSignup.VolunteerTask.Name); }
public void SetUserIdAndUserName_WhenTaskSignupsUserIsNotNull() { var volunteerTaskSignup = new VolunteerTaskSignup { User = new ApplicationUser { Id = "1", UserName = "******" } }; var sut = new VolunteerTaskSignupViewModel(volunteerTaskSignup); Assert.Equal(sut.UserId, volunteerTaskSignup.User.Id); Assert.Equal(sut.UserName, volunteerTaskSignup.User.UserName); }
public async Task RegisterTaskSendsTaskSignupCommandWithCorrectTaskSignupModel() { var model = new VolunteerTaskSignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model))).ReturnsAsync(new VolunteerTaskSignupResult()); var sut = new TaskApiController(mediator.Object, null, null); await sut.RegisterTask(model); mediator.Verify(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(command => command.TaskSignupModel.Equals(model)))); }