Fonction qui retourne null
Bonjour,
J'utilise Groovy avec SoapUI 5.3.0 en version gratuite
J'ai un TestCase avec deux webservices et un script Groovy
Le but est de générer un fichier texte avec les infos qui m'intéressent
Le code est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| import com.eviware.soapui.support.XmlHolder
import java.text.MessageFormat
import org.apache.commons.lang.ObjectUtils
import java.util.ArrayList
def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context)
def responseHolder1 = groovyUtils.getXmlHolder( testRunner.testCase.testSteps["getDataRequest"].testRequest.response.getContentAsXml())
def responseHolder2 = groovyUtils.getXmlHolder( testRunner.testCase.testSteps["getAssignments"].testRequest.response.getContentAsXml())
def file = new File("C:/temps.txt")
def findAssignment(id1) {
for (int i=0; i++; ID2.size()-1){
if (id1 == ID2[i]) {
return Assignment[i]
}
}
}
//temps de présence
List<String> ID1
List<String> time
List<String> date
//affectations
List<String> ID2
List<String> Assignment
List<String> list
List<String> list2
ID1=responseHolder1.getDomNodes("//*:FromDateToDateJobTotal/*:employeeIdentificationNumber").collect{node->node.getFirstChild().nodeValue}
date=responseHolder1.getDomNodes("//*:FromDateToDateJobTotal/*:startDate").collect{node->node.getFirstChild().nodeValue}
time=responseHolder1.getDomNodes("//*:FromDateToDateJobTotal/*:hours").collect{node->node.getFirstChild().nodeValue}
ID2=responseHolder2.getDomNodes("//*:JobAssignment/*:employeeIdentificationNumber").collect{node->node.getFirstChild().nodeValue}
Assignment=responseHolder2.getDomNodes("//*:JobAssignment/*:jobDescription").collect{node->node.getFirstChild().nodeValue}
list=([ID1, date, time].transpose().collect{it -> it[0] + " | " + it[1] + " | " + it[2] + " | " + findAssignment(it[0])})
for (String s: list) {
file.append(s + System.getProperty("line.separator"))
} |
Le permier service va me chercher des temps de présence, le deuxième l'affectation à un poste de travail. Le lien entre les deux est employeeIdentificationNumber que j'appelle respectivement ID1 et ID2
Je souhaiterais obtenir une liste finale avec ID1, date, time, Assignment (Assignment tel que ID1=ID2)
Mon problème est que la fonction findAssignment me retourne null dans ma liste et je ne comprends pas pourquoi
J'ai bien relu tout le code mais je ne trouve pas, quelqu'un pourrait m'aiguiller svp sur ce qui coince ?
Je précise que je suis débutant et pas du tout informaticien... juste un peu seul au monde en PME :)