Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 12 · Exercice de TD

Dix exemplaires au plus

Projet : l'API de la Librairie · niveau 1 (application)

Énoncé

Limiter une ligne de commande à dix exemplaires d'un même livre, avec le message « Au plus 10 exemplaires de « titre » par commande. ». Vérifier par un test.

Corrigé

Une règle de plus dans verifier, avant celle de la quantité invalide :


    static final int MAX_PAR_LIVRE = 10; // exercice 12.8

            } else if (ligne.quantite() != null && ligne.quantite() > MAX_PAR_LIVRE) {
                erreurs.add("Au plus " + MAX_PAR_LIVRE + " exemplaires de « " + livre.getTitre() + " » par commande.");
            } else if (ligne.quantite() == null || ligne.quantite() < 1) {

    @Test
    void auPlusDixExemplairesParLivre() {
        assertThat(mvc.post().uri("/api/commandes").contentType(MediaType.APPLICATION_JSON)
                .content("""
                        {"lignes": [{"isbn": "9782956300052", "quantite": 11}],
                         "nom": "Ada", "courriel": "ada@example.org", "retrait": "boutique"}
                        """))
                .hasStatus(400)
                .bodyJson().extractingPath("$.erreurs[0]")
                .isEqualTo("Au plus 10 exemplaires de « Le Petit Prince » par commande.");
    }

Le Petit Prince a 25 exemplaires : c'est bien la nouvelle règle qui refuse, et non le stock.

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 →