я пытаюсь создать сценарий для CSM wsdl, в котором могут быть составлены несколько версий запроса.
Каждый запрос имеет уникальный тег, и это то, что я использую в качестве условия, для которого должен быть возвращен конкретный запрос.
Например: у меня есть 2 запроса на основе CSM wsdl, у firt есть OrderItemStatus в качестве уникального тега, а у второго есть Description с "desc123" в качестве значения, теперь для любого тега, полученного по запросу, я хочу вернуть Response1 или Response2.
Вот что я попробовал:
def temp="XX";
def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context)
def xml=new XmlSlurper().parseText(mockRequest.requestContent)
xml.breadthFirst().each{
def v=it.toString()
log.info("==============="+it.name()+"==================="+it.text());
if(it.name()=="Description" || "OrderItemStatus"){ -- Here im searching for what tag is preset on the request
temp=it.text(); - Here is where im saving value of the tag.
log.info("===================matching tag=========================="+it.text());
}
}
//log.info("*temp**"+temp);
if(temp=='Close'){ -- This condiiton is ignored, it always returns Response_01.
log.info("if Response_01");
mockOperation.setDefaultResponse("Response_01");
}else if(temp=='desc123'){
log.info("else if Response_02");
mockOperation.setDefaultResponse("Response_02");
}else{
log.info("else Generic");
mockOperation.setDefaultResponse("Generic");
}
Проблема, с которой я сталкиваюсь, заключается в том, что он всегда возвращает независимо от того, находит ли он по запросу OrderItemStatus со значением «Закрыть» значение или нет, он всегда возвращает Response_01.
Спасибо!