Я пытаюсь поставить условие И в соответствие xpath для параметров запроса, но это не работает.
Я создаю несколько заглушек, в которых uniqueId может содержать аналогичные цифры 00000 или 11111, но имя serviceName будет другим. Например, в первом запросе uniqueId равен 1000001, а serviceName = 'AB C', во втором запросе uniqueId снова равен 1000001, а serviceName - 'XYZ'. Для обоих ответ будет разным. Я создал три заглушки: одна для службы AB C, вторая для службы XYZ и третья по умолчанию без совпадения с xpath. Когда я вызываю службу с параметром запроса, содержащим uniqueId 1000001 и имя службы AB C или XYZ, каждый раз я получаю ответ заглушки по умолчанию. Передавая xml в параметре запроса
"queryParameters":{
"xmlreqdoc": {
"matchesXPath" : "//*[[local-name()='uniqueId'][text()[contains(.,'00000')]] AND //*[local-name()='serviceName'][text() = 'ABCDEFGH']]"
}
}
, я создал заглушки с заданным приоритетом ... и кажется, что каждый раз возвращается значение по умолчанию. Ниже приводится запрос xml
<?xml version="1.0" encoding="UTF-8"?>
<service>
<serviceHeader>
<userId>XXXX</userId>
<password>XXXXX</password>
<serviceName>ABCDEFGH</serviceName>
</serviceHeader>
<serviceBody>
<subServiceName>add</subServiceName>
<uniqueId>00000</uniqueId>
</serviceBody>
</service>
Ниже приведено созданное мною отображение заглушки
{
"priority" : 1,
"request": {
"urlPath": "/testMappings",
"method": "GET",
"headers": {
"Content-Type": {
"equalTo": "application/xml"
},
"Accept": {
"equalTo": "application/xml"
}
},
"queryParameters":{
"xmlreqdoc": {
"matchesXPath" : "//*[//[local-name()='uniqueId'][text()[contains(.,'00000')]] AND //*[local-name()='serviceName'][text() = 'ABCDEFGH']]"
}
}
},
"response": {
"status": 400,
"headers": {
"Content-Type" : "application/xml"
},
"fixedDelayMilliseconds": 500,
"bodyFileName": "ERROR.xml"
}
}
Любая помощь или указатели будут высоко оценены. Заранее спасибо !!