Files
mylibrary/src/test/resources/features/commande.feature
2025-03-14 12:19:18 +01:00

72 lines
6.7 KiB
Gherkin

Feature: Gestion des commandes de livres
#1 = 1 pts de fidélité
#format AAAA-MM-JJ
Background:
Given le système contient les commandes suivantes :
| commandeId | clientId | livreId | quantite | montantTotal | pointsFideliteGagnes | modePaiement | rue | ville | codePostal | pays |
| cde12345-6789-abcd-ef01-234567890abc | 123e4567-e89b-12d3-a456-426614174000 | 9781234567890 | 1 | 20.50 | 21 | CB | 10 Rue Victor Hugo | Paris | 75001 | France |
| cde23456-7890-bcde-f012-345678901bcd | 456e7891-a23c-34d5-b678-526714174111 | 9785678901234 | 2 | 17.98 | 18 | PAYPAL | 22 Avenue de la Gare | Lyon | 69002 | France |
| cde34567-9012-cdef-1234-567890123def | 789e0123-b45d-56e7-c890-626814174222 | 9782253004201 | 1 | 9.90 | 10 | CB | 5 Rue Lafayette | Lille | 59000 | France |
And les livres suivants :
| isbn | titre | auteur | editeur | datePublication | prix | stockInitial | categories | description | langue |
| 9782253004201 | Les Fleurs du Mal | Charles Baudelaire | Garnier-Flammarion | 1857-06-25 | 9.90 | 15 | Poésie, Classique | Recueil de poèmes symbolistes | Français |
| 9781234567890 | L'Ombre du Vent | Carlos Ruiz Zafón | Actes Sud | 2001-04-01 | 20.50 | 10 | Roman, Drame | Un livre sur les souvenirs | Français |
| 9785678901234 | Le Petit Prince | Antoine de Saint-Exupéry | Folio | 1943-04-06 | 8.99 | 1 | Jeunesse, Philosophie | Un conte intemporel | Français |
And les clients suivants :
| prenom | nom | numeroTelephone | pointsFidelite |
| Marie | Dupont | 0612345678 | 100 |
| Jean | Martin | 0687654321 | 50 |
| Sophie | Dubois | 0698765432 | 0 |
Scenario: Passer une nouvelle commande
When un client passe une commande avec les informations suivantes :
| clientId | livreId | quantite | modePaiement | rue | ville | codePostal | pays |
| abc12345-def6-7890-gh12-ijk345678900 | 9782253004201 | 1 | CB | 21 Avenue Paul Eluard | Bobigny | 93000 | France |
Then une nouvelle commande est enregistrée avec les détails suivants :
| commandeId | montantTotal | pointsFideliteGagnes |
| cde45678-0123-def0-2345-678901234efg | 9.90 | 10 |
Scenario: Modifier une commande existante
When l'utilisateur modifie la commande avec l'ID "cde12345-6789-abcd-ef01-234567890abc" en mettant à jour les informations suivantes :
| quantite | modePaiement |
| 2 | POINTS_FIDELITE |
Then la commande avec l'ID "cde12345-6789-abcd-ef01-234567890abc" doit avoir les nouvelles informations suivantes :
| commandeId | clientId | livreId | quantite | montantTotal | pointsFideliteGagnes | modePaiement | rue | ville | codePostal | pays |
| cde12345-6789-abcd-ef01-234567890abc | 123e4567-e89b-12d3-a456-426614174000 | 9781234567890 | 2 | 41.00 | 41 | POINTS_FIDELITE | 10 Rue Victor Hugo | Paris | 75001 | France |
Scenario: Supprimer une commande
When l'utilisateur supprime la commande avec l'ID "cde23456-7890-bcde-f012-345678901bcd"
Then la commande avec l'ID "cde23456-7890-bcde-f012-345678901bcd" ne doit plus exister dans le système
And la liste des commandes doit être mise à jour comme suit :
| commandeId | clientId | livreId | quantite | montantTotal | pointsFideliteGagnes | modePaiement | rue | ville | codePostal | pays |
| cde12345-6789-abcd-ef01-234567890abc | 123e4567-e89b-12d3-a456-426614174000 | 9781234567890 | 1 | 20.50 | 21 | CB | 10 Rue Victor Hugo | Paris | 75001 | France |
| cde34567-9012-cdef-1234-567890123def | 789e0123-b45d-56e7-c890-626814174222 | 9782253004201 | 1 | 9.90 | 10 | CB | 5 Rue Lafayette | Lille | 59000 | France |
| cde45678-0123-def0-2345-678901234efg | abc12345-def6-7890-gh12-ijk345678900 | 9782253004201 | 1 | 9.90 | 10 | CB | 21 Avenue Paul Eluard | Bobigny | 93000 | France |
#Demander a Maxime : comment faire en sorte de faire le paiement? on regarde les infos du client avec l'uuid ou le num?
Scenario: Tentative de paiement avec des points de fidélité insuffisants
When le client "456e7891-a23c-34d5-b678-526714174111" tente de passer une commande avec les informations suivantes :
| livreId | quantite | modePaiement | rue | ville | codePostal | pays |
| 9782253004201 | 1 | POINTS_FIDELITE | 30 Boulevard Haussmann | Paris | 75009 | France |
Then le paiement échoue
And je reçois un message d'erreur indiquant "Impossible d'utiliser 200 points alors que le solde est de 50 point"
And le client "456e7891-a23c-34d5-b678-526714174111" possède toujours 50 point de fidélité
Scenario: Tentative de paiement avec un moyen de paiement invalide
When le client "123e4567-e89b-12d3-a456-426614174000" tente de passer une commande avec les informations suivantes :
| livreId | quantite | modePaiement | rue | ville | codePostal | pays |
| 9782253004201 | 1 | CRYPTO | 12 Rue des Lilas | Nantes | 44000 | France |
Then le paiement échoue
And je reçois un message d'erreur indiquant "Mode de paiement invalide : CRYPTO n'est pas accepté"
And aucune nouvelle commande n'est enregistrée
Scenario: Tentative de commande avec un stock insuffisant
Given le livre avec l'ISBN "9785678901234" n'a que 1 exemplaire en stock
When le client "456e7891-a23c-34d5-b678-526714174111" tente de passer une commande avec les informations suivantes :
| livreId | quantite | modePaiement | rue | ville | codePostal | pays |
| 9785678901234 | 2 | CB | 18 Place du Capitole | Toulouse | 31000 | France |
Then la commande échoue
And je reçois un message d'erreur indiquant "Stock insuffisant : seulement 1 exemplaire disponible"
And aucune nouvelle commande n'est enregistrée