/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.servicemanager.config; import org.dspace.services.ConfigurationService; import org.dspace.test.DSpaceAbstractKernelTest; import static org.dspace.test.DSpaceAbstractTest.getKernel; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.junit.Test; /** * Testing the DSpaceConfigurationFactoryBean to ensure it performs property * substitution in Spring XML configs (e.g. replacing ${dspace.dir} with the * value from dspace.cfg) * <P> * NOTE: This uses a TestDynamicPropertyBean bean defined in spring-test-beans.xml * for all tests. * * @author Tim Donohue */ public class DSpaceConfigurationFactoryBeanTest extends DSpaceAbstractKernelTest { /** * Test that property substitution is working properly in Spring XML configs. * Properties in those configs (e.g. ${key}) should be dynamically replaced * with the corresponding value from our ConfigurationService */ @Test public void testGetBeanSettingFromConfigurationService() { // Load configs from files ConfigurationService cfg = getKernel().getConfigurationService(); assertNotNull("ConfigurationService returned null", cfg); assertNotNull("test config returned null", cfg.getProperty("testDynamicBean.property")); //Load example service which is configured using a dynamic property (which is specified in a config file) // See spring-test-beans.xml TestDynamicPropertyBean bean = getKernel().getServiceManager().getServiceByName("dynamicPropertyBean", TestDynamicPropertyBean.class); assertNotNull("Bean returned null", bean); assertNotNull("Bean.name() returned null", bean.getProperty()); // The name of the ServiceExample bean should be the SAME as the value of "serviceExample.bean.name" in configuration, // as the spring-test-beans.xml uses ${serviceExample.bean.name} to set the name assertEquals("Bean.name() does not match configuration", cfg.getProperty("testDynamicBean.property"), bean.getProperty()); } }