public async Task Handle_DeleteStatementCommand_Return_True() { //arrange var command = new DeleteStatementCommand() { Id = Guid.NewGuid() }; _mocker.GetMock<IStatementRepository>() .Setup(m => m.GetById(It.IsAny<Guid>())) .Returns(value: new Statement()) .Verifiable("IStatementRepository.GetById should have been called"); _mocker.GetMock<IStatementRepository>() .Setup(m => m.Delete(It.IsAny<Guid>())) .Verifiable("IStatementRepository.Update should have been called"); _mocker.GetMock<IMediatorHandler>() .Setup(m => m.RaiseEvent(It.IsAny<StatementDeletedEvent>())) .Verifiable("An event StatementDeletedEvent should have been raised"); //act var result = await _statementCommandHandler.Handle(command, CancellationToken.None); //assert _mocker.GetMock<IStatementRepository>().Verify(); _mocker.GetMock<IMediatorHandler>().Verify(); Assert.True(result); }
public async Task <bool> Handle(DeleteStatementCommand request, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (!request.IsValid()) { await _mediatorHandler.RaiseEvent( new DomainValidationEvent(request.ValidationResult.ToString())); return(false); } var oldStatement = _statementRepository.GetById(request.Id); if (oldStatement == null) { await _mediatorHandler.RaiseEvent(new NotFoundEvent(request.Id, "Statement", "Statement not found.")); return(false); } _statementRepository.Delete(request.Id); await _mediatorHandler.RaiseEvent(new StatementDeletedEvent() { Old = oldStatement }); return(true); }
public async Task <Response <bool> > Delete(string id) { if (!Guid.TryParse(id, out Guid guid)) { return(FailureResponse <bool>( new Error("Invalid Guid"), System.Net.HttpStatusCode.BadRequest)); } var command = new DeleteStatementCommand(); command.Id = guid; var result = await _mediatorHandler.SendCommand(command); if (result) { var deletedEvent = _eventStore.GetEvent <StatementDeletedEvent>(); return(SuccessfulResponse(true, deletedEvent)); } else { var validationEvent = _eventStore.GetEvent <DomainValidationEvent>(); return(FailureResponse <bool>(validationEvent)); } }
public DeleteStatementCommandTests() { _command = new DeleteStatementCommand(); _command.Id = Guid.NewGuid(); }