@Benchmark public Message copyWith20PropertiesWrite1Outbound() { Builder builder = InternalMessage.builder(messageWith20Properties); for (int j = 1; j <= 10; j++) { builder.addInboundProperty("newKey" + j, "val"); } return builder.build(); }
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(); }
@Test public void exception() throws Exception { CoreEvent event = createEvent(); RuntimeException rte = new RuntimeException(); when(mockError.getCause()).thenReturn(rte); when(mockError.getErrorType()).thenReturn(mockErrorType); event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).build()).build(); Object exception = evaluate("exception", event); assertThat(exception, is(instanceOf(MessagingException.class))); assertThat(((MessagingException) exception).getCause(), is(rte)); }
@Test public void assignException() throws Exception { CoreEvent event = createEvent(); event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).build()).build(); RuntimeException runtimeException = new RuntimeException(); when(mockError.getCause()).thenReturn(runtimeException); when(mockError.getErrorType()).thenReturn(mockErrorType); assertImmutableVariable("exception='other'", event); }
@Test public void createMessageViaMessageInterfaceFromCopy() { Message messageCopy = InternalMessage.builder(createTestMessage()).value(true).attributesValue(BASE_ATTRIBUTES).build(); assertThat(messageCopy.getPayload().getValue(), is(true)); assertThat(messageCopy.getPayload().getDataType(), is(assignableTo(BOOLEAN))); assertThat(messageCopy.getAttributes().getValue(), is(BASE_ATTRIBUTES)); assertThat(messageCopy.getAttributes().getDataType(), is(BASE_ATTRIBUTES_DATATYPE)); }
@SuppressWarnings("unchecked") @Test public void outboundValues() throws Exception { event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).addOutboundProperty("foo", "abc") .addOutboundProperty("bar", "xyz").build()).build(); Collection<DataHandler> values = (Collection<DataHandler>) evaluate("message.outboundProperties.values()", event); assertEquals(2, values.size()); values.contains("abc"); values.contains("xyz"); }
@Test public void setsDefaultOutboundPropertyDataType() throws Exception { InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD).addOutboundProperty(TEST_PROPERTY, TEST_PAYLOAD) .build(); assertDefaultOutboundPropertyDataType(message); }
@Test public void outboundKeySet() throws Exception { event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).addOutboundProperty("foo", "abc") .addOutboundProperty("bar", "xyz").build()).build(); assertThat(evaluate("message.outboundProperties.keySet().toArray()[0]", event), anyOf(equalTo("foo"), equalTo("bar"))); assertThat(evaluate("message.outboundProperties.keySet().toArray()[1]", event), anyOf(equalTo("foo"), equalTo("bar"))); }
@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 Processor createSetStringMessageProcessor(final String appendText) { return event -> { return CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).value(appendText).build()).build(); }; }
@Test public void setsPayloadWithDataType() throws Exception { Message muleMessage = of(TEST_PAYLOAD); assertDataType(InternalMessage.builder(muleMessage).value(1).mediaType(APPLICATION_XML_CUSTOM).build(), Integer.class, APPLICATION_XML, CUSTOM_ENCODING); }
@Test public void outboundClear() throws Exception { event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).addOutboundProperty("foo", "abc") .addOutboundProperty("bar", "xyz").build()).build(); CoreEvent.Builder eventBuilder = CoreEvent.builder(event); evaluate("message.outboundProperties.clear()", event, eventBuilder); assertEquals(0, ((InternalMessage) eventBuilder.build().getMessage()).getOutboundPropertyNames().size()); }
@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 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")); }
@Test public void outboundSize() throws Exception { event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).addOutboundProperty("foo", "abc") .addOutboundProperty("bar", "xyz").build()).build(); assertEquals(2, evaluate("message.outboundProperties.size()", event)); }
@Test public void inboundContainsValue() throws Exception { Message message = event.getMessage(); event = CoreEvent.builder(event).message(InternalMessage.builder(message).addInboundProperty("foo", "abc").build()).build(); assertTrue((Boolean) evaluate("message.inboundProperties.containsValue('abc')", event)); assertFalse((Boolean) evaluate("message.inboundProperties.containsValue('xyz')", event)); }
@Test public void outboundContainsValue() throws Exception { event = CoreEvent.builder(event) .message(InternalMessage.builder(event.getMessage()).addOutboundProperty("foo", "abc").build()) .build(); assertTrue((Boolean) evaluate("message.outboundProperties.containsValue('abc')", event)); assertFalse((Boolean) evaluate("message.outboundProperties.containsValue('xyz')", event)); }
private void doPayloadDataTypeTest(String expression) throws Exception { final DataType expectedDataType = DataType.builder().type(String.class).mediaType(JSON).charset(CUSTOM_ENCODING).build(); MVELExpressionLanguage expressionLanguage = new MVELExpressionLanguage(muleContext); final CompiledExpression compiledExpression = (CompiledExpression) compileExpression(expression, new ParserContext(expressionLanguage.getParserConfiguration())); PrivilegedEvent event = PrivilegedEvent.builder(testEvent()).message(InternalMessage.builder(testEvent().getMessage()).value(TEST_MESSAGE) .mediaType(expectedDataType.getMediaType()).build()).build(); assertThat(dataTypeResolver.resolve(event, compiledExpression), like(String.class, JSON, CUSTOM_ENCODING)); } }