public async Task VolunteerCannotCompleteTaskFromAcceptedStatus() { var volunteerTaskSignup = Context.VolunteerTaskSignups.First(); volunteerTaskSignup.Status = VolunteerTaskStatus.Accepted; await Context.SaveChangesAsync(); var volunteerTask = Context.VolunteerTasks.First(); var user = Context.Users.First(); var command = new ChangeVolunteerTaskStatusCommand { VolunteerTaskId = volunteerTask.Id, UserId = user.Id, VolunteerTaskStatus = VolunteerTaskStatus.CanNotComplete, VolunteerTaskStatusDescription = $"{user.UserName} cannot complete {volunteerTask.Name}" }; await commandHandler.Handle(command); volunteerTaskSignup = Context.VolunteerTaskSignups.First(); mediator.Verify(b => b.PublishAsync(It.Is <VolunteerTaskSignupStatusChanged>(notifyCommand => notifyCommand.SignupId == volunteerTaskSignup.Id)), Times.Once()); volunteerTaskSignup.Status.ShouldBe(command.VolunteerTaskStatus); volunteerTaskSignup.User.Id.ShouldBe(command.UserId); volunteerTaskSignup.VolunteerTask.Id.ShouldBe(command.VolunteerTaskId); volunteerTaskSignup.StatusDescription.ShouldBe(command.VolunteerTaskStatusDescription); }
public async Task VolunteerAcceptsTask() { var mediator = new Mock <IMediator>(); var volunteerTask = Context.VolunteerTasks.First(); var user = Context.Users.First(); var command = new ChangeVolunteerTaskStatusCommand { VolunteerTaskId = volunteerTask.Id, UserId = user.Id, VolunteerTaskStatus = VolunteerTaskStatus.Accepted }; var handler = new ChangeVolunteerTaskStatusCommandHandler(Context, mediator.Object); await handler.Handle(command); var volunteerTaskSignup = Context.VolunteerTaskSignups.First(); mediator.Verify(b => b.PublishAsync(It.Is <VolunteerTaskSignupStatusChanged>(notifyCommand => notifyCommand.SignupId == volunteerTaskSignup.Id)), Times.Once()); }
public async Task VolunteerRejectsTask() { var volunteerTask = Context.VolunteerTasks.First(); var user = Context.Users.First(); var command = new ChangeVolunteerTaskStatusCommand { VolunteerTaskId = volunteerTask.Id, UserId = user.Id, VolunteerTaskStatus = VolunteerTaskStatus.Rejected, VolunteerTaskStatusDescription = $"{user.UserName} rejected task {volunteerTask.Name}" }; await commandHandler.Handle(command); var volunteerTaskSignup = Context.VolunteerTaskSignups.First(); mediator.Verify(b => b.PublishAsync(It.Is <VolunteerTaskSignupStatusChanged>(notifiyCommand => notifiyCommand.SignupId == volunteerTaskSignup.Id)), Times.Once()); volunteerTaskSignup.Status.ShouldBe(command.VolunteerTaskStatus); volunteerTaskSignup.VolunteerTask.Id.ShouldBe(command.VolunteerTaskId); volunteerTaskSignup.User.Id.ShouldBe(command.UserId); volunteerTaskSignup.StatusDescription.ShouldBe(command.VolunteerTaskStatusDescription); }