martes, 23 de octubre de 2007

Null Pointer in getStep method (Workflow descriptor)

Los StepDescriptors tienen dos métodos referidos al Id, uno se refiere al Id del step modelo y otro al Id de la entity persistente:
currentSteps = workflow.getCurrentSteps(workflowId);
Step currentStep = currentSteps.iterator().next();
assertEquals("Unexpected current step", 1, currentStep.getStepId());
logger.debug("Current step id:" + currentStep.getStepId());
logger.debug("Step entity id:" + currentStep.getId());
logger.debug("Step name:"+ wd.getStep((int) currentStep.getStepId()).getName());

En el caso en que se accese:
logger.debug("Step name:"+ wd.getStep((int) currentStep.getId()).getName());
se estará tratando de acceder al StepDescriptor con el id(db primary key) de un objeto persistido. Puede coincidir, más si el id(PK) es chico, que exista algún descriptor con ese número, pero seguramente va a ser una info errónea.

viernes, 5 de octubre de 2007

Upload File Error in HttpUnit

El file es readable y lo accedo en el test via inputStream.read() pero en la llamada desde httpunit
escupe la exception:
java.io.IOException: Read error
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:194)
at com.meterware.httpunit.MimeEncodedMessageBody$MimeEncoding.addFile(MimeEncodedMessageBody.java:145)
at com.meterware.httpunit.FileSubmitFormControl.addValues(FormControl.java:944)
at com.meterware.httpunit.WebForm.recordParameters(WebForm.java:584)

miércoles, 3 de octubre de 2007

HttpUnit & Javascripst fail

Cuando se submitea un form a través de un javasscript HttpUnit parece que se pierde porque no se realiza el submit. Si bien es una practica no recomendada, en casos legacy puede aparecer. Caso:

function agregar(f){
f.action = "form!save.action?";
f.submit();
return true;
}


Llamada en el test:
addButton.click();
WebResponse addResponse = wc.getCurrentPage();

El JSP:
-form action="" method="post" name="documentosAdmin" .....
......
-input type="button" name="agregar" value="Agregar" class="boton2" onClick="javascript:agregarDocumento(documentosAdmin);">

Fix: para lograr que corra el test (y para mejorar un poco el código también!) se puede sacar el submit del script:
//f.submit();
y cambiar el input type por submit:
-input type="submit" ...
Entonces el script cambia el action pero el submit se hace desde el boton y el test funciona.

martes, 2 de octubre de 2007

HttpUnit fail javascript

org.mozilla.javascript.EvaluatorException: The undefined value has no properties. (httpunit; line 26)
at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:76)

Problema con algun javascript, en este caso se pudo detectar con una herramienta de bugs en el firefox.