public async Task Quando_Cliente_Nao_Existe_Gravar_E_Retornar_Novo_Cliente() { //Arrange var cliente = new Cliente { Documento = "40671663895", Nome = "Carlos Eduardo", Senha = "123456", IdentificadorCliente = Guid.NewGuid() }; var clienteCommand = new CriarClienteCommand { Documento = "40671663895", Nome = "Carlos Eduardo", Senha = "123456", }; var cancellationToken = CancellationToken.None; var clienteRepositorioMock = new Mock <IClienteRepositorio>(MockBehavior.Strict); var mapperMock = new Mock <IMapper>(); mapperMock.Setup(x => x.Map <Cliente>(clienteCommand)).Returns(cliente); clienteRepositorioMock.Setup(x => x.ObterClientePorDocumentoAsync("40671663895", cancellationToken)).ReturnsAsync((Cliente)null); clienteRepositorioMock.Setup(x => x.CriarClienteAsync(cliente, cancellationToken)).ReturnsAsync(cliente); var handler = new CriarClienteCommandHandler(clienteRepositorioMock.Object, mapperMock.Object); // ACT var result = await handler.Handle(clienteCommand, cancellationToken); // Assert Assert.NotNull(result); Assert.Equal(cliente.Documento, result.Documento); Assert.Equal(cliente.Nome, result.Nome); Assert.IsType <CriarClienteCommandResult>(result); }
public async Task Quando_Cliente_Existe_Retornar_Erro() { //Arrange var clienteRepositorioMock = new Mock <IClienteRepositorio>(MockBehavior.Strict); var mapperMock = new Mock <IMapper>(); var cliente = new Cliente { Documento = "40671663895", Nome = "Carlos Eduardo", Senha = "123456", IdentificadorCliente = Guid.NewGuid() }; var cancellationToken = CancellationToken.None; clienteRepositorioMock.Setup(x => x.ObterClientePorDocumentoAsync(cliente.Documento, cancellationToken)) .ReturnsAsync(cliente); var handler = new CriarClienteCommandHandler(clienteRepositorioMock.Object, mapperMock.Object); // ACT var task = handler.Handle(new CriarClienteCommand { Documento = cliente.Documento, Senha = cliente.Senha, Nome = cliente.Nome }, cancellationToken); // Assert await Assert.ThrowsAsync <ClienteJaCadastradoException>(async() => await task); }