def setUp(self): self.commandes = mock() self.fabrique = mock() self.service = ServiceCommande(self.commandes, self.fabrique) self.devis = mock() self.date = mock() self.createur = mock() self.commande = mock() when(self.fabrique).nouvelle_commande(self.createur, self.date, self.devis).thenReturn(self.commande) when(self.commande).devis().thenReturn(self.devis) when(self.commande).date().thenReturn(self.date) when(self.commande).createur().thenReturn(self.createur)
class TestJaneCreeUneCommandePourUnDevisValideEtUneDateDInterventionCorrecte(unittest.TestCase): def setUp(self): self.commandes = mock() self.fabrique = mock() self.service = ServiceCommande(self.commandes, self.fabrique) self.devis = mock() self.date = mock() self.createur = mock() self.commande = mock() when(self.fabrique).nouvelle_commande(self.createur, self.date, self.devis).thenReturn(self.commande) when(self.commande).devis().thenReturn(self.devis) when(self.commande).date().thenReturn(self.date) when(self.commande).createur().thenReturn(self.createur) def test_Jane_cree_une_commande_pour_un_devis_valide_et_une_date_d_intervention_correcte_ajoute_la_commande(self): """Test l'ajout d'une commande valide par Jane""" """ given : un devis valide, une date d'intervention valide, un utilisateur autorise when : ajoute le devis avec la date d'intervention dans une commande then : la commande est cree et ajoutee a la liste des commandes """ when(self.devis).expire().thenReturn(False) when(self.date).expire().thenReturn(False) when(self.createur).peut_creer_commandes().thenReturn(True) self.service.ajouter_commande(self.createur, self.date, self.devis) verify(self.commandes).append(self.commande) def test_Jane_cree_une_commande_pour_un_devis_invalide_et_une_date_d_intervention_correcte_leve_une_exception(self): """Test l'ajout d'une commande avec un devis invalide. Une exception est alors levee""" """ given : un devis invalide, une date d'intervention valide, un utilisateur autorise when : ajoute le devis avec la date d'intervention dans une commande then : une exception est leve car le devis est invalide (DevisInvalide) """ when(self.devis).expire().thenReturn(True) when(self.date).expire().thenReturn(False) when(self.createur).peut_creer_commandes().thenReturn(True) self.assertRaises(DevisInvalide, self.service.ajouter_commande, self.createur, self.date, self.devis) def test_Jane_cree_une_commande_pour_un_devis_invalide_et_une_date_d_intervention_correcte_n_ajoute_pas(self): """Test l'ajout d'une commande avec un devis invalide. L'ajout n'a alors pas lieu""" """ given : un devis invalide, une date d'intervention valide, un utilisateur autorise when : ajoute le devis avec la date d'intervention dans une commande then : la commande n'est pas ajoutee a la liste des commandes """ when(self.devis).expire().thenReturn(True) when(self.date).expire().thenReturn(False) when(self.createur).peut_creer_commandes().thenReturn(True) try: self.service.ajouter_commande(self.createur, self.date, self.devis) except(DevisInvalide): pass verify(self.commandes, never).append(self.commande) def test_Jane_cree_une_commande_pour_un_devis_valide_et_une_date_d_intervention_incorrecte_leve_une_exception(self): """Test l'ajout d'une commande avec une date invalide. Une exception est levee""" """ given : un devis valide, une date d'intervention invalide, un utilisateur autorise when : ajoute le devis avec la date d'intervention dans une commande then : une exception est levee car la date est invalide (DateInterventionInvalide) """ when(self.devis).expire().thenReturn(False) when(self.date).expire().thenReturn(True) when(self.createur).peut_creer_commandes().thenReturn(True) self.assertRaises(DateInterventionInvalide, self.service.ajouter_commande, self.createur, self.date, self.devis) def test_Jane_cree_une_commande_pour_un_devis_valide_et_une_date_d_intervention_incorrecte_n_ajoute_pas(self): """Test l'ajout d'une commande avec une date invalide. L'ajout n'a alors pas lieu""" """ given : un devis valide, une date d'intervention invalide, un utilisateur autorise when : ajoute le devis avec la date d'intervention dans une commande then : la commande n'est pas ajoutee a la liste des commandes """ when(self.devis).expire().thenReturn(False) when(self.date).expire().thenReturn(True) when(self.createur).peut_creer_commandes().thenReturn(True) try: self.service.ajouter_commande(self.createur, self.date, self.devis) except(DateInterventionInvalide): pass verify(self.commandes, never).append(self.commande) def test_Jane_cree_une_commande_mais_n_a_pas_le_droit_leve_une_exception(self): """Test Jane ajoute une commande, mais n'a pas le droit. Une exception est levee""" """ given : un devis valide, une date d'intervention valide, un utilisateur non autorise when : ajoute le devis avec la date d'intervention dans une commande then : une exception est levee car l'utilisateur n'a pas les droits de creation de commandes (UtilisateurNonAutorise) """ when(self.devis).expire().thenReturn(False) when(self.date).expire().thenReturn(False) when(self.createur).peut_creer_commandes().thenReturn(False) self.assertRaises(UtilisateurNonAutorise, self.service.ajouter_commande, self.createur, self.date, self.devis) def test_Jane_cree_une_commande_mais_n_a_pas_le_droit_n_ajoute_pas(self): """Test Jane ajoute une commande, mais n'a pas le droit. L'ajout n'a alors pas lieu""" """ given : un devis valide, une date d'intervention valide, un utilisateur non autorise when : ajoute le devis avec la date d'intervention dans une commande then : la commande n'est pas ajoutee a la liste des commandes """ when(self.devis).expire().thenReturn(False) when(self.date).expire().thenReturn(False) when(self.createur).peut_creer_commandes().thenReturn(False) try: self.service.ajouter_commande(self.createur, self.date, self.devis) except(UtilisateurNonAutorise): pass verify(self.commandes, never).append(self.commande)