TP3 - Créer les dépôts et ajouter les événements de domaine

Lorsque nous conservons des instances d’agrégats à l’aide de l'Event Sourcing, nous conservons un « événement d’ajout » plutôt que l’instance elle-même.
Cet événement contiendra l’instantané de l’état initial sur lequel nous appliquerons tous les événements ultérieurs afin de « réhydrater » l’état actuel de l’objet.

Dans ce TP, nous commencerons à remplir les détails nécessaires pour qu’un dépôt « ajoute » une instance d’agrégat.

Nous réaliserons deux scénarios :

  1. Un référentiel doit être capable de fournir la prochaine identité disponible, ou Ref, pour un agrégat.

  2. Un référentiel doit correctement construire et publier un DepotAjouterEvenement.

Vous pouvez exécuter com.pizzeria.suites.Lab3Suite pour vérifier votre progression dans ce TP.

mvn -PLab3 test

1. Instructions

  1. CommandeCuisine a un type associé ReferenceCommandeCuisine. Complétez son implémentation. Recherchez des indices dans les autres classes Reference trouvées dans les contextes Commandes et Paiements.

  2. Pizza a un type associé ReferencePizza. Complétez son implémentation. Recherchez des indices dans les types Reference trouvés dans les contextes Commandes et Paiements.

  3. CommandeCuisine possède une classe statique interne appelée MementoCommande qui capture l’instantané de l’état initial de CommandeCuisine. En d’autres termes, elle enregistre les références aux commandes cuisine et en ligne, ainsi que la liste de Pizzas. Elle est renvoyée par la méthode memento(). Complétez ces implémentations. Cherchez des indices dans les classes Agregat trouvées dans les contextes Commandes et Paiements.

  4. « Pizza » possède une classe interne statique interne appelée « MementoPizza » qui capture l’instantané de l’état initial de « Pizza ».
    Elle est renvoyée par la méthode « memento() ». Complétez ces implémentations. Recherchez des indices dans les types « Agregat » trouvés dans les contextes « Commandes » et « Paiements ».