public async Task RegisterActivitySendsActivitySignupCommandAsyncWithCorrectData() { var model = new ActivitySignupViewModel(); var mediator = new Mock <IMediator>(); var sut = new ActivityApiController(mediator.Object); await sut.RegisterActivity(model); mediator.Verify(x => x.SendAsync(It.Is <ActivitySignupCommand>(command => command.ActivitySignup.Equals(model)))); }
public async Task RegisterTaskSendsTaskSignupCommandWithCorrectTaskSignupModel() { var model = new ActivitySignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult())); var sut = new TaskApiController(null, mediator.Object, null); await sut.RegisterTask(model); mediator.Verify(x => x.SendAsync(It.Is <TaskSignupCommand>(command => command.TaskSignupModel.Equals(model)))); }
public async Task RegisterTaskReturnsNullForTaskIfTaskIsNull() { var model = new ActivitySignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult())); var sut = new TaskApiController(null, mediator.Object, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var result = jsonResult.GetValueForProperty <string>("Task"); Assert.Null(result); }
public async Task <IActionResult> Signup(ActivitySignupViewModel signupModel) { if (signupModel == null) { return(HttpBadRequest()); } if (ModelState.IsValid) { await _mediator.SendAsync(new ActivitySignupCommand { ActivitySignup = signupModel }); } //TODO: handle invalid activity signup info (phone, email) in a useful way // would be best to handle it in KO on the client side (prevent clicking Volunteer) return(RedirectToAction(nameof(ShowActivity), new { id = signupModel.ActivityId })); }
public async Task RegisterTaskReturnsCorrectValueForStatus() { const string taskSignUpResultStatus = "status"; var model = new ActivitySignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult { Status = taskSignUpResultStatus })); var sut = new TaskApiController(null, mediator.Object, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var result = jsonResult.GetValueForProperty <string>("Status"); Assert.Equal(result, taskSignUpResultStatus); }
public async Task <ActionResult> RegisterTask(ActivitySignupViewModel signupModel) { if (signupModel == null) { return(HttpBadRequest()); } 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 TaskSignupCommand { TaskSignupModel = signupModel }); return(Json(new { result.Status, Task = result.Task == null ? null : new TaskViewModel(result.Task, signupModel.UserId) })); }
public async Task <object> RegisterActivity(ActivitySignupViewModel signupModel) { if (signupModel == null) { return(HttpBadRequest()); } 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() })); } await _mediator.SendAsync(new ActivitySignupCommand { ActivitySignup = signupModel }); return(new { Status = "success" }); }
public async Task RegisterTaskReturnsTaskViewModelIfTaskIsNotNull() { var model = new ActivitySignupViewModel { UserId = "userId" }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult { Task = new AllReadyTask() })); var sut = new TaskApiController(null, mediator.Object, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var result = jsonResult.GetValueForProperty <TaskViewModel>("Task"); Assert.IsType <JsonResult>(jsonResult); Assert.IsType <TaskViewModel>(result); }