@Test public void testProcessAndSendWithSizeExpressionEvaluated() throws Exception { when(group.getMessages()).thenReturn(messages); processor = new ExpressionEvaluatingMessageGroupProcessor("#root.size()"); Object result = processor.processMessageGroup(group); assertTrue(result instanceof Message<?>); Message<?> resultMessage = (Message<?>) result; assertEquals(5, resultMessage.getPayload()); }
@Test public void testProcessAndCheckHeaders() throws Exception { when(group.getMessages()).thenReturn(messages); processor = new ExpressionEvaluatingMessageGroupProcessor("#root"); Object result = processor.processMessageGroup(group); assertTrue(result instanceof Message<?>); Message<?> resultMessage = (Message<?>) result; assertEquals("bar", resultMessage.getHeaders().get("foo")); }
@Test public void testProcessAndSendWithFilterAndProjectionAndMethodInvokingExpressionEvaluated() throws Exception { when(group.getMessages()).thenReturn(messages); processor = new ExpressionEvaluatingMessageGroupProcessor( String.format("T(%s).sum(?[payload>2].![payload])", getClass().getName())); Object result = processor.processMessageGroup(group); assertTrue(result instanceof Message<?>); Message<?> resultMessage = (Message<?>) result; assertEquals(3 + 4 + 5, resultMessage.getPayload()); }
@Test public void testProcessAndSendWithFilterAndProjectionExpressionEvaluated() throws Exception { when(group.getMessages()).thenReturn(messages); processor = new ExpressionEvaluatingMessageGroupProcessor("?[payload>2].![payload]"); Object result = processor.processMessageGroup(group); assertTrue(result instanceof Message<?>); Message<?> resultMessage = (Message<?>) result; assertTrue(resultMessage.getPayload() instanceof Collection<?>); Collection<?> list = (Collection<?>) resultMessage.getPayload(); assertEquals(3, list.size()); assertTrue(list.contains(3)); assertTrue(list.contains(4)); assertTrue(list.contains(5)); }