package org.marketcetera.util.spring;
import java.io.File;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;
import org.marketcetera.util.test.TestCaseBase;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.context.support.GenericApplicationContext;
import static org.junit.Assert.*;
/**
* @author tlerios@marketcetera.com
* @since 0.5.0
* @version $Id: SpringUtilsTest.java 16841 2014-02-20 19:59:04Z colin $
*/
/* $License$ */
public class SpringUtilsTest
extends TestCaseBase
{
private static final String TEST_ROOT=
DIR_ROOT+File.separator+"spring"+File.separator;
private static final String TEST_NAME_BEAN=
"testNameBean";
private static final String TEST_VALUE=
"testValue";
private static final String TEST_NAME_PROP=
"testNameProp";
private static final String TEST_NAME_PROP_BLANK=
"testNamePropBlank";
private static final String TEST_VALUE_PROP=
"testValueProp";
private static final String TEST_VALUE_PROP_OVERRIDE=
"testValuePropOverride";
private static final String TEST_CONFIGURER_BEAN=
"testConfigurer";
private static final String TEST_SPRING_FILE=
TEST_ROOT+"spring.xml";
private static final String TEST_PROPERTIES_FILE_BEAN=
"propertiesFile";
private static final String TEST_PROPERTIES_FILES_BEAN=
"propertiesFiles";
@Test
public void stringBean()
{
GenericApplicationContext context=new GenericApplicationContext();
SpringUtils.addStringBean(context,TEST_NAME_BEAN,TEST_VALUE);
context.refresh();
assertEquals(TEST_VALUE,context.getBean(TEST_NAME_BEAN));
}
@Test
public void propertiesConfigurerStringSet()
{
GenericApplicationContext context=
new GenericApplicationContext
(new FileSystemXmlApplicationContext(TEST_SPRING_FILE));
SpringUtils.addPropertiesConfigurer
(context,TEST_CONFIGURER_BEAN,TEST_PROPERTIES_FILE_BEAN);
SpringUtils.addStringBean
(context,TEST_NAME_BEAN,"${"+TEST_NAME_PROP+"}");
context.refresh();
assertEquals(TEST_VALUE_PROP,context.getBean(TEST_NAME_BEAN));
}
@Test
public void propertiesConfigurerStringUnset()
{
GenericApplicationContext context=
new GenericApplicationContext
(new FileSystemXmlApplicationContext(TEST_SPRING_FILE));
SpringUtils.addPropertiesConfigurer
(context,TEST_CONFIGURER_BEAN,TEST_PROPERTIES_FILE_BEAN);
SpringUtils.addStringBean
(context,TEST_NAME_BEAN,"${"+TEST_NAME_PROP_BLANK+"}");
context.refresh();
assertEquals(StringUtils.EMPTY,context.getBean(TEST_NAME_BEAN));
}
@Test
public void propertiesConfigurerList()
{
GenericApplicationContext context=
new GenericApplicationContext
(new FileSystemXmlApplicationContext(TEST_SPRING_FILE));
SpringUtils.addPropertiesConfigurer
(context,TEST_CONFIGURER_BEAN,TEST_PROPERTIES_FILES_BEAN);
SpringUtils.addStringBean
(context,TEST_NAME_BEAN,"${"+TEST_NAME_PROP+"}");
context.refresh();
assertEquals(TEST_VALUE_PROP_OVERRIDE,context.getBean(TEST_NAME_BEAN));
}
}