Я пытаюсь сравнить два массива в Groovy. Мои попытки пока дали неоднозначную реакцию, поэтому я обращаюсь к коллективу за советом.
В следующем коде я беру 2 ответа REST, разбираю их и помещаю все в узел Invoice в массив. Затем я дополнительно уточняю свой массив, чтобы получить список InvoiceID, а затем пытаюсь сравнить результаты двух ответов, чтобы убедиться, что они одинаковы.
Когда я сравниваю массив идентификаторов InvoiceID (Guids), которые они совпадают - это не то, что я ожидаю, поскольку порядок выставления счетов в настоящее время различается в двух моих источниках ответа.
Когда я сортирую массивы идентификаторов счетов, результаты различаются.
Я подозреваю, что мой код неисправен, но потратил час на то, чтобы разгребать его, но безрезультатно.
Мы будем очень благодарны за любые советы по сортировке массивов в Groovy или по приведенному ниже коду:
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