use of org.mule.runtime.core.api.transformer.Transformer in project mule by mulesoft.
the class DynamicDataTypeConverterResolverTestCase method doesNotFailWhenThereIsNoDataTypeResolution.
@Test
public void doesNotFailWhenThereIsNoDataTypeResolution() throws TransformerException {
when(muleContext.getRegistry()).thenReturn(muleRegistry);
when(muleRegistry.lookupTransformer(Mockito.any(DataType.class), Mockito.any(DataType.class))).thenReturn(null);
DynamicDataTypeConversionResolver resolver = new DynamicDataTypeConversionResolver(muleContext);
List<DataType> targetValues = new ArrayList<>();
targetValues.add(DataType.STRING);
Transformer resolvedConverter = resolver.resolve(DataType.INPUT_STREAM, targetValues);
assertEquals(null, resolvedConverter);
}
use of org.mule.runtime.core.api.transformer.Transformer in project mule by mulesoft.
the class TransformDiscoveryTestCase method testSimpleDiscovery.
@Test
public void testSimpleDiscovery() throws Exception {
MuleRegistry registry = ((MuleContextWithRegistries) muleContext).getRegistry();
Transformer t = registry.lookupTransformer(DataType.STRING, DataType.fromType(Apple.class));
assertNotNull(t);
assertEquals(StringToApple.class, t.getClass());
t = registry.lookupTransformer(DataType.STRING, DataType.fromType(Orange.class));
assertNotNull(t);
assertEquals(StringToOrange.class, t.getClass());
try {
registry.lookupTransformer(DataType.STRING, DataType.fromType(Banana.class));
fail("There is no transformer to go from String to Banana");
} catch (TransformerException e) {
// expected
}
registry.registerTransformer(new StringToRedApple());
t = registry.lookupTransformer(DataType.STRING, DataType.fromType(RedApple.class));
assertNotNull(t);
assertEquals(StringToRedApple.class, t.getClass());
}
use of org.mule.runtime.core.api.transformer.Transformer in project mule by mulesoft.
the class TransformerWeightingTestCase method testCompareWeightingWithExactMatch.
@Test
public void testCompareWeightingWithExactMatch() throws Exception {
Transformer trans1 = new MockConverterBuilder().from(DataType.fromType(Serializable.class)).to(DataType.BYTE_ARRAY).build();
Transformer trans2 = new MockConverterBuilder().from(DataType.fromType(IOException.class)).to(DataType.BYTE_ARRAY).build();
TransformerWeighting weighting1 = new TransformerWeighting(IOException.class, byte[].class, trans1);
TransformerWeighting weighting2 = new TransformerWeighting(IOException.class, byte[].class, trans2);
assertFalse(weighting1.isNotMatch());
assertFalse(weighting2.isNotMatch());
assertFalse(weighting1.isExactMatch());
assertTrue(weighting2.isExactMatch());
// Weighting2 two is an exact match
assertEquals(1, weighting2.compareTo(weighting1));
assertEquals(3, weighting1.getInputWeighting());
assertEquals(0, weighting2.getInputWeighting());
assertEquals(0, weighting1.getOutputWeighting());
assertEquals(0, weighting2.getOutputWeighting());
}
use of org.mule.runtime.core.api.transformer.Transformer in project mule by mulesoft.
the class TransformerWeightingTestCase method testCompareWeightingWithNoMatch.
@Test
public void testCompareWeightingWithNoMatch() throws Exception {
Transformer trans1 = new MockConverterBuilder().from(DataType.fromType(Serializable.class)).to(DataType.BYTE_ARRAY).build();
Transformer trans2 = new MockConverterBuilder().from(DataType.fromType(FruitBowl.class)).to(DataType.BYTE_ARRAY).build();
TransformerWeighting weighting1 = new TransformerWeighting(IOException.class, byte[].class, trans1);
TransformerWeighting weighting2 = new TransformerWeighting(IOException.class, byte[].class, trans2);
assertFalse(weighting1.isNotMatch());
assertTrue(weighting2.isNotMatch());
assertFalse(weighting1.isExactMatch());
assertFalse(weighting2.isExactMatch());
// Weighting2 two is not a match
assertEquals(-1, weighting2.compareTo(weighting1));
assertEquals(3, weighting1.getInputWeighting());
assertEquals(-1, weighting2.getInputWeighting());
assertEquals(0, weighting1.getOutputWeighting());
assertEquals(0, weighting2.getOutputWeighting());
}
use of org.mule.runtime.core.api.transformer.Transformer in project mule by mulesoft.
the class GraphTransformerResolverTestCase method cachesResolvedTransformer.
@Test
public void cachesResolvedTransformer() throws ResolverException {
Converter xmlToJson = new MockConverterBuilder().from(XML_DATA_TYPE).to(JSON_DATA_TYPE).build();
Converter inputStreamToXml = new MockConverterBuilder().from(INPUT_STREAM_DATA_TYPE).to(XML_DATA_TYPE).build();
graphResolver.transformerChange(inputStreamToXml, TransformerResolver.RegistryAction.ADDED);
graphResolver.transformerChange(xmlToJson, TransformerResolver.RegistryAction.ADDED);
Transformer transformer1 = graphResolver.resolve(INPUT_STREAM_DATA_TYPE, JSON_DATA_TYPE);
Transformer transformer2 = graphResolver.resolve(INPUT_STREAM_DATA_TYPE, JSON_DATA_TYPE);
assertSame(transformer1, transformer2);
}
Aggregations