J'essaie de comparer deux tableaux dans groovy. Mes tentatives jusqu'à présent ont donné une réponse mitigée et donc je me tourne vers le collectif pour obtenir des conseils.Tri des tableaux dans Groovy
Dans le code suivant, je prends 2 réponses REST, en les analysant et en plaçant tout sous le nœud Invoice dans un tableau. Je qualifie ensuite mon tableau de sorte que j'ai une liste d'InvoiceID, puis j'essaie de comparer les résultats des deux réponses pour m'assurer qu'elles sont identiques. Lorsque je compare le tableau des InvoiceID (Guids) qu'ils correspondent, ce n'est pas ce que j'attends car l'ordre de facturation est actuellement différent entre mes deux sources de réponse.
Lorsque je trier les tableaux d'ID de factures, les résultats diffèrent.
Je soupçonne que mon code est défectueux, mais j'ai passé une heure à le parcourir, en vain.
Tous les conseils sur les tableaux de tri Groovy ou sur le code ci-dessous serait très appréciée:
gu = new com.eviware.soapui.support.GroovyUtils(context)
def xmlSlurper = new groovy.util.XmlSlurper()
// Setting up the response parameters
def responseSTAGE = xmlSlurper.parseText(context.expand('${GET Invoices - STAGE#Response}'));
def responseSTAGE2 = xmlSlurper.parseText(context.expand('${GET Invoices - STAGE2#Response}'));
responseInvoicesSTAGE = responseSTAGE.Invoices
responseInvoicesSTAGE2 = responseSTAGE2.Invoices
def arrayOfInvoicesSTAGE = []
def arrayOfInvoicesSTAGE2 = []
def counter = 0
for (invoice in responseInvoicesSTAGE.Invoice) {
arrayOfInvoicesSTAGE[counter] = responseInvoicesSTAGE.Invoice[counter].InvoiceID
//log.info counter+" STAGE"+arrayOfInvoicesSTAGE[counter]
arrayOfInvoicesSTAGE2[counter] = responseInvoicesSTAGE2.Invoice[counter].InvoiceID
//log.info counter+" STAGE2"+arrayOfInvoicesSTAGE2[counter]
counter++
}
log.info arrayOfInvoicesSTAGE
log.info arrayOfInvoicesSTAGE2
def sortedSTAGE = arrayOfInvoicesSTAGE.sort()
def sortedSTAGE2 = arrayOfInvoicesSTAGE2.sort()
log.info sortedSTAGE
Génial, merci pour ce Tim. C'est un code infiniment plus joli! –