assertj-json/src/test/java/com/devsoap/json/FieldTraversalAssertionTest...

85 lines
1.8 KiB
Java
Raw Normal View History

2024-10-24 18:59:28 +00:00
package com.devsoap.json;
import org.junit.jupiter.api.Test;
import static com.devsoap.json.JsonAssert.assertThat;
public class FieldTraversalAssertionTest {
private static final String JSON = """
{
"level": 0,
"root": {
"level": 1,
"child": {
"level": 2,
"child": {
"level": 3,
"last": 42
}
}
}
}
""";
@Test
public void root() {
assertThat(JSON).field("level").isEqualTo(0);
assertThat(JSON).field("root").isNotNull();
}
@Test
public void fieldTraversal() {
assertThat(JSON)
.field("root")
.field("child")
.field("level")
.isEqualTo(2);
}
@Test
public void pathTraversal() {
assertThat(JSON)
.path("root", "child", "level")
.isEqualTo(2);
}
@Test
public void firstFieldMatching() {
assertThat(JSON)
.firstField("child")
.field("level")
.isEqualTo(2);
assertThat(JSON)
.firstField("last")
.isEqualTo(42);
}
@Test
public void lastFieldMatching() {
assertThat(JSON)
.lastField("child")
.field("level")
.isEqualTo(3);
assertThat(JSON)
.lastField("level")
.isEqualTo(3);
}
@Test
public void nthFieldMatching() {
assertThat(JSON)
.nthField("child", 1)
.field("level")
.isEqualTo(3);
for (var level=0; level<=3; level++) {
assertThat(JSON)
.nthField("level", level)
.isEqualTo(level);
}
}
}