/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.core.agent.registry; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.mule.runtime.api.metadata.DataType; import org.mule.runtime.core.api.transformer.Transformer; import org.mule.runtime.core.transformer.builder.MockConverterBuilder; import org.mule.tck.junit4.AbstractMuleContextTestCase; import org.mule.tck.testmodels.fruit.BloodOrange; import org.mule.tck.testmodels.fruit.Fruit; import org.mule.tck.testmodels.fruit.Orange; import java.util.List; import org.junit.Before; import org.junit.Test; public class MuleRegistryHelperTestCase extends AbstractMuleContextTestCase { private static final DataType ORANGE_DATA_TYPE = DataType.fromType(Orange.class); private static final DataType BLOOD_ORANGE_DATA_TYPE = DataType.fromType(BloodOrange.class); private static final DataType FRUIT_DATA_TYPE = DataType.fromType(Fruit.class); private Transformer t1; private Transformer t2; @Before public void setUp() throws Exception { t1 = new MockConverterBuilder().named("t1").from(ORANGE_DATA_TYPE).to(FRUIT_DATA_TYPE).build(); muleContext.getRegistry().registerTransformer(t1); t2 = new MockConverterBuilder().named("t2").from(DataType.OBJECT).to(FRUIT_DATA_TYPE).build(); muleContext.getRegistry().registerTransformer(t2); } @Test public void lookupsTransformersByType() throws Exception { List trans = muleContext.getRegistry().lookupTransformers(BLOOD_ORANGE_DATA_TYPE, FRUIT_DATA_TYPE); assertEquals(2, trans.size()); assertTrue(trans.contains(t1)); assertTrue(trans.contains(t2)); } @Test public void lookupsTransformerByPriority() throws Exception { Transformer result = muleContext.getRegistry().lookupTransformer(BLOOD_ORANGE_DATA_TYPE, FRUIT_DATA_TYPE); assertNotNull(result); assertEquals(t1, result); } }