package org.bundlemaker.core.itest.misc_models; import org.bundlemaker.core.analysis.AnalysisModelConfiguration; import org.bundlemaker.core.analysis.IBundleMakerArtifact; import org.bundlemaker.core.analysis.IModuleArtifact; import org.bundlemaker.core.analysis.IRootArtifact; import org.bundlemaker.core.itest._framework.AbstractModularizedSystemTest; import org.bundlemaker.core.modules.IResourceModule; import org.bundlemaker.core.projectdescription.ProjectContentType; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public class REFACTOR_ME_Test extends AbstractModularizedSystemTest { // private IRootArtifact _rootArtifact; /** * <p> * </p> * * @throws CoreException */ @Before public void initResourceModule() throws CoreException { // _rootArtifact = getModularizedSystem().getAnalysisModel( AnalysisModelConfiguration.HIERARCHICAL_BINARY_RESOURCES_CONFIGURATION); } /** * <p> * </p> */ @Test public void testResourceModuleTypes() { // // // Assert.assertNotNull(_rootArtifact.getChild("group1|group2|InnerClassTest_1.0.0")); // // // // ((IModifiableResourceModule) _resourceModule).setClassification(new Path("hurz")); // // // // Assert.assertNotNull(_rootArtifact.getChild("hurz|InnerClassTest_1.0.0")); // Assert.assertEquals(new Path("hurz"), _resourceModule.getClassification()); // Assert.assertNull(_rootArtifact.getChild("hurz")); IBundleMakerArtifact purzGroup = _rootArtifact.getOrCreateGroup(new Path("hurz/purz")); Assert.assertNotNull(_rootArtifact.getChild("hurz")); purzGroup.addArtifact(_rootArtifact.getChild("group1|group2|InnerClassTest_1.0.0")); Assert.assertNotNull(_rootArtifact.getChild("hurz")); // IBundleMakerArtifact module = _rootArtifact.getOrCreateModule("hurz/purz/test", "1.2.2"); Assert.assertNotNull(_rootArtifact.getChild("hurz|purz|test_1.2.2")); } @Test public void justAddArtifact() { // get the module artifact IBundleMakerArtifact moduleArtifact = _rootArtifact.getChild("group1|group2|InnerClassTest_1.0.0"); Assert.assertNotNull(moduleArtifact); // create the new module artifact IModuleArtifact newModuleArtifact = _rootArtifact.getOrCreateModule("NewModule", "2.0.0"); Assert.assertNotNull(newModuleArtifact); Assert.assertNotNull(getModularizedSystem().getModule("NewModule", "2.0.0")); // get the 'de.test.innertypes.A$AA.class' artifact IBundleMakerArtifact resource = moduleArtifact.getChild("de|test|innertypes|A$AA.class"); Assert.assertNotNull(resource); Assert.assertNotNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); // just add the artifact newModuleArtifact.addArtifact(resource); Assert.assertNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertSame(resource, newModuleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); } @Test public void multipleAddArtifact() { // get the module artifact IBundleMakerArtifact moduleArtifact = _rootArtifact.getChild("group1|group2|InnerClassTest_1.0.0"); Assert.assertNotNull(moduleArtifact); // create the new module artifact IModuleArtifact newModuleArtifact = _rootArtifact.getOrCreateModule("NewModule", "2.0.0"); Assert.assertNotNull(newModuleArtifact); Assert.assertNotNull(getModularizedSystem().getModule("NewModule", "2.0.0")); // get the 'de.test.innertypes.A$AA.class' artifact IBundleMakerArtifact resource = moduleArtifact.getChild("de|test|innertypes|A$AA.class"); // just add the artifact newModuleArtifact.addArtifact(resource); Assert.assertNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); IResourceModule module = getModularizedSystem().getResourceModule("NewModule", "2.0.0"); Assert.assertNotNull(module.getResource("de/test/innertypes/A$AA.class", ProjectContentType.BINARY)); // moduleArtifact.addArtifact(resource); Assert.assertNotNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNotNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); Assert.assertNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); } @Test public void multipleAddType() { // get the module artifact IBundleMakerArtifact moduleArtifact = _rootArtifact.getChild("group1|group2|InnerClassTest_1.0.0"); Assert.assertNotNull(moduleArtifact); // create the new module artifact IModuleArtifact newModuleArtifact = _rootArtifact.getOrCreateModule("NewModule", "2.0.0"); Assert.assertNotNull(newModuleArtifact); Assert.assertNotNull(getModularizedSystem().getModule("NewModule", "2.0.0")); // get the 'de.test.innertypes.A$AA.class' artifact IBundleMakerArtifact type_1 = moduleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA"); IBundleMakerArtifact type_2 = moduleArtifact.getChild("de|test|referenced|X.class|X"); Assert.assertNotNull(type_1); Assert.assertNotNull(type_2); // just add the artifact newModuleArtifact.addArtifact(type_1); Assert.assertNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNull(moduleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); Assert.assertSame(type_1, newModuleArtifact.getChild("de|test|innertypes|A$AA.class|A$AA")); // just add the artifact newModuleArtifact.addArtifact(type_2); Assert.assertNull(moduleArtifact.getChild("de|test|referenced|X.class|X")); Assert.assertNull(moduleArtifact.getChild("de|test|referenced|X.class")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|referenced|X.class")); Assert.assertNotNull(newModuleArtifact.getChild("de|test|referenced|X.class|X")); Assert.assertSame(type_2, newModuleArtifact.getChild("de|test|referenced|X.class|X")); } /** * {@inheritDoc} */ @Override protected String computeTestProjectName() { return InnerClassTest.class.getSimpleName(); } }