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

https://github.com/alibaba/fastjson · Java · 157 lines · 120 code · 37 blank · 0 comment · 0 complexity · 705a2a432126f9ee7a0ab73bd122c88c MD5 · raw file

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