/src/test/java/com/alibaba/json/bvt/path/JSONPath_field_access_filter_compare_string.java

https://github.com/alibaba/fastjson · Java · 167 lines · 128 code · 39 blank · 0 comment · 0 complexity · 05f679c0a9aa2d6e47a1cc514c4b7d14 MD5 · raw file

  1. package com.alibaba.json.bvt.path;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.JSONArray;
  6. import junit.framework.TestCase;
  7. import org.junit.Assert;
  8. import com.alibaba.fastjson.JSONPath;
  9. public class JSONPath_field_access_filter_compare_string extends TestCase {
  10. public void test_list_eq() throws Exception {
  11. JSONPath path = new JSONPath("$[?(@.name = 'ljw2083')]");
  12. List<Entity> entities = new ArrayList<Entity>();
  13. entities.add(new Entity(1001, "ljw2083"));
  14. entities.add(new Entity(1002, "wenshao"));
  15. entities.add(new Entity(1003, null));
  16. entities.add(new Entity(null, null));
  17. List<Object> result = (List<Object>) path.eval(entities);
  18. Assert.assertEquals(1, result.size());
  19. Assert.assertSame(entities.get(0), result.get(0));
  20. }
  21. public void test_list_eq_x() throws Exception {
  22. JSONPath path = new JSONPath("$[?(name = 'ljw2083')]");
  23. List<Entity> entities = new ArrayList<Entity>();
  24. entities.add(new Entity(1001, "ljw2083"));
  25. entities.add(new Entity(1002, "wenshao"));
  26. entities.add(new Entity(1003, null));
  27. entities.add(new Entity(null, null));
  28. List<Object> result = (List<Object>) path.eval(entities);
  29. Assert.assertEquals(1, result.size());
  30. Assert.assertSame(entities.get(0), result.get(0));
  31. }
  32. public void test_list_eq_null() throws Exception {
  33. JSONPath path = new JSONPath("$[?(@.name = null)]");
  34. List<Entity> entities = new ArrayList<Entity>();
  35. entities.add(new Entity(1001, "ljw2083"));
  36. entities.add(new Entity(1002, "wenshao"));
  37. entities.add(new Entity(1003, null));
  38. entities.add(new Entity(null, null));
  39. List<Object> result = (List<Object>) path.eval(entities);
  40. Assert.assertEquals(2, result.size());
  41. Assert.assertSame(entities.get(2), result.get(0));
  42. Assert.assertSame(entities.get(3), result.get(1));
  43. }
  44. public void test_list_not_null() throws Exception {
  45. JSONPath path = new JSONPath("$[?(@.name != null)]");
  46. List<Entity> entities = new ArrayList<Entity>();
  47. entities.add(new Entity(1001, "ljw2083"));
  48. entities.add(new Entity(1002, "wenshao"));
  49. entities.add(new Entity(1003, null));
  50. entities.add(new Entity(null, null));
  51. List<Object> result = (List<Object>) path.eval(entities);
  52. Assert.assertEquals(2, result.size());
  53. Assert.assertSame(entities.get(0), result.get(0));
  54. Assert.assertSame(entities.get(1), result.get(1));
  55. }
  56. public void test_list_gt() throws Exception {
  57. JSONPath path = new JSONPath("$[?(@.name > 'ljw2083')]");
  58. List<Entity> entities = new ArrayList<Entity>();
  59. entities.add(new Entity(1001, "ljw2083"));
  60. entities.add(new Entity(1002, "wenshao"));
  61. entities.add(new Entity(1003, null));
  62. entities.add(new Entity(null, null));
  63. List<Object> result = (List<Object>) path.eval(entities);
  64. Assert.assertEquals(1, result.size());
  65. Assert.assertSame(entities.get(1), result.get(0));
  66. }
  67. public void test_list_ge() throws Exception {
  68. JSONPath path = new JSONPath("$[?(@.name >= 'ljw2083')]");
  69. List<Entity> entities = new ArrayList<Entity>();
  70. entities.add(new Entity(1001, "ljw2083"));
  71. entities.add(new Entity(1002, "wenshao"));
  72. entities.add(new Entity(1003, null));
  73. entities.add(new Entity(null, null));
  74. List<Object> result = (List<Object>) path.eval(entities);
  75. Assert.assertEquals(2, result.size());
  76. Assert.assertSame(entities.get(0), result.get(0));
  77. Assert.assertSame(entities.get(1), result.get(1));
  78. }
  79. public void test_list_lt() throws Exception {
  80. JSONPath path = new JSONPath("$[?(@.name < 'wenshao')]");
  81. List<Entity> entities = new ArrayList<Entity>();
  82. entities.add(new Entity(1001, "ljw2083"));
  83. entities.add(new Entity(1002, "wenshao"));
  84. entities.add(new Entity(1003, null));
  85. entities.add(new Entity(null, null));
  86. List<Object> result = (List<Object>) path.eval(entities);
  87. Assert.assertEquals(1, result.size());
  88. Assert.assertSame(entities.get(0), result.get(0));
  89. }
  90. public void test_list_le() throws Exception {
  91. JSONPath path = new JSONPath("$[?(@.name <= 'wenshao')]");
  92. List<Entity> entities = new ArrayList<Entity>();
  93. entities.add(new Entity(1001, "ljw2083"));
  94. entities.add(new Entity(1002, "wenshao"));
  95. entities.add(new Entity(1003, null));
  96. entities.add(new Entity(null, null));
  97. List<Object> result = (List<Object>) path.eval(entities);
  98. Assert.assertEquals(2, result.size());
  99. Assert.assertSame(entities.get(0), result.get(0));
  100. Assert.assertSame(entities.get(1), result.get(1));
  101. }
  102. public void test_eq() throws Exception {
  103. JSONPath path = new JSONPath("$.*[?(@.name=='b')].id");
  104. JSONArray array = JSON.parseArray("[{\"id\":\"1\",\"name\":\"a\"},{\"id\":\"2\",\"name\":\"b\"}]");
  105. Object result = path.eval(array);
  106. System.out.println(result);
  107. }
  108. public static class Entity {
  109. private Integer id;
  110. private String name;
  111. public Entity(Integer id, String name){
  112. this.id = id;
  113. this.name = name;
  114. }
  115. public Integer getId() {
  116. return id;
  117. }
  118. public void setId(Integer id) {
  119. this.id = id;
  120. }
  121. public String getName() {
  122. return name;
  123. }
  124. public void setName(String name) {
  125. this.name = name;
  126. }
  127. }
  128. }