Page 1 sur 1

CheckException dans ShoppingCartController

Publié : 15 janv. 2020 14:34
par kagans_a
Bonjour,

J'utilise la methode
public Long createOrder(String customerId, Map<String,Integer> shoppingCart) throws CreateException, CheckException { ... } de OrderServiceImpl pour créer une commande dans ShoppingCartCheckoutController.

Je récupère CustomerId par Authentification et ShoppingCart par le bean.
En testant sur le site, j'obtiens CheckException.

J'ai testé avec des valeurs en dur:
Map<String, Integer> myCart = new HashMap<String, Integer>();
myCart.put("EST10", 2);
Long orderId = orderService.createOrder("bill000", myCart);

L'exception est toujours lévé.
J'ai aucune erreur dans les tests et je ne sais plus par où regarder...

Est ce que quelqu'un pourrait aider?

En vous remerciant,

Asya

Re: CheckException dans ShoppingCartController

Publié : 15 janv. 2020 18:53
par harrak_z
Pour pouvoir t'aider Peux tu poster la trace d'erreur stp...

Re: CheckException dans ShoppingCartController

Publié : 15 janv. 2020 18:59
par harrak_z
Quand tu appelle la méthode createOrder(userId, shoppingCart) si ton panier est vide une exception : CheckException va être lancée (Voir laligne 129 de la classe OrderServiceImp :
throw new CheckException("There are no order lines"); donc il faut gérer cette exception

Re: CheckException dans ShoppingCartController

Publié : 15 janv. 2020 19:05
par bruye_st
Effectivement, il faut bien utiliser la classe Authentication, en conjonction avec la classe UserDetails, pour récupérer le username :
(...)
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
String username = userDetails.getUsername();
Long orderId=null;
try {
orderId = orderService.createOrder(username, ...
(...)
Pensez à vider le panier avec la génération de la commande.
Le panier doit être récupérer à partir du bean ShoppingCartService.

Bonne fin de TP,

Stéphane

Re: CheckException dans ShoppingCartController

Publié : 15 janv. 2020 23:37
par kagans_a
Merci à tous

Re: CheckException dans ShoppingCartController

Publié : 16 janv. 2020 0:38
par kagans_a
Bonjour,

L'erreur vient de la base de données fourni.

La carte de crédit de l'utilisateur bill000 expire le 02/14 du coup, il est rejetté et l'exeption se leve.

Bon courage à tous

Re: CheckException dans ShoppingCartController

Publié : 16 janv. 2020 0:41
par harrak_z
Bravo ! :-)