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

https://github.com/alibaba/fastjson · Java · 139 lines · 109 code · 30 blank · 0 comment · 3 complexity · c853a1937f22c7dad706912022401980 MD5 · raw file

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