TP08 : class CreditCardServiceImpl

Modérateurs : graffiop, jmdouin, agoncal, mlebihan

delign_i
Messages : 25
Inscription : 02 avr. 2019 16:18

Re: TP08 : class CreditCardServiceImpl

Message par delign_i » 19 déc. 2019 0:12

Aucun :(

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 0:24

J'ai réussi à reproduire ce bug en passant null à HTTPSender.send
donc le problème est peut être du à : que dans ta méthode verifyCreditCard ...
Tu passe un json creditCardJSON qui est null comme paramètre à ta méthode HTTPSender.send
il faut convertir ton objet java creditCard comme ça :


public void verifyCreditCard(CreditCard creditCard) throws CheckException {
ObjectMapper mapper = new ObjectMapper();

try {
String creditCardJSON = mapper.writeValueAsString(creditCard);
String status = HTTPSender.send(creditCardJSON);
if(!CreditCardStatus.VALID_CREDIT_CARD.equals(status)) {
throw new CheckException(status);
}
.
Dernière édition par harrak_z le 19 déc. 2019 0:30, édité 1 fois.

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 0:26

Si c'est aucun donc c'est rassurant ... ton json creditCardJSON que tu passe est null ..

delign_i
Messages : 25
Inscription : 02 avr. 2019 16:18

Re: TP08 : class CreditCardServiceImpl

Message par delign_i » 19 déc. 2019 0:32

Je faisais :

Code : Tout sélectionner

String creditCardJSON = creditCard.toJsonString();
J'ai remplacé par ton code pour voir, ça ne change rien.
Par contre du coup, une question me vient : J'ai ajouté l'attribut status à la classe CreditCard, ainsi que le setter et le getter et donc la méthode toJsonString(). C'était peut-être pas la bonne manière ?

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 0:34

pourquoi t'as rajouté statut dans CreditCard ?

delign_i
Messages : 25
Inscription : 02 avr. 2019 16:18

Re: TP08 : class CreditCardServiceImpl

Message par delign_i » 19 déc. 2019 0:34

J'ai vérifié l'attribut creditCardJSON produit avec

Code : Tout sélectionner

String creditCardJSON = creditCard.toJsonString();
et malheureusement, il n'est pas null, c'est bien le JSON de la CreditCard. D'où ma panne sèche là...

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 0:35

est ce que juste tu peux poster l'implemntation de la méthode toJsonString qui dans ton objetc CreditCard ?

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 0:36

Est ce que tu peux afficher la valeur de creditCardJSON .. System.out.println(creditCardJSON)

delign_i
Messages : 25
Inscription : 02 avr. 2019 16:18

Re: TP08 : class CreditCardServiceImpl

Message par delign_i » 19 déc. 2019 0:38

Pour accéder au statut parce que je ne capte pas comment on y accède sinon vu que la méthode public void verifyCreditCard(CreditCard creditCard) throws CheckException {} ne retourne pas de résultat ?
Il y a un peu de fatigue, c'est peut-être ça le soucis de mon code ?

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 0:47

T'en a pas besoin ;
"statut" c'est une réponse du web service Bank TBB que tu invoque dans ce service ... et dans tous les cas si tu as besoin de status d'une carte bancaire tu dois appeler le web service ... c'est comme quand tu insere ta carte dans un distributeur le systeme informatique va appelé un web service qui va vérifier le statut de ta carte et va te dire si c'est ok ou non ok ... et terminé ... et si tu refais l'opération le systeme va faire appel de nouveau à ce web service ... et te donner la réponse ...
Sinnon pour un objet que tu vas le convertir en json tu ne peux pas ajouter un champ ou meme une méthode sans ajouter l'annotaton @JsonIgnore sinon le json va la prendre en compte donc ça va pas fonctionner

delign_i
Messages : 25
Inscription : 02 avr. 2019 16:18

Re: TP08 : class CreditCardServiceImpl

Message par delign_i » 19 déc. 2019 0:53

Je pense qu'on tiens l'erreur, j'avais ni vu ni pensé que l'attribut status allait être dans le JSON...
{"creditCardNumber":"4564 1231 4564 2222","creditCardType":"Visa","creditCardExpiryDate":"01/deux mille trente","status":null}
Je viens aussi de capter au passage comment le retour se fait. On progresse ! :) Merci !
Alors, le verdict, il ne reste que 5 tests qui ne passent pas sur 9, les 4 tests de CreditCardServiceTest passent.
Ceux qui restent à valider : testServiceCreateCustomerWithInvalidCreditCard(), testServiceCreateCustomerWithInvalidValues(), testServiceUpdateCustomerWithInvalidCreditCard(), testServiceCreateOrder() et testServiceCreateOrderWithInvalidValues()
Au niveau de la classe UserServiceImpl, je teste les attributs ainsi :

Code : Tout sélectionner

if((ccType != null || !"".equals(ccType)) && (ccNumber != null || !"".equals(ccNumber)) && (ccExpiryDate != null || !"".equals(ccExpiryDate))){
        	creditCardService.verifyCreditCard(creditCard);
        }

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 0:59

plutôt :

if((ccType != null &&"".equals(ccType)) && (ccNumber != null && !"".equals(ccNumber)) && (ccExpiryDate != null && !"".equals(ccExpiryDate))){
creditCardService.verifyCreditCard(creditCard);
}

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 1:05

Cette vérification dois aussi etre ajouté dans com.yaps.petstore.domain.service.OrderServiceImpl.createOrder(OrderDTO)

delign_i
Messages : 25
Inscription : 02 avr. 2019 16:18

Re: TP08 : class CreditCardServiceImpl

Message par delign_i » 19 déc. 2019 1:07

Victoire !!! Junit et mark, tout passe, vraiment un grand merci pour ton aide précieuse ! C'était franchement pas gagné avec une migraine carabinée...
(C'était ce que j'avais fait au début avant de remplacer par || comme dans checkData(), mais j'avais modifié pensant que ça venait de là...)
Je te souhaite une bonne fin de soirée et merci encore !

harrak_z
Messages : 66
Inscription : 19 oct. 2019 20:15

Re: TP08 : class CreditCardServiceImpl

Message par harrak_z » 19 déc. 2019 1:09

Super ... Bravo!
Bonne soiré

Répondre