package org.bundlemaker.core.itest.jedit_artifact_model; import static org.bundlemaker.core.itestframework.jedit_model.TOOLS.assertModificationCount; import static org.junit.Assert.assertArrayEquals; import junit.framework.Assert; import org.bundlemaker.core.analysis.AnalysisModelQueries; import org.bundlemaker.core.analysis.IGroupArtifact; import org.bundlemaker.core.analysis.IModuleArtifact; import org.bundlemaker.core.analysis.IPackageArtifact; import org.bundlemaker.core.analysis.algorithms.AdjacencyMatrix; import org.bundlemaker.core.itestframework.jedit_model.AbstractJeditAnalysisModelTest; import org.bundlemaker.core.itestframework.jedit_model.JeditAnalysisModel; import org.junit.Test; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public class RemodularizeJEditTest extends AbstractJeditAnalysisModelTest { /** * <p> * </p> */ @Test public void createNewModule_SrcHierarchicalModel() { // JeditAnalysisModel model = getSrcHierarchicalModel(); assertModificationCount(this, 0); // STEP: Create group 'newGroup' IGroupArtifact newGroupArtifact = model.getRootArtifact().getOrCreateGroup("newGroup"); Assert.assertNotNull(newGroupArtifact); assertModificationCount(this, 1); // STEP: Create module 'jedit-util' IModuleArtifact utilModuleArtifact = model.getRootArtifact().getOrCreateModule("jedit-util", "4.5.2"); Assert.assertNotNull(utilModuleArtifact); assertModificationCount(this, 2); // STEP: move package 'org.gjt.sp.util' to module 'jedit-util' IPackageArtifact utilPackageArtifact = AnalysisModelQueries.findPackageArtifactByQualifiedName( model.getJeditModuleArtifact(), "org.gjt.sp.util"); Assert.assertNotNull(utilPackageArtifact); utilModuleArtifact.addArtifact(utilPackageArtifact); assertArrayEquals(new int[][] { { 52, 4, 0 }, { 386, 4713, 0 }, { 0, 0, 0 } }, AdjacencyMatrix.computeAdjacencyMatrix(null, utilModuleArtifact, model.getJeditModuleArtifact(), newGroupArtifact)); assertModificationCount(this, 3); // STEP: move module 'jedit' to group 'newGroup' newGroupArtifact.addArtifact(utilModuleArtifact); assertArrayEquals(new int[][] { { 52, 4 }, { 386, 4713 } }, AdjacencyMatrix.computeAdjacencyMatrix(null, newGroupArtifact, model.getJeditModuleArtifact())); assertModificationCount(this, 4); // STEP: create new module 'jedit-bsh' IModuleArtifact bshModuleArtifact = model.getRootArtifact().getOrCreateModule("jedit-bsh", "4.5.2"); Assert.assertNotNull(bshModuleArtifact); assertModificationCount(this, 5); // STEP: move package 'org.gjt.sp.jedit.bsh' to module 'jedit-bsh' IPackageArtifact bshPackageArtifact = AnalysisModelQueries.findPackageArtifactByQualifiedName( model.getJeditModuleArtifact(), "org.gjt.sp.jedit.bsh"); Assert.assertNotNull(bshPackageArtifact); bshModuleArtifact.addArtifact(bshPackageArtifact); assertModificationCount(this, 6); } }