ReadyAPI Script .
, ReadyAPI groovy script Script, groovy classes.
, script, , .
, groovy script SoapUI. , . , context, log .
, . file, property step name ..
groovy, script. . .
package com.Linos.readyapi.util.property.propertyvalidation
class PropertyValidator {
def context
def log
def validate(String stepName, File file) {
def step = context.testCase.testSteps[stepName]
def parsedXml = new XmlSlurper().parse(file)
def errorDetails = parsedXml.'**'.findAll { it.name() == 'IntegrationServiceErrorCode'}.inject([:]){map, entry -> map[entry.ErrorCode.text()] = entry.Description.text(); map }
log.info "Error details from response : ${errorDetails}"
def failureMessage = new StringBuffer()
step.properties.keySet().each { key ->
if (errorDetails.containsKey(key)) {
step.properties[key]?.value == errorDetails[key] ?: failureMessage.append("Response error code discription mismatch. expected [${step.properties[key]?.value}] vs actual [${errorDetails[key]}]")
} else {
failureMessage.append("Response does not have error code ${key}")
}
}
if (failureMessage.toString()) {
throw new Error(failureMessage.toString())
}
}
}
, , . , . .
, , - com.linos.readyapi.util. , .
/ Groovy Script soapui:
Groovy script
import com.Linos.readyapi.util.property.propertyvalidation.PropertyValidator
def properties = [context:context, log:log] as PropertyValidator
properties.validate('Properties', file)