public void Deve_Notificar_Erro_Quando_Nao_Informar_Itens_Compra() { //Dado var solicitacao = new SolicitacaoCompra("rodrigoasth", "rodrigoasth"); //Quando var ex = Assert.Throws <BusinessRuleException>(() => solicitacao.RegistrarCompra()); //Então Assert.Equal("A solicitação de compra deve possuir itens!", ex.Message); }
public void Deve_Definir_Prazo_30_Dias_Ao_Comprar_Mais_50_mil() { //Dado var solicitacao = new SolicitacaoCompra("rodrigoasth", "rodrigoasth"); var produto = new Produto("Cedro", "Transversal 3/3", Categoria.Madeira.ToString(), 1001); solicitacao.AdicionarItem(produto, 50); //Quando solicitacao.RegistrarCompra(); //Então Assert.Equal(30, solicitacao.CondicaoPagamento.Valor); }
public Task <bool> Handle(RegistrarCompraCommand command, CancellationToken cancellationToken) { var solicitacao = new SolicitacaoCompra(command.UsuarioSolicitante, command.NomeFornecedor); command.Itens.ToList().ForEach(x => { var produto = _produtoRepository.Obter(x.IdProduto); solicitacao.AdicionarItem(produto, x.Qtde); }); solicitacao.RegistrarCompra(); _solicitacaoCompraRepository.RegistrarCompra(solicitacao); Commit(); PublishEvents(solicitacao.Events); return(Task.FromResult(true)); }