static Set<IntegerTestBean> createSet() { Set<IntegerTestBean> set = new LinkedHashSet<>(); for (int i = 0; i < 3; i++) { set.add(new IntegerTestBean(i + 5)); } return set; }
@Test public void projectionWithIterable() throws Exception { Expression expression = new SpelExpressionParser().parseRaw("#testList.![wrapper.value]"); EvaluationContext context = new StandardEvaluationContext(); context.setVariable("testList", IntegerTestBean.createIterable()); Object value = expression.getValue(context); assertTrue(value instanceof List); List<?> list = (List<?>) value; assertEquals(3, list.size()); assertEquals(5, list.get(0)); assertEquals(6, list.get(1)); assertEquals(7, list.get(2)); }
@Test public void projectionWithList() throws Exception { Expression expression = new SpelExpressionParser().parseRaw("#testList.![wrapper.value]"); EvaluationContext context = new StandardEvaluationContext(); context.setVariable("testList", IntegerTestBean.createList()); Object value = expression.getValue(context); assertTrue(value instanceof List); List<?> list = (List<?>) value; assertEquals(3, list.size()); assertEquals(5, list.get(0)); assertEquals(6, list.get(1)); assertEquals(7, list.get(2)); }
@Test public void projectionWithArray() throws Exception { Expression expression = new SpelExpressionParser().parseRaw("#testArray.![wrapper.value]"); EvaluationContext context = new StandardEvaluationContext(); context.setVariable("testArray", IntegerTestBean.createArray()); Object value = expression.getValue(context); assertTrue(value.getClass().isArray()); TypedValue typedValue = new TypedValue(value); assertEquals(Number.class, typedValue.getTypeDescriptor().getElementTypeDescriptor().getType()); Number[] array = (Number[]) value; assertEquals(3, array.length); assertEquals(new Integer(5), array[0]); assertEquals(5.9f, array[1]); assertEquals(new Integer(7), array[2]); }
static IntegerTestBean[] createArray() { IntegerTestBean[] array = new IntegerTestBean[3]; for (int i = 0; i < 3; i++) { if (i == 1) { array[i] = new IntegerTestBean(5.9f); } else { array[i] = new IntegerTestBean(i + 5); } } return array; } }
static Iterable<IntegerTestBean> createIterable() { final Set<IntegerTestBean> set = createSet(); return new Iterable<IntegerTestBean>() { @Override public Iterator<IntegerTestBean> iterator() { return set.iterator(); } }; }
@Test public void projectionWithSet() throws Exception { Expression expression = new SpelExpressionParser().parseRaw("#testList.![wrapper.value]"); EvaluationContext context = new StandardEvaluationContext(); context.setVariable("testList", IntegerTestBean.createSet()); Object value = expression.getValue(context); assertTrue(value instanceof List); List<?> list = (List<?>) value; assertEquals(3, list.size()); assertEquals(5, list.get(0)); assertEquals(6, list.get(1)); assertEquals(7, list.get(2)); }
static List<IntegerTestBean> createList() { List<IntegerTestBean> list = new ArrayList<>(); for (int i = 0; i < 3; i++) { list.add(new IntegerTestBean(i + 5)); } return list; }