public async Task ShouldFailToRemoveGoalUserNotOwner() { List <Goal> goals = new List <Goal> { new Goal(Guid.NewGuid(), "Novo para teste", "Testando") }; RemoveGoalCommand command = new RemoveGoalCommand { GoalId = goals.First().Id }; GoalFakeRepository goalFakeRepository = new GoalFakeRepository(goals); GoalCommandHandler handler = new GoalCommandHandler( goalFakeRepository, GetIdentityService(), 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 ShouldRemoveGoal() { Guid profileId = Guid.NewGuid(); List <Goal> goals = new List <Goal> { new Goal(profileId, "Novo para teste", "Testando") }; RemoveGoalCommand command = new RemoveGoalCommand { GoalId = goals.First().Id }; GoalFakeRepository goalFakeRepository = new GoalFakeRepository(goals); GoalCommandHandler handler = new GoalCommandHandler( goalFakeRepository, GetIdentityService(profileId), GetMediator(), GetUnitOfWork(), GetLogger() ); Assert.AreEqual(1, goalFakeRepository._goals.Count); CommandResult commandResult = await handler.Handle(command, default(CancellationToken)); Assert.IsTrue(commandResult.Success); Assert.AreEqual(0, goalFakeRepository._goals.Count); }
public async Task <IActionResult> RemoveAsync(Guid id) { RemoveGoalCommand command = new RemoveGoalCommand { GoalId = id }; return(await CreateCommandResponse(command)); }
public async Task <CommandResult> Handle(RemoveGoalCommand request, CancellationToken cancellationToken) { Goal goal = await _goalRepository.GetByIdAsync(request.GoalId); if (!FoundValidGoal(goal)) { return(FailureDueToGoalNotFound()); } await _goalRepository.RemoveAsync(goal); return(await CommitAndPublishDefaultAsync()); }
public async Task <bool> Handle(RemoveGoalCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(false); } _goalRepository.Remove(message.Id); if (await Commit()) { await Bus.RaiseEvent(new GoalRemovedEvent(message.Id)); } return(true); }
public async Task ShouldFailToRemoveGoalIdNotFound() { RemoveGoalCommand command = new RemoveGoalCommand { GoalId = Guid.NewGuid() }; GoalFakeRepository goalFakeRepository = new GoalFakeRepository(); GoalCommandHandler handler = new GoalCommandHandler( goalFakeRepository, GetIdentityService(), 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 void Remove(Guid id) { var removeCommand = new RemoveGoalCommand(id); Bus.SendCommand(removeCommand); }