package org.bundlemaker.core.itest.simple_artifact_model.analysis;
import static org.bundlemaker.core.itestframework.simple_artifact_model.ArtifactAssert.assertResourceModuleCount;
import static org.bundlemaker.core.itestframework.simple_artifact_model.ArtifactAssert.assertResourceModuleCountInModularizedSystem;
import org.bundlemaker.core.analysis.AnalysisModelException;
import org.bundlemaker.core.analysis.AnalysisModelQueries;
import org.bundlemaker.core.analysis.IModuleArtifact;
import org.bundlemaker.core.itestframework.simple_artifact_model.AbstractSimpleArtifactModelTest;
import org.bundlemaker.core.resource.IModuleIdentifier;
import org.junit.Assert;
import org.junit.Test;
/**
* <p>
* </p>
*
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public class ModuleCreateNewTest extends AbstractSimpleArtifactModelTest {
/**
* <p>
* </p>
*
* @throws Exception
*/
@Test
public void createNewModuleBelowExistingGroup() throws Exception {
//
assertResourceModuleCountInModularizedSystem(getModularizedSystem(), 2);
assertResourceModuleCount(getBinModel(), 2);
assertResourceModuleCount(getSrcModel(), 2);
// create a new group
IModuleArtifact newModuleArtifact = getBinModel().getGroup2Artifact().getOrCreateModule("NewModule", "1.0.0");
Assert.assertEquals("group1/group2/NewModule_1.0.0", newModuleArtifact.getQualifiedName());
// assert that we have three groups
Assert.assertEquals(2, getModularizedSystem().getGroups().size());
assertResourceModuleCount(getBinModel(), 3);
assertResourceModuleCount(getSrcModel(), 3);
//
IModuleArtifact srcModule = AnalysisModelQueries.getModuleArtifact(getBinModel().getRootArtifact(),
IModuleIdentifier.Factory.createNewModuleIdentifier("NewModule", "1.0.0"));
IModuleArtifact binModule = AnalysisModelQueries.getModuleArtifact(getSrcModel().getRootArtifact(),
IModuleIdentifier.Factory.createNewModuleIdentifier("NewModule", "1.0.0"));
//
Assert.assertNotNull(srcModule);
Assert.assertNotNull(binModule);
//
Assert.assertNotNull(srcModule.getParent());
Assert.assertNotNull(binModule.getParent());
Assert.assertEquals(srcModule.getParent().getName(), "group2");
Assert.assertEquals(binModule.getParent().getName(), "group2");
}
/**
* <p>
* </p>
*
* @throws Exception
*/
@Test
public void createNewModuleBelowRoot() throws Exception {
//
assertResourceModuleCountInModularizedSystem(getModularizedSystem(), 2);
assertResourceModuleCount(getBinModel(), 2);
assertResourceModuleCount(getSrcModel(), 2);
// create a new group
IModuleArtifact newModuleArtifact = getBinModel().getRootArtifact().getOrCreateModule("NewModule", "1.0.0");
Assert.assertEquals("NewModule_1.0.0", newModuleArtifact.getQualifiedName());
// assert that we have three groups
Assert.assertEquals(2, getModularizedSystem().getGroups().size());
assertResourceModuleCount(getBinModel(), 3);
assertResourceModuleCount(getSrcModel(), 3);
}
@Test(expected = AnalysisModelException.class)
public void tryToCreateNewModuleInWrongGroup() throws Exception {
//
Assert.assertEquals(2, getModularizedSystem().getGroups().size());
assertResourceModuleCountInModularizedSystem(getModularizedSystem(), 2);
assertResourceModuleCount(getBinModel(), 2);
assertResourceModuleCount(getSrcModel(), 2);
// We have 2 (!) transformations here, as the "CreateGroupTransformation" is
// implemented as an inner transformation
Assert.assertEquals(2, getModularizedSystem().getTransformations().size());
// STEP 1: create a new module
IModuleArtifact moduleArtifact = getBinModel().getRootArtifact().getOrCreateModule(
"group1/SimpleArtifactModelTest", "1.0.0");
}
}