package com.jayway.jsonpath.old.internal; import org.junit.Test; import java.util.List; import java.util.Map; import static com.jayway.jsonpath.JsonPath.read; import static java.util.Collections.singletonMap; import static org.assertj.core.api.Assertions.assertThat; public class ArrayPathTokenTest extends TestBase { @Test public void array_can_select_multiple_indexes() { List<Map> result = read(ARRAY, "$[0,1]"); assertThat(result).containsOnly( singletonMap("foo", "foo-val-0"), singletonMap("foo", "foo-val-1")); } @Test public void array_can_be_sliced_to_2() { List<Map> result = read(ARRAY, "$[:2]"); assertThat(result).containsOnly( singletonMap("foo", "foo-val-0"), singletonMap("foo", "foo-val-1")); } @Test public void array_can_be_sliced_to_2_from_tail() { List<Map> result = read(ARRAY, "$[:-5]"); assertThat(result).containsOnly( singletonMap("foo", "foo-val-0"), singletonMap("foo", "foo-val-1")); } @Test public void array_can_be_sliced_from_2() { List<Map> result = read(ARRAY, "$[5:]"); assertThat(result).containsOnly( singletonMap("foo", "foo-val-5"), singletonMap("foo", "foo-val-6")); } @Test public void array_can_be_sliced_from_2_from_tail() { List<Map> result = read(ARRAY, "$[-2:]"); assertThat(result).containsOnly( singletonMap("foo", "foo-val-5"), singletonMap("foo", "foo-val-6")); } @Test public void array_can_be_sliced_between() { List<Map> result = read(ARRAY, "$[2:4]"); assertThat(result).containsOnly( singletonMap("foo", "foo-val-2"), singletonMap("foo", "foo-val-3")); } }