Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →