mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Added a convenience method to the ApplicationContextInit @Rule to allow for easier spring overriding in test code.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@34805 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
*/
|
||||
package org.alfresco.util.test.junitrules;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@@ -79,6 +80,34 @@ public class ApplicationContextInit extends ExternalResource
|
||||
this.configLocations = configLocations;
|
||||
}
|
||||
|
||||
/**
|
||||
* This factory method constructs a JUnit rule which will bring up an ApplicationContext consisting
|
||||
* of the default Alfresco context with any additionConfigLocations appended. It is a convenient way to specify
|
||||
* override contexts in test code.
|
||||
*
|
||||
* @param additionalConfigLocations addition config locations containing additional or overriding beans.
|
||||
*/
|
||||
public static ApplicationContextInit createStandardContextWithOverrides(String... additionalConfigLocations)
|
||||
{
|
||||
List<String> contexts = new ArrayList<String>();
|
||||
|
||||
// The defaults (currently only one)
|
||||
for (String defaultConfigLocation: ApplicationContextHelper.CONFIG_LOCATIONS)
|
||||
{
|
||||
contexts.add(defaultConfigLocation);
|
||||
}
|
||||
|
||||
// any user supplied extras
|
||||
for (String additionalContext : additionalConfigLocations)
|
||||
{
|
||||
contexts.add(additionalContext);
|
||||
}
|
||||
|
||||
String[] contextsAsArray = contexts.toArray(new String[0]);
|
||||
|
||||
return new ApplicationContextInit(contextsAsArray);
|
||||
}
|
||||
|
||||
@Override protected void before() throws Throwable
|
||||
{
|
||||
// Were any context locations specified in the constructor?
|
||||
|
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2012 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.alfresco.util.test.junitrules;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import org.alfresco.service.cmr.repository.ContentService;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Test class for {@link ApplicationContextInit}.
|
||||
*
|
||||
* @author Neil Mc Erlean
|
||||
* @since Odin
|
||||
*/
|
||||
public class ApplicationContextInitTest
|
||||
{
|
||||
// Some dummy contexts with test beans in them.
|
||||
public static final String[] dummySpringContexts = new String[] {"classpath:org/alfresco/util/test/junitrules/dummy1-context.xml",
|
||||
"classpath:org/alfresco/util/test/junitrules/dummy2-context.xml"};
|
||||
|
||||
// Rule to initialise the default Alfresco spring configuration
|
||||
@ClassRule public static ApplicationContextInit APP_CONTEXT_INIT = ApplicationContextInit.createStandardContextWithOverrides(dummySpringContexts);
|
||||
|
||||
@Test public void ensureSpringContextWasInitedWithOverrides() throws Exception
|
||||
{
|
||||
// Bean from the standard Alfresco context
|
||||
assertNotNull("Spring context did not contain expected bean.",
|
||||
APP_CONTEXT_INIT.getApplicationContext().getBean("contentService", ContentService.class));
|
||||
|
||||
// Bean from the first override context
|
||||
assertEquals("Value from dummy1-context.xml",
|
||||
APP_CONTEXT_INIT.getApplicationContext().getBean("testBean1", String.class));
|
||||
|
||||
// Bean from the second override context
|
||||
assertEquals("Value from dummy2-context.xml",
|
||||
APP_CONTEXT_INIT.getApplicationContext().getBean("testBean2", String.class));
|
||||
|
||||
// Bean overridden in second context
|
||||
assertEquals("Value from dummy2-context.xml",
|
||||
APP_CONTEXT_INIT.getApplicationContext().getBean("testBean1and2", String.class));
|
||||
}
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
|
||||
|
||||
<bean id="testBean1" class="java.lang.String">
|
||||
<constructor-arg value="Value from dummy1-context.xml"/>
|
||||
</bean>
|
||||
|
||||
<bean id="testBean1and2" class="java.lang.String">
|
||||
<constructor-arg value="Value from dummy1-context.xml"/>
|
||||
</bean>
|
||||
</beans>
|
@@ -0,0 +1,18 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
|
||||
|
||||
<bean id="testBean2" class="java.lang.String">
|
||||
<constructor-arg value="Value from dummy2-context.xml"/>
|
||||
</bean>
|
||||
|
||||
<bean id="testBean1and2" class="java.lang.String">
|
||||
<constructor-arg value="Value from dummy2-context.xml"/>
|
||||
</bean>
|
||||
</beans>
|
Reference in New Issue
Block a user