[RESOLU] TP08 CreateCustomerServletTest

Modérateurs : graffion, jmdouin, agoncal, mlebihan

tayab737
Messages : 3
Inscription : 02 déc. 2017 15:50

[RESOLU] TP08 CreateCustomerServletTest

Message par tayab737 » 02 déc. 2017 15:58

Exception java.lang a cause de :

com.yaps.petstore.common.exception.DuplicateKeyException lancé par createCustomer new CustomerDelegateFactory().createCustomerDelegate().createCustomer(customerDTO);



dans le test : CreateCustomerServletTest.testServletCreateCustomer, la methode createCustomer fait apell a : createCustomerForm.submit() : cette methode soumisle formulaire deux fois
la premier foix le client est cree la deuxieme l;éxception DuplicateKeyException est lancé

public WebResponse submit( SubmitButton button, int x, int y ) throws IOException, SAXException {
WebResponse result=null;
if (button==null || button.doOnClickSequence(x, y)) {
result= doFormSubmit( button, x, y );----------------------(2)
} else {
result=getCurrentFrameContents();
}
return result;
}

protected boolean doOnClickSequence(int x,int y) throws IOException, SAXException {
verifyButtonEnabled();
boolean result=doOnClickEvent();
if (result) {
doButtonAction(x,y);
}
this.rememberEnableState();
return result;
}


protected void doButtonAction(int x,int y) throws IOException, SAXException {
getForm().doFormSubmit( this ,x,y); -----------(1)
}

kynam
Messages : 6
Inscription : 13 oct. 2017 20:18

Re: TP08 CreateCustomerServletTest

Message par kynam » 02 déc. 2017 19:19

En cas de DuplicateKeyException, il faudrait recréer ta base de données.

PhilG
Messages : 21
Inscription : 12 nov. 2017 10:25

Re: TP08 CreateCustomerServletTest

Message par PhilG » 02 déc. 2017 22:45

En fait, le problème est que l'on insère une clé existante en BDD.

Il faut ajouter une couche pour vérifier que l'Item à insérer n'est pas déjà en BDD.


Cordialement.

tayab737
Messages : 3
Inscription : 02 déc. 2017 15:50

Re: TP08 CreateCustomerServletTest

Message par tayab737 » 06 déc. 2017 18:33

Je ne sais pas c'est toujours comme ça même pour le TP7

java.lang.Exception: An error has occured
at com.yaps.petstore.web.servlet.CreateCustomerServletTest.createCustomer(CreateCustomerServletTest.java:126)
at com.yaps.petstore.web.servlet.CreateCustomerServletTest.testServletCreateCustomer(CreateCustomerServletTest.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:121)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

tayab737
Messages : 3
Inscription : 02 déc. 2017 15:50

Re: TP08 CreateCustomerServletTest

Message par tayab737 » 06 déc. 2017 22:32

Bonsoir

En fin c'est que la version du Httpunit_1.7 :/

ça marche très bien avec la version 1.6.2.

Merci beaucoup.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité