public async Task ShouldFailToSetUncompletedTwice() { Guid profileId = Guid.NewGuid(); List <Goal> goals = new List <Goal> { new Goal(profileId, "Novo para teste", "Testando") }; goals.First().SetCompleted(DateTime.Now, "Completado para testes"); SetUncompletedGoalCommand command = new SetUncompletedGoalCommand { GoalId = goals.FirstOrDefault().Id }; GoalFakeRepository goalFakeRepository = new GoalFakeRepository(goals); GoalCommandHandler handler = new GoalCommandHandler( goalFakeRepository, GetIdentityService(profileId), GetMediator(), GetUnitOfWork(), GetLogger() ); CommandResult commandResult = await handler.Handle(command, default(CancellationToken)); Assert.IsTrue(commandResult.Success); Assert.IsFalse(goals.First().Status.IsCompleted); CommandResult commandResultTwo = await handler.Handle(command, default(CancellationToken)); Assert.IsFalse(commandResultTwo.Success); Assert.AreEqual("Esse objetivo já está marcado como incompleto.", commandResultTwo.Notifications.FirstOrDefault().Description); }
public async Task ShouldFailToSetGoalUncompletedIdNotFound() { Guid profileId = Guid.NewGuid(); List <Goal> goals = new List <Goal> { new Goal(profileId, "Novo para teste", "Testando") }; goals.First().SetCompleted(DateTime.Now, "Completado para testes"); SetUncompletedGoalCommand command = new SetUncompletedGoalCommand { GoalId = Guid.NewGuid() }; GoalFakeRepository goalFakeRepository = new GoalFakeRepository(goals); GoalCommandHandler handler = new GoalCommandHandler( goalFakeRepository, GetIdentityService(profileId), GetMediator(), GetUnitOfWork(), GetLogger() ); CommandResult commandResult = await handler.Handle(command, default(CancellationToken)); Assert.IsFalse(commandResult.Success); Assert.AreEqual("Falha ao buscar Objetivo no banco de dados.", commandResult.Notifications.FirstOrDefault().Description); }
public async Task <IActionResult> SetUncompletedAsync(Guid id) { SetUncompletedGoalCommand command = new SetUncompletedGoalCommand { GoalId = id }; return(await CreateCommandResponse(command)); }
public async Task <CommandResult> Handle(SetUncompletedGoalCommand request, CancellationToken cancellationToken) { Goal goal = await _goalRepository.GetByIdAsync(request.GoalId); if (!FoundValidGoal(goal)) { return(FailureDueToGoalNotFound()); } goal.SetUncompleted(); if (!goal.IsValid) { return(FailureDueToEntityStateInconsistency(goal)); } await _goalRepository.UpdateAsync(goal); return(await CommitAndPublishDefaultAsync()); }