You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.3 KiB
49 lines
1.3 KiB
package com.jayway.jsonpath; |
|
|
|
import static com.jayway.jsonpath.JsonPath.using; |
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
import java.util.List; |
|
import java.util.Map; |
|
|
|
import org.apache.tapestry5.json.JSONArray; |
|
import org.apache.tapestry5.json.JSONObject; |
|
import org.junit.Test; |
|
|
|
public class TapestryJsonProviderTest extends BaseTest { |
|
|
|
@Test |
|
public void an_object_can_be_read() { |
|
|
|
JSONObject book = using(TAPESTRY_JSON_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[0]"); |
|
|
|
assertThat(book.get("author").toString()).isEqualTo("Nigel Rees"); |
|
} |
|
|
|
@Test |
|
public void a_property_can_be_read() { |
|
|
|
String category = using(TAPESTRY_JSON_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[0].category"); |
|
|
|
assertThat(category).isEqualTo("reference"); |
|
} |
|
|
|
@Test |
|
public void a_filter_can_be_applied() { |
|
|
|
JSONArray fictionBooks = using(TAPESTRY_JSON_CONFIGURATION).parse(JSON_DOCUMENT) |
|
.read("$.store.book[?(@.category == 'fiction')]"); |
|
|
|
assertThat(fictionBooks.length()).isEqualTo(3); |
|
} |
|
|
|
@Test |
|
public void result_can_be_mapped_to_object() { |
|
|
|
List<Map<String, Object>> books = using(TAPESTRY_JSON_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book", |
|
List.class); |
|
|
|
assertThat(books.size()).isEqualTo(4); |
|
} |
|
|
|
}
|
|
|