use of org.mule.runtime.core.internal.transformer.builder.MockConverterBuilder in project mule by mulesoft.
the class TransformationServiceTestCase method appliesImplicitConversionWhenAvailable.
@Test
public void appliesImplicitConversionWhenAvailable() throws MuleException {
Transformer transformer = new MockTransformerBuilder().from(DataType.BYTE_ARRAY).to(DataType.STRING).returning("bar").build();
Transformer converter = new MockConverterBuilder().from(DataType.STRING).to(DataType.BYTE_ARRAY).returning("bar".getBytes()).build();
when(conversionResolver.resolve(any(DataType.class), anyList())).thenReturn(converter);
Message message = of("TEST");
message = transformationService.applyTransformers(message, null, transformer);
assertEquals("bar", message.getPayload().getValue());
verifyTransformerExecuted(transformer);
verifyTransformerExecuted(converter);
}
use of org.mule.runtime.core.internal.transformer.builder.MockConverterBuilder in project mule by mulesoft.
the class TransformationServiceTestCase method skipsConverterAppliesTransformer.
@Test
public void skipsConverterAppliesTransformer() throws MuleException {
// Converter(B -> D) Transformer(C->D), payload C: skips converter, transforms C to D -> OK
Transformer converter1 = new MockConverterBuilder().from(dataTypeB).to(dataTypeD).build();
Transformer transformer2 = new MockTransformerBuilder().from(dataTypeC).to(dataTypeD).returning(new D()).build();
Message message = of(new C());
message = transformationService.applyTransformers(message, null, converter1, transformer2);
assertTrue(message.getPayload().getValue() instanceof D);
verifyTransformerNotExecuted(converter1);
verifyTransformerExecuted(transformer2);
}
use of org.mule.runtime.core.internal.transformer.builder.MockConverterBuilder in project mule by mulesoft.
the class TransformationServiceTestCase method failsOnConverterWhenSourceAndReturnTypeDoesNotMatchAndThereIsNoImplicitConversion2.
@Test
public void failsOnConverterWhenSourceAndReturnTypeDoesNotMatchAndThereIsNoImplicitConversion2() throws MuleException {
// Converter(B->C), payload A: FAIL
ByteArrayInputStream payload = new ByteArrayInputStream(TEST_PAYLOAD.getBytes());
DataType originalSourceType = DataType.fromType(payload.getClass());
Transformer converter1 = new MockConverterBuilder().from(originalSourceType).to(dataTypeC).build();
A transformedPayload = new A();
when(converter1.transform(any())).thenReturn(transformedPayload);
Message message = of(payload);
try {
transformationService.applyTransformers(message, null, converter1);
fail("Transformation is supposed to fail");
} catch (MessageTransformerException expected) {
assertThat(expected.getErrorMessage().getPayload().getValue(), is(transformedPayload));
}
}
use of org.mule.runtime.core.internal.transformer.builder.MockConverterBuilder in project mule by mulesoft.
the class TransformationServiceTestCase method appliesBothConverters.
@Test
public void appliesBothConverters() throws MuleException {
// Converter(B -> C) Converter(C->D), payload B: converts B->C, C->D
Transformer converter1 = new MockConverterBuilder().from(dataTypeB).to(dataTypeC).returning(new C()).build();
Transformer converter2 = new MockConverterBuilder().from(dataTypeC).to(dataTypeD).returning(new D()).build();
Message message = of(new B());
message = transformationService.applyTransformers(message, null, converter1, converter2);
assertTrue(message.getPayload().getValue() instanceof D);
verifyTransformerExecuted(converter1);
verifyTransformerExecuted(converter2);
}
use of org.mule.runtime.core.internal.transformer.builder.MockConverterBuilder in project mule by mulesoft.
the class TransformationServiceTestCase method skipBothConvertersButPayloadMatchesExpectedOutputType.
@Test
public void skipBothConvertersButPayloadMatchesExpectedOutputType() throws MuleException {
// Converter(B -> C) Converter(C->D), payload D: skips converter(B-C), skips converter(C->D), but D is the expected output
// type -> OK
Transformer converter1 = new MockConverterBuilder().from(dataTypeB).to(dataTypeC).build();
Transformer converter2 = new MockConverterBuilder().from(dataTypeC).to(dataTypeD).build();
Message message = of(new D());
message = transformationService.applyTransformers(message, null, converter1, converter2);
assertTrue(message.getPayload().getValue() instanceof D);
verifyTransformerNotExecuted(converter1);
verifyTransformerNotExecuted(converter2);
}
Aggregations