@Test public void outboundProperty() { InternalMessage message = new DefaultMessageBuilder().value(TEST_PAYLOAD).addOutboundProperty(PROPERTY_KEY, PROPERTY_VALUE) .build(); assertThat(message.getOutboundProperty(PROPERTY_KEY), equalTo(PROPERTY_VALUE)); assertThat(message.getOutboundPropertyDataType(PROPERTY_KEY), equalTo(STRING)); assertThat(message.getOutboundPropertyNames(), hasSize(1)); assertThat(message.getOutboundPropertyNames(), hasItem(PROPERTY_KEY)); }
@Test public void outboundPropertyDataType() { InternalMessage message = new DefaultMessageBuilder().value(TEST_PAYLOAD) .addOutboundProperty(PROPERTY_KEY, PROPERTY_VALUE, HTML_STRING).build(); assertThat(message.getOutboundProperty(PROPERTY_KEY), equalTo(PROPERTY_VALUE)); assertThat(message.getOutboundPropertyDataType(PROPERTY_KEY), equalTo(HTML_STRING)); assertThat(message.getOutboundPropertyNames(), hasSize(1)); assertThat(message.getOutboundPropertyNames(), hasItem(PROPERTY_KEY)); }
@Test public void testClearProperties() { InternalMessage payload = InternalMessage.builder(createMuleMessage()).addOutboundProperty(FOO_PROPERTY, "fooValue").build(); assertThat(payload.getOutboundPropertyNames(), hasSize(2)); assertThat(payload.getInboundPropertyNames(), empty()); payload = InternalMessage.builder(payload).outboundProperties(emptyMap()).build(); assertThat(payload.getOutboundPropertyNames(), empty()); // See http://www.mulesoft.org/jira/browse/MULE-4968 for additional test needed here }
@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)); }
@Benchmark public Message addRemoveMessageProperty() { Message temp = InternalMessage.builder(message).addOutboundProperty(KEY, VALUE).build(); return InternalMessage.builder(temp).removeOutboundProperty(KEY).build(); }
@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 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 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 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 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); }
@Benchmark public CoreEvent copyWith10FlowVarsAnd10PropertiesWrite1OfEach() throws Exception { return PrivilegedEvent.builder(eventWith10VariablesProperties) .session(new DefaultMuleSession(((PrivilegedEvent) eventWith10VariablesProperties).getSession())) .addVariable("newKey", "val") .message(InternalMessage.builder(eventWith10VariablesProperties.getMessage()).addInboundProperty("newKey", "val") .addOutboundProperty("newKey", "val").build()) .build(); }
@Benchmark public Message addRemoveMessagePropertyMessageWith100Properties() { Message temp = InternalMessage.builder(messageWith100Properties).addOutboundProperty(KEY, VALUE).build(); return InternalMessage.builder(temp).removeOutboundProperty(KEY).build(); }
@Test public void outboundIsEmpty() throws Exception { assertTrue((Boolean) evaluate("message.outboundProperties.isEmpty()", event)); event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).addOutboundProperty("foo", "abc") .addOutboundProperty("bar", "xyz").build()).build(); assertFalse((Boolean) evaluate("message.outboundProperties.isEmpty()", event)); }
@SuppressWarnings("unchecked") @Test public void outboundEntrySet() throws Exception { event = CoreEvent.builder(event).message(InternalMessage.builder(event.getMessage()).addOutboundProperty("foo", "abc") .addOutboundProperty("bar", "xyz").build()).build(); Set<Map.Entry<String, Object>> entrySet = (Set<Entry<String, Object>>) evaluate("message.outboundProperties.entrySet()", event); assertEquals(2, entrySet.size()); entrySet.contains(new DefaultMapEntry("foo", "abc")); entrySet.contains(new DefaultMapEntry("bar", "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 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(); }
@Benchmark public Message addRemoveMessagePropertyMessageWith20Properties() { Message temp = InternalMessage.builder(messageWith20Properties).addOutboundProperty(KEY, VALUE).build(); return InternalMessage.builder(temp).removeOutboundProperty(KEY).build(); }
@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)); }