package org.bundlemaker.core.itest.jedit_artifact_model;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
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.IRootArtifact;
import org.bundlemaker.core.itestframework.jedit_model.AbstractJeditAnalysisModelTest;
import org.junit.Test;
/**
* <p>
* </p>
*
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public class GetOrCreateNewModule extends AbstractJeditAnalysisModelTest {
/**
* <p>
* </p>
*/
@Test
public void createNewModule_BinFlatModel() {
getOrCreateModule(getBinFlatModel().getRootArtifact());
}
/**
* <p>
* </p>
*/
@Test
public void createNewModule_SrcFlatModel() {
getOrCreateModule(getSrcFlatModel().getRootArtifact());
}
/**
* <p>
* </p>
*/
@Test
public void createNewModule_BinHierarchicalModel() {
getOrCreateModule(getBinHierarchicalModel().getRootArtifact());
}
/**
* <p>
* </p>
*/
@Test
public void createNewModule_SrcHierarchicalModel() {
getOrCreateModule(getSrcHierarchicalModel().getRootArtifact());
}
/**
* <p>
* </p>
*
* @param rootArtifact
*/
private void getOrCreateModule(IRootArtifact rootArtifact) {
//
Assert.assertNull("Group 'groupTest1' does exist!",
AnalysisModelQueries.findGroupArtifactByQualifiedName(rootArtifact, "groupTest1"));
//
IModuleArtifact moduleArtifact = rootArtifact.getOrCreateModule("groupTest1/groupTest2/MyModule", "1.0.0");
assertNotNull(moduleArtifact);
// assert the new module in all models
assertModule(getBinFlatModel().getRootArtifact());
assertModule(getSrcFlatModel().getRootArtifact());
assertModule(getBinHierarchicalModel().getRootArtifact());
assertModule(getSrcHierarchicalModel().getRootArtifact());
}
/**
* <p>
* </p>
*
* @param rootArtifact
*/
private void assertModule(IRootArtifact rootArtifact) {
// assert that 'groupTest1' exists
Assert.assertNotNull("Group 'groupTest1' does not exist!",
AnalysisModelQueries.findGroupArtifactByQualifiedName(rootArtifact, "groupTest1"));
// assert that 'groupTest2' exists
Assert.assertNotNull("Group 'groupTest2' does not exist!",
AnalysisModelQueries.findGroupArtifactByQualifiedName(rootArtifact, "groupTest1/groupTest2"));
// assert that 'MyModule_1.0.0' exists
IModuleArtifact moduleArtifact = AnalysisModelQueries.getModuleArtifact(rootArtifact, "MyModule", "1.0.0");
Assert.assertNotNull("Module 'MyModule_1.0.0' does not exist!", moduleArtifact);
assertNotNull(moduleArtifact.getParent());
assertEquals("groupTest2", moduleArtifact.getParent().getName());
assertEquals("groupTest1/groupTest2/MyModule_1.0.0", moduleArtifact.getQualifiedName());
// get module artifact
IModuleArtifact module2Artifact = rootArtifact.getOrCreateModule("groupTest1/groupTest2/MyModule", "1.0.0");
assertSame(module2Artifact, moduleArtifact);
// get module artifact again
IGroupArtifact groupTest2Artifact = (IGroupArtifact) moduleArtifact.getParent();
module2Artifact = groupTest2Artifact.getOrCreateModule("/groupTest1/groupTest2/MyModule", "1.0.0");
assertSame(module2Artifact, moduleArtifact);
}
}