/* * 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.config.spring.dsl.api; import static java.lang.String.format; import static org.hamcrest.core.Is.is; import static org.junit.rules.ExpectedException.none; import static org.mule.runtime.dsl.api.component.ComponentBuildingDefinition.KEY_TYPE_CONVERTER_AND_NO_MAP_TYPE; import static org.mule.runtime.dsl.api.component.ComponentBuildingDefinition.TYPE_CONVERTER_AND_NO_SIMPLE_TYPE_MESSAGE_TEMPLATE; import static org.mule.runtime.dsl.api.component.ComponentBuildingDefinition.TYPE_CONVERTER_AND_UNKNOWN_TYPE_MESSAGE; import static org.mule.runtime.dsl.api.component.TypeDefinition.fromConfigurationAttribute; import static org.mule.runtime.dsl.api.component.TypeDefinition.fromType; import org.mule.runtime.dsl.api.component.ComponentBuildingDefinition; import org.mule.runtime.dsl.api.component.TypeConverter; import org.mule.tck.junit4.AbstractMuleTestCase; import org.mule.tck.size.SmallTest; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @SmallTest public class ComponentBuildingDefinitionTestCase extends AbstractMuleTestCase { @Rule public ExpectedException expectException = none(); private ComponentBuildingDefinition.Builder baseDefinition = new ComponentBuildingDefinition.Builder().withIdentifier("test").withNamespace("namespace"); @Test public void simpleTypeWithTypeConverter() { baseDefinition.copy().withTypeDefinition(fromType(Integer.class)).withTypeConverter(getFakeTypeConverter()).build(); } @Test public void typeFromConfigAndTypeConverter() { expectException.expectMessage(is(TYPE_CONVERTER_AND_UNKNOWN_TYPE_MESSAGE)); baseDefinition.copy().withTypeDefinition(fromConfigurationAttribute("class")).withTypeConverter(getFakeTypeConverter()) .build(); } @Test public void noSimpleTypeWithTypeConverter() { expectException.expectMessage(is(format(TYPE_CONVERTER_AND_NO_SIMPLE_TYPE_MESSAGE_TEMPLATE, Object.class.getName()))); baseDefinition.copy().withTypeDefinition(fromType(Object.class)).withTypeConverter(getFakeTypeConverter()).build(); } @Test public void keyTypeConverterAndNoMapType() { expectException.expectMessage(is(KEY_TYPE_CONVERTER_AND_NO_MAP_TYPE)); baseDefinition.copy().withTypeDefinition(fromType(Object.class)).withKeyTypeConverter(getFakeTypeConverter()).build(); } private TypeConverter getFakeTypeConverter() { return o -> null; } }