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_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