/* * 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.test.module.extension.parameter.resolver; import static java.util.Optional.empty; import static java.util.Optional.of; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import org.mule.runtime.extension.api.annotation.Ignore; import org.mule.runtime.extension.api.runtime.parameter.ParameterResolver; import org.mule.test.heisenberg.extension.model.KnockeableDoor; import org.mule.test.parameter.resolver.extension.extension.ParameterResolverExtension; import org.mule.test.parameter.resolver.extension.extension.SomeSource; import org.junit.Test; public class ParameterResolverOnConfigTestCase extends AbstractParameterResolverTestCase { @Override protected String[] getConfigFiles() { return new String[] {"parameter-resolver-on-pojo-config.xml"}; } @Override protected boolean isDisposeContextPerClass() { return true; } @Test public void configurationWithDynamicParameterResolvers() throws Exception { ParameterResolverExtension config = getPayload("configurationWithDynamicParameterResolvers"); ParameterResolver<KnockeableDoor> doorResolver = config.getDoorResolver(); ParameterResolver<String> stringResolver = config.getStringResolver(); assertParameterResolver(doorResolver, of("#[app.registry.staticDoor]"), is(instanceOf(KnockeableDoor.class))); assertParameterResolver(stringResolver, of("#[payload]"), is("this is the payload")); assertThat(config.getLiteralDoor().getLiteralValue().get(), equalTo("#[aDoor]")); } @Test public void configurationWithStaticParameterResolvers() throws Exception { ParameterResolverExtension config = getPayload("configurationWithStaticParameterResolvers"); ParameterResolver<KnockeableDoor> doorResolver = config.getDoorResolver(); ParameterResolver<String> stringResolver = config.getStringResolver(); assertParameterResolver(doorResolver, empty(), is(instanceOf(KnockeableDoor.class))); assertParameterResolver(stringResolver, empty(), is("this is a string")); } @Test public void sourceWithParameterResolver() throws Exception { assertParameterResolver(SomeSource.someString, empty(), is("this is not an expression")); } @Test public void sourceWithLiteral() throws Exception { assertThat(SomeSource.literalString.getLiteralValue().get(), equalTo("#[literal]")); } }