diff options
author | Laurent Redor | 2015-10-08 15:18:30 +0000 |
---|---|---|
committer | Laurent Redor | 2015-10-08 15:59:13 +0000 |
commit | 12797428c506a0ae8714104c3f4e4da848290734 (patch) | |
tree | 3769ad8922954c811e12abd5a297263c12e5d6ad | |
parent | b3b27927bbb9c759620c336da99b4d2b87f70e31 (diff) | |
download | org.eclipse.sirius-12797428c506a0ae8714104c3f4e4da848290734.tar.gz org.eclipse.sirius-12797428c506a0ae8714104c3f4e4da848290734.tar.xz org.eclipse.sirius-12797428c506a0ae8714104c3f4e4da848290734.zip |
[test] Correctly restore the extensionToFactoryMap
These tests replace a potential existing factory for (ecore, aird, ...)
resources but they do not restore the previous
state. This can have side effect on following tests.
Change-Id: I571af75ea59cc9ef0b13383e4d7d8d0d1ac83c86
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
2 files changed, 30 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/api/tools/SiriusControlAndCrossReferenceInMultiSessionTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/api/tools/SiriusControlAndCrossReferenceInMultiSessionTest.java index 889d7ee144..fb220226e6 100644 --- a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/api/tools/SiriusControlAndCrossReferenceInMultiSessionTest.java +++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/api/tools/SiriusControlAndCrossReferenceInMultiSessionTest.java @@ -74,9 +74,11 @@ public class SiriusControlAndCrossReferenceInMultiSessionTest extends SiriusTest private Session sessionLibrary; + Object previousEcoreFactory; + @Override protected void setUp() throws Exception { - + previousEcoreFactory = Registry.INSTANCE.getExtensionToFactoryMap().get("ecore"); Registry.INSTANCE.getExtensionToFactoryMap().put("ecore", new XMIResourceFactoryImpl() { @Override public Resource createResource(URI uri) { @@ -109,6 +111,19 @@ public class SiriusControlAndCrossReferenceInMultiSessionTest extends SiriusTest toURI(CONSUMER_PROJECT + "/" + AIRD_CONSUMER_1, ResourceURIType.RESOURCE_PLATFORM_URI)); } + @Override + protected void tearDown() throws Exception { + // Store locally the factory because the field is cleaned by the + // super.tearDown() + Object factory = previousEcoreFactory; + super.tearDown(); + if (factory == null) { + Registry.INSTANCE.getExtensionToFactoryMap().remove("ecore"); + } else { + Registry.INSTANCE.getExtensionToFactoryMap().put("ecore", factory); + } + } + private void copyFilesToTestProject(String pluginID, String projetName, String pluginCommonPath, Collection<String> filePaths) { EclipseTestsSupportHelper.INSTANCE.createProject(projetName); for (final String path : filePaths) { diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/SaverTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/SaverTest.java index 21e546ecab..5aeb9ee2c4 100644 --- a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/SaverTest.java +++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/SaverTest.java @@ -13,14 +13,13 @@ import java.io.File; import java.util.Collection; import java.util.Map; -import junit.framework.TestCase; - import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.emf.common.command.Command; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.Resource.Factory.Registry; import org.eclipse.emf.transaction.RecordingCommand; import org.eclipse.emf.transaction.ResourceSetChangeEvent; import org.eclipse.emf.transaction.ResourceSetListener; @@ -36,6 +35,8 @@ import org.eclipse.sirius.business.internal.resource.AirDResourceFactory; import org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl; import org.eclipse.sirius.viewpoint.DAnalysis; +import junit.framework.TestCase; + /** * Test for Bugzilla 445603. * @@ -47,9 +48,12 @@ public class SaverTest extends TestCase { private Session session; + Object previousAirdFactory; + @Override protected void setUp() throws Exception { super.setUp(); + previousAirdFactory = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().get(SiriusUtil.SESSION_RESOURCE_EXTENSION); Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(SiriusUtil.SESSION_RESOURCE_EXTENSION, new AirDResourceFactory()); tempFile = File.createTempFile("test", "." + SiriusUtil.SESSION_RESOURCE_EXTENSION); tempFile.delete(); @@ -172,6 +176,14 @@ public class SaverTest extends TestCase { session = null; tempFile.delete(); tempFile = null; + // Store locally the factory because the field is cleaned by the + // super.tearDown() + Object factory = previousAirdFactory; super.tearDown(); + if (factory == null) { + Registry.INSTANCE.getExtensionToFactoryMap().remove(SiriusUtil.SESSION_RESOURCE_EXTENSION); + } else { + Registry.INSTANCE.getExtensionToFactoryMap().put(SiriusUtil.SESSION_RESOURCE_EXTENSION, factory); + } } } |