public async Task VolunteerCannotCompleteTaskFromAcceptedStatus() { var taskSignup = Context.TaskSignups.First(); taskSignup.Status = TaskStatus.Accepted; await Context.SaveChangesAsync(); var @task = Context.Tasks.First(); var user = Context.Users.First(); var command = new ChangeTaskStatusCommand { TaskId = @task.Id, UserId = user.Id, TaskStatus = TaskStatus.CanNotComplete, TaskStatusDescription = $"{user.UserName} cannot complete {@task.Name}" }; await commandHandler.Handle(command); taskSignup = Context.TaskSignups.First(); mediator.Verify(b => b.PublishAsync(It.Is <TaskSignupStatusChanged>(notifyCommand => notifyCommand.SignupId == taskSignup.Id)), Times.Once()); taskSignup.Status.ShouldBe(command.TaskStatus); taskSignup.User.Id.ShouldBe(command.UserId); taskSignup.Task.Id.ShouldBe(command.TaskId); taskSignup.StatusDescription.ShouldBe(command.TaskStatusDescription); }
public void Handle() { var handler = new ChangeTaskStatusCommandHandler(_db); ChangeTaskStatusCommand fixtureCommand = _fixture.Create <ChangeTaskStatusCommand>(); handler.Handle(fixtureCommand); }
public void Handle() { ICommandHandler <ChangeTaskStatusCommand> handler = new ChangeTaskStatusCommandHandler(_db); IValidator <ChangeTaskStatusCommand> validator = new ChangeTaskStatusCommandValidator(_db); var decorator = new ValidationCommandHandlerDecorator <ChangeTaskStatusCommand>( handler, validator); ChangeTaskStatusCommand fixtureCommand = _fixture.Create <ChangeTaskStatusCommand>(); decorator.Handle(fixtureCommand); }
static void Main(string[] args) { DataBaseInitializer <TaskContext> .InitializedDatabase(); IContainer container = new SimpleIocContainer(); BootStrapper.Configure(container); ICommandDispatcher commandDispatcher = container.Resolve <ICommandDispatcher>(); IQueryDispatcher queryDispatcher = container.Resolve <IQueryDispatcher>(); var createCommand = new CreateTaskCommand { Title = "CQRS Örneği", UserName = "******", IsCompleted = false, CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now }; commandDispatcher.Execute(createCommand); var getTasksQuery = new GetTasksQuery(); getTasksQuery.Predicate = (t) => t.IsCompleted == false; IQueryable <Task> tasks = queryDispatcher.Query <GetTasksQuery, IQueryable <Task> >(getTasksQuery); Console.WriteLine("Bitmemiş tasklar getiriliyor."); foreach (var task in tasks.ToList()) { Console.WriteLine(task); } var lastTask = tasks.ToList().LastOrDefault(); var changeCommand = new ChangeTaskStatusCommand { TaskId = 24, IsCompleted = true, UpdatedOn = DateTime.Now.AddMinutes(5) }; commandDispatcher.Execute(changeCommand); Console.ReadLine(); }
public async Task VolunteerAcceptsTask() { var mediator = new Mock <IMediator>(); var @task = Context.Tasks.First(); var user = Context.Users.First(); var command = new ChangeTaskStatusCommand { TaskId = @task.Id, UserId = user.Id, TaskStatus = AllReady.Areas.Admin.Features.Tasks.TaskStatus.Accepted }; var handler = new ChangeTaskStatusCommandHandler(Context, mediator.Object); await handler.Handle(command); var taskSignup = Context.TaskSignups.First(); mediator.Verify(b => b.PublishAsync(It.Is <TaskSignupStatusChanged>(notifyCommand => notifyCommand.SignupId == taskSignup.Id)), Times.Once()); }
public async Task VolunteerRejectsTask() { var @task = Context.Tasks.First(); var user = Context.Users.First(); var command = new ChangeTaskStatusCommand { TaskId = @task.Id, UserId = user.Id, TaskStatus = TaskStatus.Rejected, TaskStatusDescription = $"{user.UserName} rejected task {@task.Name}" }; await commandHandler.Handle(command); var taskSignup = Context.TaskSignups.First(); mediator.Verify(b => b.PublishAsync(It.Is <TaskSignupStatusChanged>(notifiyCommand => notifiyCommand.SignupId == taskSignup.Id)), Times.Once()); taskSignup.Status.ShouldBe(command.TaskStatus); taskSignup.Task.Id.ShouldBe(command.TaskId); taskSignup.User.Id.ShouldBe(command.UserId); taskSignup.StatusDescription.ShouldBe(command.TaskStatusDescription); }
public async Task VolunteerCompletesTaskFromAssignedStatus() { var @task = Context.Tasks.First(); var user = Context.Users.First(); var command = new ChangeTaskStatusCommand { TaskId = @task.Id, UserId = user.Id, TaskStatus = TaskStatus.Completed, TaskStatusDescription = $"{user.UserName} completed task {@task.Name}" }; await commandHandler.Handle(command); var taskSignup = Context.TaskSignups.First(); mediator.Verify(b => b.PublishAsync(It.Is <TaskSignupStatusChanged>(notifyCommand => notifyCommand.SignupId == taskSignup.Id)), Times.Once()); taskSignup.Status.ShouldBe(command.TaskStatus.ToString()); taskSignup.Task.Id.ShouldBe(command.TaskId); taskSignup.User.Id.ShouldBe(command.UserId); taskSignup.StatusDescription.ShouldBe(command.TaskStatusDescription); taskSignup.StatusDateTimeUtc.ShouldBe(dateTimeUtcNow); }