public async Task DeleteSpeechWithValidModelStateReturnOk() { //Arrange DeleteSpeechCommandMessage deleteSpeechCommandMessage = null; var moqDeleteSpeechUseCase = new Mock <IDeleteSpeechUseCase>(); moqDeleteSpeechUseCase.Setup(x => x.Handle(It.IsAny <DeleteSpeechCommandMessage>())) .Returns(Task.CompletedTask) .Callback <DeleteSpeechCommandMessage>(x => deleteSpeechCommandMessage = x); var speechForDeleteDto = new SpeechForDeleteDto { Id = Guid.NewGuid(), Version = 1 }; var sut = new SpeechController(It.IsAny <ICreateSpeechUseCase>(), It.IsAny <IUpdateSpeechUseCase>(), moqDeleteSpeechUseCase.Object); //Act IActionResult result = await sut.Delete(speechForDeleteDto); //Assert Assert.IsType <OkResult>(result); moqDeleteSpeechUseCase.Verify(x => x.Handle(It.IsAny <DeleteSpeechCommandMessage>()), Times.Once); Assert.Equal(speechForDeleteDto.Id, deleteSpeechCommandMessage.SpeechId); Assert.Equal(speechForDeleteDto.Version, deleteSpeechCommandMessage.OriginalVersion); }
public async Task <IActionResult> Delete([FromBody] SpeechForDeleteDto dto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var command = new DeleteSpeechCommandMessage(dto.Id, dto.Version); await _deleteSpeechUseCase.Handle(command); return(Ok()); }