Я недавно начал использовать успокоенный, чтобы проверить некоторые xmls. Вот пример:
<activity>
<shopping>
<category type="groceries" label="chocolate" />
<category type="groceries" label="chocolate" />
<category type="present" label="chocolate" />
<container number="eight" color="green" />
</shopping>
<shopping>
<category type="groceries" label="chocolate" />
<category type="groceries" label="chocolate" />
<category type="present" label="chocolate" />
<container number="eight" color="green" />
</shopping>
<shopping>
<category type="groceries" label="chocolate" />
<category type="groceries" label="chocolate" />
<category type="present" label="chocolate" />
<container number="eight" color="green" />
</shopping>
</activity>
Я хотел бы добиться здесь, проверить, есть ли для каждой покупки номер контейнера = «восемь», а затем проверить, имеет ли каждый контейнер цвет = «зеленый». Вот код:
assertThat(xmlPath.getList("activity.shopping.list().container.findAll{it.@number == 'eight'}.@color", String.class), everyItem(equalTo("green")));
это прекрасно работает, когда я отлаживаю это, я получаю именно то, что хотел достичь:
List <String> lista = xmlPath.getList("activity.shopping.list().container.findAll{it.@number == 'eight'}.@color", String.class);
Это список из трех элементов, где каждыйэлемент равен «зелёному».
Но когда я пытаюсь проверить, есть ли для каждого шоппинга категория type = "present", а затем проверить, имеет ли каждая из этих категорий метку = "chocolate", я получаюпустой список:
List <String> lista2 = xmlPath.getList("activity.shopping.list().category.findAll{it.@type == 'present'}.@label", String.class);
Есть идеи, что мне не хватает или как должно выглядеть решение? Большое спасибо за любую помощь.