def test_estoque_indisponivel(self): """ Cenário: Estoque Indisponível. Dado que o estoque da coca-cola é de 50 unidades Quando informo uma venda de 60 unidades Então a venda não é registrada E é exibida na tela a mensagem "estoque insuficiente!" """ # criando o produto cocacola = Produto(codigo=13, nome='Coca-cola', preco=5.20) # preparando o estoque estoque = Estoque() estoque.add_produto(produto=cocacola, quantidade=50) # preparando a venda venda = Venda() venda.add_item(produto=cocacola, qtd=60, estoque=estoque) # realiza a venda with pytest.raises(EstoqueInsuficienteError) as exception: venda.realizar() # asserções do teste assert venda.foi_registrada() == False assert "estoque insuficiente!" == str(exception.value)
def test_venda_cartao_indisp_valor_abaixo_vinte(self): """ Cenário: Venda com cartão indisponível para valores abaixo de 20,00. Dado que o valor da venda é de 10,00 E o valor mínimo de vendas para cartão é de 20,00 Quando informo que o meio de pagamento é cartão de crédito OU informo que o meio de pagamento é cartão de débito Então a venda não é registrada E é exibida na tela a mensagem "Meio de pagamento inválido! Para valores inferiores a 20 reais somente dinheiro." """ # criando o produto cocacola = Produto(codigo=13, nome='Coca-cola', preco=5.00) fanta = Produto(codigo=14, nome='Fanta', preco=5.00) # preparando o estoque estoque = Estoque() estoque.add_produto(produto=cocacola, quantidade=50) estoque.add_produto(produto=fanta, quantidade=40) # preparando a venda venda = Venda(lim_compra_cartao=20.00) venda.add_item(produto=cocacola, qtd=1, estoque=estoque) venda.add_item(produto=fanta, qtd=1, estoque=estoque) # meio de pagamento with pytest.raises(MeioPagamentoInvalidoError) as expt_credito: Pagamento(venda.calcular_total(), Pagamento.CARTAO_CREDITO) with pytest.raises(MeioPagamentoInvalidoError) as expt_debito: Pagamento(venda.calcular_total(), Pagamento.CARTAO_DEBITO) msg_esperada = 'Meio de pagamento inválido! Para valores inferiores a 20 reais somente dinheiro.' # asserções do teste assert venda.foi_registrada() is False assert venda.calcular_total() == 10 assert msg_esperada in (str(expt_credito.value) and str(expt_debito.value))
def test_estoque_disponivel(self): """ Cenário: Estoque disponível. Dado que o estoque da coca-cola é de 50 unidades Quando informo uma venda de 40 unidades Então a venda é registrada E o estoque passa a ser de 10 unidades """ # criando o produto cocacola = Produto(codigo=13, nome='Coca-cola', preco=5.20) # preparando o estoque estoque = Estoque() estoque.add_produto(produto=cocacola, quantidade=50) # preparando a venda venda = Venda() venda.add_item(produto=cocacola, qtd=40, estoque=estoque) # realiza a venda venda.realizar() # asserções do teste assert venda.foi_registrada() == True assert estoque.quantos(produto_codigo=13) == 10
def test_estoque_disponivel_venda_limitada_30(self): """ Cenário: Estoque disponível, venda limitada a 30. Dado que o estoque da coca-cola é de 50 unidades E a venda máxima por cliente é limitada a 30 unidades Quando informo uma venda de 20 unidades Então a venda é registrada E o estoque passa a ser de 30 unidades """ # criando o produto cocacola = Produto(codigo=13, nome='Coca-cola', preco=5.20) # preparando o estoque estoque = Estoque() estoque.add_produto(produto=cocacola, quantidade=50) # preparando a venda venda = Venda(lim_cliente=30) venda.add_item(produto=cocacola, qtd=20, estoque=estoque) # realiza a venda venda.realizar() assert venda.foi_registrada() == True assert estoque.quantos(produto_codigo=13) == 30