Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 12 · Exercice de TD
Un prix qui change
Projet : l'API de la Librairie · niveau 2
Énoncé
L'administrateur change le prix de Programmation Java après une commande. Le montant de cette commande doit-il changer ? Le vérifier par un test, et dire quelle décision du chapitre 6 le garantit.
Corrigé
Non : le client a accepté un prix, la commande est un engagement à ce prix. La ligne de commande garde le prix au moment de la vente (prixUnitaire, copié du livre à la création de la ligne, chapitre 6), et le total est enregistré avec la commande.
@Test
void unChangementDePrixNeModifiePasLesCommandesPassees() throws Exception {
long numero = commander("9782956300014", 1); // Programmation Java, 32,00 €
assertThat(mvc.put().uri("/api/livres/9782956300014").header("Authorization", "Basic YWRtaW46bGlicmFpcmUtMjAyNg==")
.contentType(MediaType.APPLICATION_JSON)
.content("""
{"isbn": "9782956300014", "titre": "Programmation Java", "auteur": "I. Alame",
"rayon": "Informatique", "prix": 35.00, "image": "images/java.svg",
"nouveaute": true, "stock": 10}
""")).hasStatusOk();
assertThat(commandes.findById(numero).orElseThrow().getTotal()).isEqualByComparingTo("32.00");
}
Si la ligne référençait seulement le livre et lisait son prix courant, chaque changement de tarif réécrirait l'histoire des ventes.
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.