From 0919d25ce9be6ae2bf4628564f75103b5964b7b4 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 25 Feb 2010 16:49:48 +0000 Subject: [PATCH] Improve how the Metadata and Content Transform tests request their contexts, to make it possible for them to run on the smaller context git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@18853 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../AbstractMetadataExtracterTest.java | 18 +++-- .../content/metadata/MetadataTestSuite.java | 75 +++++++++++++++++++ .../AbstractContentTransformerTest.java | 10 ++- ...ntimeExecutableContentTransformerTest.java | 6 ++ .../content/transform/TransformTestSuite.java | 22 +++++- 5 files changed, 121 insertions(+), 10 deletions(-) create mode 100644 source/java/org/alfresco/repo/content/metadata/MetadataTestSuite.java diff --git a/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java b/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java index b75fac01ed..989d3bc270 100644 --- a/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java +++ b/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java @@ -56,11 +56,11 @@ import org.springframework.context.ApplicationContext; */ public abstract class AbstractMetadataExtracterTest extends TestCase { - static { - ApplicationContextHelper.setUseLazyLoading(false); - ApplicationContextHelper.setNoAutoStart(true); - } - protected static ApplicationContext ctx = ApplicationContextHelper.getApplicationContext(); + /** + * This context will be fetched each time, but almost always + * will have been cached by {@link ApplicationContextHelper} + */ + protected ApplicationContext ctx; protected static final String QUICK_TITLE = "The quick brown fox jumps over the lazy dog"; protected static final String QUICK_DESCRIPTION = "Gym class featuring a brown fox and lazy dog"; @@ -79,6 +79,10 @@ public abstract class AbstractMetadataExtracterTest extends TestCase @Override public void setUp() throws Exception { + // Grab the context, which will normally have been + // cached by the ApplicationContextHelper + ctx = MetadataTestSuite.getContext(); + this.mimetypeMap = (MimetypeMap) ctx.getBean("mimetypeService"); this.dictionaryService = (DictionaryService) ctx.getBean("dictionaryService"); @@ -206,13 +210,13 @@ public abstract class AbstractMetadataExtracterTest extends TestCase } - protected void assertContains(String message, String needle, String haystack) { + protected static void assertContains(String message, String needle, String haystack) { if(haystack.indexOf(needle) > -1) { return; } fail(message); } - protected void assertContains(String needle, String haystack) { + protected static void assertContains(String needle, String haystack) { assertContains("'" + needle + "' wasn't found in '" + haystack + "'", needle, haystack); } } diff --git a/source/java/org/alfresco/repo/content/metadata/MetadataTestSuite.java b/source/java/org/alfresco/repo/content/metadata/MetadataTestSuite.java new file mode 100644 index 0000000000..53e0981c96 --- /dev/null +++ b/source/java/org/alfresco/repo/content/metadata/MetadataTestSuite.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2005-2007 Alfresco Software Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program 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 General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" + */ +package org.alfresco.repo.content.metadata; + +import org.alfresco.util.ApplicationContextHelper; +import org.springframework.context.ApplicationContext; + +import junit.framework.Test; +import junit.framework.TestSuite; + +/** + * Metadata extractor test suite + * + * @author Nick Burch + */ +public class MetadataTestSuite extends TestSuite +{ + /** + * Asks {@link ApplicationContextHelper} to give us a + * suitable, perhaps cached context for use in our tests + */ + public static ApplicationContext getContext() { + ApplicationContextHelper.setUseLazyLoading(false); + ApplicationContextHelper.setNoAutoStart(true); + return ApplicationContextHelper.getApplicationContext( + new String[] { "classpath:alfresco/minimal-context.xml" } + ); + } + + /** + * Creates the test suite + * + * @return the test suite + */ + public static Test suite() + { + // Setup the context + getContext(); + + // Off we go + TestSuite suite = new TestSuite(); + suite.addTestSuite( HtmlMetadataExtracterTest.class ); + suite.addTestSuite( MailMetadataExtracterTest.class ); + suite.addTestSuite( MP3MetadataExtracterTest.class ); + suite.addTestSuite( OfficeMetadataExtracterTest.class ); + suite.addTestSuite( OpenDocumentMetadataExtracterTest.class ); + suite.addTestSuite( OpenOfficeMetadataExtracterTest.class ); + suite.addTestSuite( PdfBoxMetadataExtracterTest.class ); + suite.addTestSuite( RFC822MetadataExtracterTest.class ); + + return suite; + } +} diff --git a/source/java/org/alfresco/repo/content/transform/AbstractContentTransformerTest.java b/source/java/org/alfresco/repo/content/transform/AbstractContentTransformerTest.java index a801f08d5e..e4def35869 100644 --- a/source/java/org/alfresco/repo/content/transform/AbstractContentTransformerTest.java +++ b/source/java/org/alfresco/repo/content/transform/AbstractContentTransformerTest.java @@ -62,7 +62,11 @@ public abstract class AbstractContentTransformerTest extends TestCase private static Log logger = LogFactory.getLog(AbstractContentTransformerTest.class); - protected static ApplicationContext ctx = ApplicationContextHelper.getApplicationContext(); + /** + * This context will be fetched each time, but almost always + * will have been cached by {@link ApplicationContextHelper} + */ + protected ApplicationContext ctx; protected ServiceRegistry serviceRegistry; protected MimetypeService mimetypeService; @@ -86,6 +90,10 @@ public abstract class AbstractContentTransformerTest extends TestCase @Override protected void setUp() throws Exception { + // Grab a suitably configured context + ctx = TransformTestSuite.getContext(); + + // Grab other useful beans serviceRegistry = (ServiceRegistry) ctx.getBean(ServiceRegistry.SERVICE_REGISTRY); mimetypeService = serviceRegistry.getMimetypeService(); // perform a little cleaning up diff --git a/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformerTest.java b/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformerTest.java index b02588a121..32b46c0f95 100644 --- a/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformerTest.java +++ b/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformerTest.java @@ -47,6 +47,12 @@ public class RuntimeExecutableContentTransformerTest extends BaseAlfrescoTestCas { private ContentTransformer transformer; + @Override + protected void setUpContext() { + // We use a smaller context + ctx = TransformTestSuite.getContext(); + } + @Override protected void setUp() throws Exception { diff --git a/source/java/org/alfresco/repo/content/transform/TransformTestSuite.java b/source/java/org/alfresco/repo/content/transform/TransformTestSuite.java index 0fd185dadc..4a2892b298 100644 --- a/source/java/org/alfresco/repo/content/transform/TransformTestSuite.java +++ b/source/java/org/alfresco/repo/content/transform/TransformTestSuite.java @@ -28,15 +28,29 @@ import junit.framework.Test; import junit.framework.TestSuite; import org.alfresco.repo.content.transform.magick.ImageMagickContentTransformerTest; +import org.alfresco.util.ApplicationContextHelper; +import org.springframework.context.ApplicationContext; /** - * Version test suite + * Content Transformation test suite * * @author Roy Wetherall */ public class TransformTestSuite extends TestSuite { + /** + * Asks {@link ApplicationContextHelper} to give us a + * suitable, perhaps cached context for use in our tests + */ + public static ApplicationContext getContext() { + ApplicationContextHelper.setUseLazyLoading(false); + ApplicationContextHelper.setNoAutoStart(true); + return ApplicationContextHelper.getApplicationContext( + new String[] { "classpath:alfresco/minimal-context.xml" } + ); + } + /** * Creates the test suite * @@ -44,6 +58,10 @@ public class TransformTestSuite extends TestSuite */ public static Test suite() { + // Setup the context + getContext(); + + // Off we go TestSuite suite = new TestSuite(); suite.addTestSuite(BinaryPassThroughContentTransformerTest.class); suite.addTestSuite(ComplexContentTransformerTest.class); @@ -53,7 +71,7 @@ public class TransformTestSuite extends TestSuite suite.addTestSuite(MediaWikiContentTransformerTest.class); suite.addTestSuite(OpenOfficeContentTransformerTest.class); suite.addTestSuite(PdfBoxContentTransformerTest.class); - suite.addTestSuite(PoiHssfContentTransformerTest.class); + suite.addTestSuite(PoiHssfContentTransformerTest.class); suite.addTestSuite(RuntimeExecutableContentTransformerTest.class); suite.addTestSuite(StringExtractingContentTransformerTest.class); suite.addTestSuite(TextMiningContentTransformerTest.class);