Проблема с перечислением объектов в REST Assured XmlPath - PullRequest
0 голосов
/ 27 сентября 2019

Допустим, у меня есть следующий XML-документ, и я хочу проверить его с помощью REST Assured:

<Devices>
    <Scanners>
        <category href="localhost222"  rel="true" />
        <category href="localhost222"  rel="true" />
        <category href="localhost666"  rel="true" />
        <category href="localhost222"  rel="true" />
        <color red="true" green="false" />
    </Scanners>
    <Scanners>
        <category href="localhost222"  rel="true" />
        <category href="localhost222"  rel="true" />
        <category href="localhost666"  rel="true" />
        <category href="localhost222"  rel="true" />
        <color red="true" green="false" />
    </Scanners>
    <Scanners>
        <category href="localhost222"  rel="true" />
        <category href="localhost222"  rel="true" />
        <category href="localhost666"  rel="true" />
        <category href="localhost222"  rel="true" />
        <color red="true" green="false" />
    </Scanners>
    <Scanners>
        <category href="localhost222"  rel="true" />
        <category href="localhost222"  rel="true" />
        <category href="localhost666"  rel="true" />
        <category href="localhost222"  rel="true" />
        <color red="true" green="false" />
    </Scanners>
</Devices>

Теперь, скажем, я хочу проверить, есть ли в каждом сканере элемент цвета с красным атрибутом, которыйравно "истина", а затем проверьте, если этот элемент цвета противоречит зеленому атрибуту равно "ложь".Поэтому для каждого сканера я хочу получить каждое зеленое значение, извлечь значение в список и сравнить, если каждый элемент в списке равен «ложь»:

body("Devices.Scanners.list().color.findAll{it.@red== `true`}.@green", everyItem(equalTo("false")));

Этот пример отлично работает.Теперь давайте предположим, что я хочу проверить, содержит ли каждый сканер элемент категории с атрибутом href, равным «localhost666», и затем проверить, равен ли этот элемент категории атрибуту rel значению «true».Из моего PoV это должно выглядеть примерно так:

body("Devices.Scanners.list().category.findAll{it.@href== `localhost666`}.@rel", everyItem(equalTo("true")));

Но как-то в этом случае в результате я получаю пустой список.У вас есть идеи, что может вызвать проблемы?

...