def test_signale_qu_un_produit_est_manquant(self):
        produit_manquant = ProduitManquant(NOM_DE_PRODUIT_CONNU)

        self.produit_manquant_service.signale_manquant(NOM_DE_PRODUIT_CONNU)

        self.produit_manquant_repository.ajoute.assert_called_with(
            produit_manquant)
from il_manque_du_beurre.domaine.produit_manquant import ProduitManquant
from il_manque_du_beurre.infrastructure.produit_manquant.produit_manquant_sql_repository import \
    ProduitManquantSqlRepository

from test.integration.database.database_test_base_class import DatabaseTestBaseClass

PRODUIT_MANQUANT = ProduitManquant('beurre')


class TestProduitManquantSqlRepository(DatabaseTestBaseClass):
    def setup_method(self):
        super().setup_method()
        self.repository = ProduitManquantSqlRepository(self.data_store)

    def test_liste_des_produits_manquants_vide(self):
        produits_manquants = self.repository.liste_des_produits_manquants()

        assert produits_manquants == []

    def test_liste_des_produits_manquants_apres_avoir_signale_du_beurre(self):
        self.repository.ajoute(PRODUIT_MANQUANT)

        produits_manquants = self.repository.liste_des_produits_manquants()

        assert produits_manquants == [PRODUIT_MANQUANT]

    def test_signaler_un_produit_manquant_deux_fois_est_possible(self):
        self.repository.ajoute(PRODUIT_MANQUANT)
        self.repository.ajoute(PRODUIT_MANQUANT)

        produits_manquants = self.repository.liste_des_produits_manquants()
Esempio n. 3
0
def _deserialize_en_produits_manquants(rows):
    return [ProduitManquant(row.nom) for row in rows]
from unittest.mock import Mock

import pytest

from il_manque_du_beurre.domaine.produit_inconnu_exception import ProduitInconnuException
from il_manque_du_beurre.domaine.produit_manquant import ProduitManquant
from il_manque_du_beurre.domaine.produit_manquant_repository import ProduitManquantRepository
from il_manque_du_beurre.domaine.produit_manquant_service import ProduitManquantService

NOM_DE_PRODUIT_CONNU = 'beurre'
NOM_DE_PRODUIT_INCONNU = 'poivron bleu'
PRODUIT_MANQUANT = ProduitManquant(NOM_DE_PRODUIT_CONNU)


class TestProduitManquantService:
    def setup_method(self):
        self.produit_manquant_repository = Mock(ProduitManquantRepository)
        self.produit_manquant_repository.est_un_nom_de_produit_connu.return_value = True
        self.produit_manquant_service = ProduitManquantService(
            self.produit_manquant_repository)

    def test_signale_qu_un_produit_est_manquant(self):
        produit_manquant = ProduitManquant(NOM_DE_PRODUIT_CONNU)

        self.produit_manquant_service.signale_manquant(NOM_DE_PRODUIT_CONNU)

        self.produit_manquant_repository.ajoute.assert_called_with(
            produit_manquant)

    def test_renvoie_une_erreur_quand_le_produit_est_inconnu(self):
        self.produit_manquant_repository.est_un_nom_de_produit_connu.return_value = False
Esempio n. 5
0
 def signale_manquant(self, nom_de_produit_connu):
     self._valide_nom_de_produit(nom_de_produit_connu)
     produit_manquant = ProduitManquant(nom_de_produit_connu)
     self.repository.ajoute(produit_manquant)