@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); }
@Test public void updatesEncodingOnTransformation() throws Exception { Message message = Message.builder().value(TEST_PAYLOAD).mediaType(APPLICATION_XML_DEFAULT).build(); Transformer transformer = mock(Transformer.class); when(transformer.isSourceDataTypeSupported(any())).thenReturn(true); DataType outputDataType = DataType.builder().type(Integer.class).charset(CUSTOM_ENCODING).build(); when(transformer.getReturnDataType()).thenReturn(outputDataType); when(transformer.transform(anyObject())).thenReturn(Integer.valueOf(1)); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, CUSTOM_ENCODING); }
@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(any(Message.class))).thenReturn(1); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, CUSTOM_ENCODING); }
@Test public void updatesTypeOnTransformation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_DEFAULT).build(); Transformer transformer = mock(Transformer.class); when(transformer.isSourceDataTypeSupported(any())).thenReturn(true); DataType outputDataType = DataType.builder().type(Integer.class).mediaType(ANY).charset(DEFAULT_ENCODING).build(); when(transformer.getReturnDataType()).thenReturn(outputDataType); when(transformer.transform(anyObject())).thenReturn(1); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, DEFAULT_ENCODING); }
@Test public void updatesDataTypeWhenPayloadIsReplacedWithNullPayload() throws Exception { Message muleMessage = of(TEST_PAYLOAD); assertDataType(InternalMessage.builder(muleMessage).nullValue().build(), Object.class, ANY, null); }
@Test public void setsNullPayloadWithDataType() throws Exception { Message muleMessage = of(TEST_PAYLOAD); assertDataType(InternalMessage.builder(muleMessage).nullValue().mediaType(APPLICATION_XML_CUSTOM).build(), Object.class, APPLICATION_XML, CUSTOM_ENCODING); }
@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 overridesDataTypeFromPreviousMessageOnCreation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_CUSTOM).build(); assertDataType(InternalMessage.builder(message).value("TEST").build(), String.class, APPLICATION_XML, CUSTOM_ENCODING); }
@Test public void setsDataTypeFromPreviousMessageOnCreation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_CUSTOM).build(); assertDataType(InternalMessage.builder(message).build(), message.getPayload().getDataType()); }
@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); }
@Test public void updatesEncodingOnTransformation() throws Exception { Message message = Message.builder().value(TEST_PAYLOAD).mediaType(APPLICATION_XML_DEFAULT).build(); Transformer transformer = mock(Transformer.class); when(transformer.isSourceDataTypeSupported(any())).thenReturn(true); DataType outputDataType = DataType.builder().type(Integer.class).charset(CUSTOM_ENCODING).build(); when(transformer.getReturnDataType()).thenReturn(outputDataType); when(transformer.transform(anyObject())).thenReturn(Integer.valueOf(1)); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, CUSTOM_ENCODING); }
@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); }
@Test public void updatesTypeOnTransformation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_DEFAULT).build(); Transformer transformer = mock(Transformer.class); when(transformer.isSourceDataTypeSupported(any())).thenReturn(true); DataType outputDataType = DataType.builder().type(Integer.class).mediaType(ANY).charset(DEFAULT_ENCODING).build(); when(transformer.getReturnDataType()).thenReturn(outputDataType); when(transformer.transform(anyObject())).thenReturn(1); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, DEFAULT_ENCODING); }
@Test public void updatesDataTypeWhenPayloadIsReplacedWithNullPayload() throws Exception { Message muleMessage = of(TEST_PAYLOAD); assertDataType(InternalMessage.builder(muleMessage).nullValue().build(), Object.class, ANY, null); }
@Test public void setsNullPayloadWithDataType() throws Exception { Message muleMessage = of(TEST_PAYLOAD); assertDataType(InternalMessage.builder(muleMessage).nullValue().mediaType(APPLICATION_XML_CUSTOM).build(), Object.class, APPLICATION_XML, CUSTOM_ENCODING); }
@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 overridesDataTypeFromPreviousMessageOnCreation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_CUSTOM).build(); assertDataType(InternalMessage.builder(message).value("TEST").build(), String.class, APPLICATION_XML, CUSTOM_ENCODING); }
@Test public void setsDataTypeFromPreviousMessageOnCreation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_CUSTOM).build(); assertDataType(InternalMessage.builder(message).build(), message.getPayload().getDataType()); }