Skip to content

Commit

Permalink
add testcase for JSONPath
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Apr 29, 2016
1 parent 2657883 commit 32aa0ab
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 6 deletions.
39 changes: 39 additions & 0 deletions src/test/java/com/alibaba/json/bvt/path/JSONPath_array_multi.java
@@ -0,0 +1,39 @@
package com.alibaba.json.bvt.path;

import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;

import org.junit.Assert;

import com.alibaba.fastjson.JSONPath;

public class JSONPath_array_multi extends TestCase {

Object[] list = new Object[10];

public JSONPath_array_multi(){
for (int i = 0; i < list.length; ++i) {
list[i] = new Object();
}
}

public void test_list_multi() throws Exception {
List<Object> result = (List<Object>) new JSONPath("$[2,4,5,8,100]").eval(list);
Assert.assertEquals(5, result.size());
Assert.assertSame(list[2], result.get(0));
Assert.assertSame(list[4], result.get(1));
Assert.assertSame(list[5], result.get(2));
Assert.assertSame(list[8], result.get(3));
Assert.assertNull(result.get(4));
}

public void test_list_multi_negative() throws Exception {
List<Object> result = (List<Object>) new JSONPath("$[-1,-2,-100]").eval(list);
Assert.assertEquals(3, result.size());
Assert.assertSame(list[9], result.get(0));
Assert.assertSame(list[8], result.get(1));
Assert.assertNull(result.get(2));
}
}
Expand Up @@ -11,21 +11,49 @@

public class JSONPath_field_access_filter_compare_int extends TestCase {

public void test_list_map() throws Exception {
JSONPath path = new JSONPath("$[?(@.id <= 1002)]");
List<Entity> entities = new ArrayList<Entity>();

List<Entity> entities = new ArrayList<Entity>();
public JSONPath_field_access_filter_compare_int(){
entities.add(new Entity(1001, "ljw2083"));
entities.add(new Entity(1002, "wenshao"));
entities.add(new Entity(1003, null));
entities.add(new Entity(null, null));
}

public void test_list_map_le() throws Exception {
JSONPath path = new JSONPath("$[?(@.id <= 1002)]");

List<Object> result = (List<Object>) path.eval(entities);
Assert.assertEquals(2, result.size());
Assert.assertSame(entities.get(0), result.get(0));
Assert.assertSame(entities.get(1), result.get(1));
}

public void test_list_map_lt() throws Exception {
JSONPath path = new JSONPath("$[?(@.id < 1002)]");

List<Object> result = (List<Object>) path.eval(entities);
Assert.assertEquals(1, result.size());
Assert.assertSame(entities.get(0), result.get(0));
}

public void test_list_map_ge() throws Exception {
JSONPath path = new JSONPath("$[?(@.id >= 1002)]");

List<Object> result = (List<Object>) path.eval(entities);
Assert.assertEquals(2, result.size());
Assert.assertSame(entities.get(1), result.get(0));
Assert.assertSame(entities.get(2), result.get(1));
}

public void test_list_map_gt() throws Exception {
JSONPath path = new JSONPath("$[?(@.id > 1002)]");

List<Object> result = (List<Object>) path.eval(entities);
Assert.assertEquals(1, result.size());
Assert.assertSame(entities.get(2), result.get(0));
}

public static class Entity {

private Integer id;
Expand Down
18 changes: 15 additions & 3 deletions src/test/java/com/alibaba/json/bvt/path/JSONPath_list_multi.java
Expand Up @@ -10,18 +10,24 @@
import com.alibaba.fastjson.JSONPath;

public class JSONPath_list_multi extends TestCase {
public void test_list_map() throws Exception {
List list = new ArrayList();

List list = new ArrayList();

public JSONPath_list_multi(){
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());

list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
}

public void test_list_multi() throws Exception {
List<Object> result = (List<Object>) new JSONPath("$[2,4,5,8,100]").eval(list);
Assert.assertEquals(5, result.size());
Assert.assertSame(list.get(2), result.get(0));
Expand All @@ -31,5 +37,11 @@ public void test_list_map() throws Exception {
Assert.assertNull(result.get(4));
}


public void test_list_multi_negative() throws Exception {
List<Object> result = (List<Object>) new JSONPath("$[-1,-2,-100]").eval(list);
Assert.assertEquals(3, result.size());
Assert.assertSame(list.get(9), result.get(0));
Assert.assertSame(list.get(8), result.get(1));
Assert.assertNull(result.get(2));
}
}

0 comments on commit 32aa0ab

Please sign in to comment.