public void AdicionaItemPedidoCommand_CommandoEstaValido_DevePassarNaValidacao() { // Arrange var pedidoCommand = new AdicionaItemPedidoCommand(Guid.NewGuid(), Guid.NewGuid(), "Produto teste", 2, 100); // Act var result = pedidoCommand.EhValido(); // Assert Assert.True(result); }
public async Task AdicionarItem_CommandInvalido_DeveRetornarFalsoELancarEventosDeNotificacao() { // Arrange var pedidoCommand = new AdicionaItemPedidoCommand(Guid.Empty, Guid.Empty, "", 0, 0); // Act var result = await _pedidoHandle.Handle(pedidoCommand, CancellationToken.None); // Assert Assert.False(result); _mocker.GetMock <IMediator>().Verify(x => x.Publish(It.IsAny <INotification>(), CancellationToken.None), Times.Exactly(5)); }
public void AdicionaItemPedidoCommand_QuantidadeUnidadesSuperiorAoPermitido_NaoDevePassarNaValidacao() { // Arrange var pedidoCommand = new AdicionaItemPedidoCommand(Guid.NewGuid(), Guid.NewGuid(), "Produto teste", Pedido.MAX_UNIDADES_ITEM + 1, 100); // Act var result = pedidoCommand.EhValido(); // Assert Assert.False(result); Assert.Contains(AdicionarItemPedidoValidation.QtdMaxErroMsg, pedidoCommand.ValidationResult.Errors.Select(c => c.ErrorMessage)); }
public async Task AdicionarItem_NovoPedido_DeveExecutarComSucesso() { // Arrange var pedidoCommand = new AdicionaItemPedidoCommand(Guid.NewGuid(), Guid.NewGuid(), "Produto teste", 2, 100); _mocker.GetMock <IPedidoRepository>().Setup(r => r.UnitOfWork.Commit()).Returns(Task.FromResult(true)); // Act var result = await _pedidoHandle.Handle(pedidoCommand, CancellationToken.None); // Assert Assert.True(result); _mocker.GetMock <IPedidoRepository>().Verify(x => x.Adicionar(It.IsAny <Pedido>()), Times.Once); _mocker.GetMock <IPedidoRepository>().Verify(x => x.UnitOfWork.Commit(), Times.Once); }
public void AdicionaItemPedidoCommand_CommandoEstaInvalido_NaoDevePassarNaValidacao() { // Arrange var pedidoCommand = new AdicionaItemPedidoCommand(Guid.Empty, Guid.Empty, "", 0, 0); // Act var result = pedidoCommand.EhValido(); // Assert Assert.False(result); Assert.Contains(AdicionarItemPedidoValidation.IdClienteErroMsg, pedidoCommand.ValidationResult.Errors.Select(c => c.ErrorMessage)); Assert.Contains(AdicionarItemPedidoValidation.IdProdutoErroMsg, pedidoCommand.ValidationResult.Errors.Select(c => c.ErrorMessage)); Assert.Contains(AdicionarItemPedidoValidation.NomeErroMsg, pedidoCommand.ValidationResult.Errors.Select(c => c.ErrorMessage)); Assert.Contains(AdicionarItemPedidoValidation.QtdMinErroMsg, pedidoCommand.ValidationResult.Errors.Select(c => c.ErrorMessage)); Assert.Contains(AdicionarItemPedidoValidation.ValorErroMsg, pedidoCommand.ValidationResult.Errors.Select(c => c.ErrorMessage)); }
public async Task AdicionarItem_ItemExistenteAoPedidoRascunho_DeveExecutarComSucesso() { // Arrange var pedidoItemExistente = new PedidoItem(_produtoId, "Produto Xpto", 2, 100); _pedido.AdicionarItem(pedidoItemExistente); var pedidoCommand = new AdicionaItemPedidoCommand(_clienteId, _produtoId, "Produto Xpto", 2, 100); _mocker.GetMock <IPedidoRepository>().Setup(r => r.UnitOfWork.Commit()).Returns(Task.FromResult(true)); _mocker.GetMock <IPedidoRepository>().Setup(r => r.ObterPedidoRascunhoPorCliente(_clienteId)).Returns(Task.FromResult(_pedido)); // Act var result = await _pedidoHandle.Handle(pedidoCommand, CancellationToken.None); // Assert Assert.True(result); _mocker.GetMock <IPedidoRepository>().Verify(x => x.AtualizarItem(It.IsAny <PedidoItem>()), Times.Once); _mocker.GetMock <IPedidoRepository>().Verify(x => x.Atualizar(It.IsAny <Pedido>()), Times.Once); _mocker.GetMock <IPedidoRepository>().Verify(x => x.UnitOfWork.Commit(), Times.Once); }