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.
50 lines
1.3 KiB
50 lines
1.3 KiB
9 years ago
|
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);
|
||
|
}
|
||
|
|
||
|
}
|