package org.bundlemaker.core.itest.jedit_artifact_model.core; import java.util.LinkedList; import java.util.List; import junit.framework.Assert; import org.bundlemaker.core.analysis.AnalysisModelConfiguration; import org.bundlemaker.core.analysis.IBundleMakerArtifact; import org.bundlemaker.core.analysis.IRootArtifact; import org.bundlemaker.core.modules.AmbiguousElementException; import org.bundlemaker.core.modules.IModule; import org.bundlemaker.core.modules.ModuleIdentifier; import org.bundlemaker.core.modules.event.ClassificationChangedEvent; import org.bundlemaker.core.modules.event.GroupChangedEvent; import org.bundlemaker.core.modules.event.IModularizedSystemChangedListener; import org.bundlemaker.core.modules.event.ModuleClassificationChangedEvent; import org.bundlemaker.core.modules.event.ModuleIdentifierChangedEvent; import org.bundlemaker.core.modules.event.ModuleMovedEvent; import org.bundlemaker.core.modules.event.MovableUnitMovedEvent; import org.bundlemaker.core.modules.modifiable.IModifiableResourceModule; import org.bundlemaker.core.modules.modifiable.IMovableUnit; import org.bundlemaker.core.modules.modifiable.MovableUnit; import org.bundlemaker.core.resource.IResource; import org.bundlemaker.core.resource.IType; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; import org.junit.Before; import org.junit.Test; /** * <p> * Tests if events are sent if a modularized system changes. * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public abstract class AbstractModularizedSystemChangedTest extends AbstractJeditTest { /** - */ private List _events; /** - */ protected IRootArtifact _rootArtifact; /** - */ protected IModifiableResourceModule _resourceModule; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ private final class TestListener implements IModularizedSystemChangedListener { @Override public void movableUnitRemoved(MovableUnitMovedEvent event) { _events.add(event); } @Override public void movableUnitAdded(MovableUnitMovedEvent event) { _events.add(event); } @Override public void moduleAdded(ModuleMovedEvent event) { _events.add(event); } @Override public void moduleRemoved(ModuleMovedEvent event) { _events.add(event); } @Override public void moduleClassificationChanged(ModuleClassificationChangedEvent event) { _events.add(event); } @Override public void classificationChanged(ClassificationChangedEvent event) { // TODO Auto-generated method stub } @Override public void groupAdded(GroupChangedEvent event) { // TODO Auto-generated method stub } @Override public void groupRemoved(GroupChangedEvent event) { // TODO Auto-generated method stub } @Override public void modelModifiedNotificationDisabled(boolean isDisabled) { // TODO Auto-generated method stub } @Override public void moduleIdentifierChanged(ModuleIdentifierChangedEvent event) { // TODO Auto-generated method stub } @Override public void handleModelModification() { // TODO Auto-generated method stub } } /** * {@inheritDoc} */ @Before public void before() throws CoreException { super.before(); // prepare getModularizedSystem().addModularizedSystemChangedListener(new TestListener()); // prepare _events = new LinkedList(); // _rootArtifact = getModularizedSystem().getAnalysisModel( AnalysisModelConfiguration.HIERARCHICAL_BINARY_RESOURCES_CONFIGURATION); Assert.assertNotNull(_rootArtifact); // _resourceModule = getModularizedSystem().getModifiableResourceModule(new ModuleIdentifier("jedit", "1.0.0")); Assert.assertNotNull(_resourceModule); } /** * <p> * </p> * * @return */ public IRootArtifact getRootArtifact() { return _rootArtifact; } /** * <p> * </p> * * @return */ public IModifiableResourceModule getResourceModule() { return _resourceModule; } /** * <p> * </p> * * @return */ public List getEvents() { return _events; } /** * <p> * </p> * * @param event * @param module */ public final void assertModule(IMovableUnit movableUnit, IModule module) { if (movableUnit.hasAssociatedSourceResource()) { for (IType t : movableUnit.getAssociatedTypes()) { Assert.assertEquals(module, t.getModule(getModularizedSystem())); } } if (movableUnit.hasAssociatedBinaryResources()) { for (IResource r : movableUnit.getAssociatedBinaryResources()) { Assert.assertEquals(module, r.getAssociatedResourceModule(getModularizedSystem())); } } // if (movableUnit.hasAssociatedTypes()) { Assert.assertEquals(module, movableUnit.getAssociatedSourceResource().getAssociatedResourceModule(getModularizedSystem())); } } }