Простая проверка с использованием JUnit и Hamcrest - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть карта, которая содержит дочерние идентификаторы (childid1, childid2, childid3) и отображение статуса, и у меня есть список, содержащий все идентификаторы (скажем, childid1, childid2, childid3 et c)

Все эти childids сопоставляется с идентификатором одного родителя, скажем, PID и PID также имеет некоторый статус. Когда я изменяю статус PID, скажем, с A на B, то в зависимости от состояния, статус дочерних элементов меняется, как A на B, а B остается B, а статус C остается C.

Когда я меняю статус PID скажем, от B до C, затем, в зависимости от условий, состояние дочерних элементов изменяется, например, от A до C, а B остается B, а состояние C остается C.

Без записи каких-либо сложных логик c, Есть ли простой способ проверить это с помощью JUnit 5 и Hamcrest. Что-то вроде:

if(updateStatus.equals("A")){
            assertAll("",
                    () -> {
                        childIds.stream().forEach(id -> {
                            assertThat("", idStatusMap.get(id).equals("A"), is("B"));
                            assertThat("", idStatusMap.get(id).equals("B"), is("B"));
                            assertThat("", idStatusMap.get(id).equals("C"), is("B"));
                        });
                    });
        }

Любая помощь приветствуется. Спасибо

1 Ответ

0 голосов
/ 18 февраля 2020

Я не совсем понимаю ваш логический / управляющий рабочий процесс для изменения дочерних идентификаторов. Но, я считаю, что-то вроде этого должно работать:

if (updateStatus.equals("A") {
  Optional<> result = childIds.stream()
    .filter(id -> idStatusMap.get(id).equals("A") && id.equals("B"))
    .filter(id -> idStatusMap.get(id).equals("B") && id.equals("B"))
    .filter(id -> idStatusMap.get(id).equals("C") && id.equals("B"))
    .findAny();

  assertTrue(result.isPresent());
}
...