use of org.mule.runtime.api.metadata.DataType in project mule by mulesoft.
the class TransformerCachingTestCase method testCacheUpdate.
@Test
public void testCacheUpdate() throws Exception {
DataType sourceType = DataType.fromType(FilterInputStream.class);
MuleRegistry registry = ((MuleContextWithRegistries) muleContext).getRegistry();
Transformer trans = registry.lookupTransformer(sourceType, BYTE_ARRAY);
assertNotNull(trans);
assertTrue(trans instanceof InputStreamToByteArray);
Transformer trans2 = new FilterInputStreamToByteArray();
registry.registerTransformer(trans2);
trans = registry.lookupTransformer(sourceType, BYTE_ARRAY);
assertNotNull(trans);
assertTrue(trans instanceof FilterInputStreamToByteArray);
trans = registry.lookupTransformer(INPUT_STREAM, BYTE_ARRAY);
assertNotNull(trans);
assertTrue(trans instanceof InputStreamToByteArray);
registry.unregisterTransformer(trans2.getName());
trans = registry.lookupTransformer(sourceType, BYTE_ARRAY);
assertNotNull(trans);
assertTrue(trans instanceof InputStreamToByteArray);
}
use of org.mule.runtime.api.metadata.DataType in project mule by mulesoft.
the class DefaultRouterResultsHandlerTestCase method aggregateMultipleEvents.
@Test
public void aggregateMultipleEvents() throws Exception {
DataType simpleDateType1 = DataType.builder().type(String.class).mediaType("text/plain").build();
Message message1 = Message.of("test event A");
Message message2 = Message.of("test event B");
Message message3 = Message.of("test event C");
PrivilegedEvent event1 = InternalEvent.builder(context).message(message1).addVariable("key1", "value1", simpleDateType1).build();
MuleSession session = event1.getSession();
PrivilegedEvent event2 = InternalEvent.builder(context).message(message2).session(session).addVariable("key2", "value2", simpleDateType1).build();
InternalEvent event3 = InternalEvent.builder(context).message(message3).session(session).addVariable("key3", "value3", simpleDateType1).build();
event1.getSession().setProperty("key", "value");
event2.getSession().setProperty("key1", "value1");
event2.getSession().setProperty("key2", "value2");
event3.getSession().setProperty("KEY2", "value2NEW");
event3.getSession().setProperty("key3", "value3");
List<CoreEvent> events = new ArrayList<>();
events.add(event2);
events.add(event3);
PrivilegedEvent result = (PrivilegedEvent) resultsHandler.aggregateResults(events, event1);
assertThat(result, notNullValue());
assertThat((List<InternalMessage>) result.getMessage().getPayload().getValue(), hasSize(2));
assertThat(result.getMessage().getPayload().getValue(), instanceOf(List.class));
assertThat(((List<InternalMessage>) result.getMessage().getPayload().getValue()).get(0), is(message2));
assertThat(((List<InternalMessage>) result.getMessage().getPayload().getValue()).get(1), is(message3));
// Because a new MuleMessageCollection is created, propagate properties from
// original event
assertThat(result.getVariables().get("key1").getValue(), equalTo("value1"));
assertThat(result.getVariables().get("key1").getDataType(), equalTo(simpleDateType1));
assertThat(result.getVariables().get("key2").getValue(), equalTo("value2"));
assertThat(result.getVariables().get("key3").getValue(), equalTo("value3"));
// Root id
assertThat(result.getCorrelationId(), equalTo(event1.getCorrelationId()));
assertThat(result.getSession().getProperty("key"), is("value"));
assertThat(result.getSession().getProperty("key1"), is("value1"));
assertThat(result.getSession().getProperty("key2"), is("value2NEW"));
assertThat(result.getSession().getProperty("key3"), is("value3"));
assertThat(result.getSession().getProperty("key4"), nullValue());
}
use of org.mule.runtime.api.metadata.DataType in project mule by mulesoft.
the class MuleMessageDataTypePropagationTestCase method assertVariableDataType.
private void assertVariableDataType(CoreEvent event, DataType dataType) {
DataType actualDataType = event.getVariables().get(TEST_PROPERTY).getDataType();
assertThat(actualDataType, like(dataType));
}
use of org.mule.runtime.api.metadata.DataType in project mule by mulesoft.
the class MuleMessageDataTypePropagationTestCase method maintainsCurrentDataTypeClassWhenTransformerOutputTypeIsObject.
@Test
public void maintainsCurrentDataTypeClassWhenTransformerOutputTypeIsObject() throws Exception {
Message message = of(TEST_PAYLOAD);
Transformer transformer = mock(Transformer.class);
when(transformer.isSourceDataTypeSupported(any())).thenReturn(true);
DataType outputDataType = DataType.builder().type(Object.class).mediaType(ANY).build();
when(transformer.getReturnDataType()).thenReturn(outputDataType);
when(transformer.transform(message)).thenReturn(TEST_PAYLOAD);
CoreEvent muleEvent = mock(CoreEvent.class);
Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer));
assertDataType(result, String.class, ANY, DEFAULT_ENCODING);
}
use of org.mule.runtime.api.metadata.DataType in project mule by mulesoft.
the class MuleMessageDataTypePropagationTestCase method updatesMimeTypeOnTransformation.
@Test
public void updatesMimeTypeOnTransformation() throws Exception {
Message message = Message.builder().value(TEST_PAYLOAD).mediaType(ANY.withCharset(CUSTOM_ENCODING)).build();
Transformer transformer = mock(Transformer.class);
when(transformer.isSourceDataTypeSupported(any())).thenReturn(true);
DataType outputDataType = DataType.builder().type(Integer.class).mediaType(APPLICATION_XML).build();
when(transformer.getReturnDataType()).thenReturn(outputDataType);
when(transformer.transform(anyString())).thenReturn(1);
CoreEvent muleEvent = mock(CoreEvent.class);
Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer));
assertDataType(result, Integer.class, APPLICATION_XML, CUSTOM_ENCODING);
}
Aggregations