InternalMessage.builder().value(payload).inboundProperties(inboundProps).outboundProperties(outboundProps).build(); Splitter splitter = new Splitter(); Grabber grabber = new Grabber();
@Override public void run() { Message okMessage = InternalMessage.builder().value("OK").build(); BaseEventContext context = mock(BaseEventContext.class); when(context.getCorrelationId()).thenReturn("1"); CoreEvent event = CoreEvent.builder(context).message(okMessage).build(); try { event = validator.process(event); } catch (ValidationException e) { if (event != null) { processedEvents.incrementAndGet(); } return; } catch (Throwable e) { e.printStackTrace(); synchronized (errorHappenedInChildThreads) { errorHappenedInChildThreads = true; } } } }
@Test public void testStreamPayloadSerialization() throws Exception { InputStream stream = new ByteArrayInputStream(TEST_MESSAGE.getBytes()); final Message message = InternalMessage.builder().value(stream).addOutboundProperty("foo", "bar").build(); currentMuleContext.set(muleContext); InternalMessage deserializedMessage = serializationRoundtrip(message); assertEquals(byte[].class, deserializedMessage.getPayload().getDataType().getType()); byte[] payload = (byte[]) deserializedMessage.getPayload().getValue(); assertTrue(Arrays.equals(TEST_MESSAGE.getBytes(), payload)); }
properties.put("apple", apple); InternalMessage message = InternalMessage.builder().value(TEST_MESSAGE).outboundProperties(properties).build(); assertTrue(message.getOutboundProperty("boolean", false)); assertEquals(new Integer(24), message.getOutboundProperty("number", 0));
@Test public void idempotentReceiver() throws Exception { final BaseEventContext contextA = mock(BaseEventContext.class); when(contextA.getCorrelationId()).thenReturn("1"); Message okMessage = InternalMessage.builder().value("OK").build(); CoreEvent event = CoreEvent.builder(contextA).message(okMessage).build(); // This one will process the event on the target endpoint CoreEvent processedEvent = idempotent.process(event); assertThat(processedEvent, sameInstance(event)); final BaseEventContext contextB = mock(BaseEventContext.class); when(contextB.getCorrelationId()).thenReturn("1"); // This will not process, because the ID is a duplicate event = CoreEvent.builder(contextB).message(okMessage).build(); expected.expect(ValidationException.class); processedEvent = idempotent.process(event); }
private Message createMuleMessage() { return InternalMessage.builder().value(TEST_PAYLOAD) .addOutboundProperty("Message", "Message").build(); }
@Test public void setsDefaultInboundScopePropertyDataType() throws Exception { InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD).addInboundProperty(TEST_PROPERTY, TEST_PAYLOAD).build(); assertDefaultInboundPropertyDataType(message); }
@Test public void setsDefaultInboundPropertyDataType() throws Exception { InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD).addInboundProperty(TEST_PROPERTY, TEST_PAYLOAD).build(); assertDefaultInboundPropertyDataType(message); }
@Test public void setsCustomOutboundPropertyDataType() throws Exception { MediaType mediaType = APPLICATION_XML_CUSTOM; InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD) .addOutboundProperty(TEST_PROPERTY, TEST_PAYLOAD, mediaType).build(); assertOutboundPropertyDataType(message, DataType.builder().type(String.class).mediaType(mediaType).build()); }
@Test public void inboundPropertyMap() throws Exception { event = CoreEvent.builder(context) .message(InternalMessage.builder().value("").inboundProperties(singletonMap("foo", "bar")).build()) .build(); assertTrue(evaluate("message.inboundProperties", event) instanceof Map); }
@Test public void setsCustomPropertyDataType() throws Exception { MediaType mediaType = APPLICATION_XML_CUSTOM; InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD) .addOutboundProperty(TEST_PROPERTY, TEST_PAYLOAD, mediaType).build(); assertOutboundPropertyDataType(message, DataType.builder(STRING).mediaType(mediaType).build()); }
@Test public void setsDefaultOutboundScopePropertyDataType() throws Exception { InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD).addOutboundProperty(TEST_PROPERTY, TEST_PAYLOAD) .build(); assertDefaultOutboundPropertyDataType(message); }
@Test public void setsCustomInboundPropertyDataType() throws Exception { MediaType mediaType = APPLICATION_XML_CUSTOM; InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD) .addInboundProperty(TEST_PROPERTY, TEST_PAYLOAD, mediaType).build(); assertInboundPropertyDataType(message, DataType.builder().type(String.class).mediaType(mediaType).build()); }
@Test public void testNonSerializablePayload() throws Exception { // add a transformer to the registry that can convert a NonSerializable to byte[]. This // will be used during Serialization ((MuleContextWithRegistry) muleContext).getRegistry().registerTransformer(new NonSerializableToByteArray()); final Message message = InternalMessage.builder().value(new NonSerializable()).addOutboundProperty("foo", "bar").build(); currentMuleContext.set(muleContext); InternalMessage deserializedMessage = serializationRoundtrip(message); assertTrue(deserializedMessage.getPayload().getValue() instanceof byte[]); assertEquals(INNER_TEST_MESSAGE, getPayloadAsString(deserializedMessage)); }
@Test public void assignValueToInboundProperty() throws Exception { event = CoreEvent.builder(context) .message(InternalMessage.builder().value("").inboundProperties(singletonMap("foo", "bar")).build()) .build(); assertUnsupportedOperation("message.inboundProperties['foo']='bar'", event); }
private CoreEvent createMuleEventWithFlowVarsAndProperties(int numProperties) { InternalMessage.Builder builder = InternalMessage.builder().value(PAYLOAD); for (int i = 1; i <= numProperties; i++) { builder.addInboundProperty("InBoUnDpRoPeRtYkEy" + i, "val"); } Message message = builder.build(); CoreEvent event = createMuleEvent(message, numProperties); return event; }
@Test public void inboundProperty() throws Exception { event = CoreEvent.builder(context) .message(InternalMessage.builder().value("").inboundProperties(singletonMap("foo", "bar")).build()) .build(); assertEquals("bar", evaluate("message.inboundProperties['foo']", event)); }
@Test public void setsDefaultOutboundPropertyDataType() throws Exception { InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD).addOutboundProperty(TEST_PROPERTY, TEST_PAYLOAD) .build(); assertDefaultOutboundPropertyDataType(message); }
@Test public void testSerializablePayload() throws Exception { final Message message = InternalMessage.builder().value(TEST_MESSAGE).addOutboundProperty("foo", "bar").build(); Message deserializedMessage = serializationRoundtrip(message); assertEquals(TEST_MESSAGE, deserializedMessage.getPayload().getValue()); assertEquals("bar", ((InternalMessage) deserializedMessage).getOutboundProperty("foo")); }
private Message createMuleMessageWithProperties(int numProperties) { Builder builder = InternalMessage.builder().value(PAYLOAD); for (int i = 1; i <= numProperties; i++) { builder.addInboundProperty("InBoUnDpRoPeRtYkEy" + i, "val"); } for (int i = 1; i <= numProperties; i++) { builder.addOutboundProperty("OuTBoUnDpRoPeRtYkEy" + i, "val"); } return builder.build(); }