package org.bundlemaker.core.itestframework.simple_artifact_model;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.bundlemaker.core.analysis.IAnalysisModelVisitor;
import org.bundlemaker.core.analysis.IGroupArtifact;
import org.bundlemaker.core.analysis.IModuleArtifact;
import org.bundlemaker.core.analysis.IResourceArtifact;
import org.bundlemaker.core.resource.IModularizedSystem;
import org.eclipse.core.runtime.Path;
import org.junit.Assert;
/**
* <pre>
* Group : group1
* Group : group2
* Module : group1/group2/SimpleArtifactModelTest_1.0.0
* Package : de.test
* Resource : Test.class
* Type : de.test.Test
* Resource : Klasse.class
* Type : de.test.Klasse
* Module : jdk16_jdk16
* </pre>
*
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public class ArtifactAssert {
/**
* <p>
* </p>
*
* @param model
* @return
*/
public static void assertGroupCount(SimpleArtifactModel model, int expectedCount) {
// create the result list
final List<IGroupArtifact> result = new LinkedList<IGroupArtifact>();
// accept the visitor
model.getRootArtifact().accept(new IAnalysisModelVisitor.Adapter() {
@Override
public boolean visit(IGroupArtifact groupArtifact) {
result.add(groupArtifact);
return super.visit(groupArtifact);
}
});
//
if (result.size() != expectedCount) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder
.append(String.format("Expected %s groups, but found %s: %s\n", expectedCount, result.size(), result));
for (Iterator iterator = result.iterator(); iterator.hasNext();) {
IGroupArtifact iGroupArtifact = (IGroupArtifact) iterator.next();
stringBuilder.append(String.format("%s", iGroupArtifact.getQualifiedName()));
if (iterator.hasNext()) {
stringBuilder.append("\n");
}
}
Assert.fail(stringBuilder.toString());
}
}
/**
* <p>
* </p>
*
* @param model
* @param expectedCount
*/
public static void assertResourceModuleCount(SimpleArtifactModel model, int expectedCount) {
// create the result list
final List<IModuleArtifact> result = new LinkedList<IModuleArtifact>();
// accept the visitor
model.getRootArtifact().accept(new IAnalysisModelVisitor.Adapter() {
@Override
public boolean visit(IModuleArtifact moduleArtifact) {
if (moduleArtifact.isResourceModule()) {
result.add(moduleArtifact);
}
return super.visit(moduleArtifact);
}
});
//
if (result.size() != expectedCount) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(String.format("Expected %s modules, but found %s: %s\n", expectedCount, result.size(),
result));
for (Iterator iterator = result.iterator(); iterator.hasNext();) {
IModuleArtifact moduleArtifact = (IModuleArtifact) iterator.next();
stringBuilder.append(String.format("%s", moduleArtifact.getQualifiedName()));
if (iterator.hasNext()) {
stringBuilder.append("\n");
}
}
Assert.fail(stringBuilder.toString());
}
}
/**
* <p>
* </p>
*
* @param module
* @param expectedCount
*/
public static void assertResourcesCount(IModuleArtifact module, int expectedCount) {
// create the result list
final List<IResourceArtifact> result = new LinkedList<IResourceArtifact>();
// accept the visitor
module.accept(new IAnalysisModelVisitor.Adapter() {
@Override
public boolean visit(IResourceArtifact resourceArtifact) {
result.add(resourceArtifact);
return super.visit(resourceArtifact);
}
});
//
if (result.size() != expectedCount) {
//
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(String.format("Expected %s resources, but found %s: %s\n", expectedCount, result.size(),
result));
//
for (Iterator<IResourceArtifact> iterator = result.iterator(); iterator.hasNext();) {
stringBuilder.append(String.format("%s", iterator.next().getQualifiedName()));
if (iterator.hasNext()) {
stringBuilder.append("\n");
}
}
//
Assert.fail(stringBuilder.toString());
}
}
/**
* <p>
* </p>
*
*/
public static void assertGroupCountInModularizedSystem(IModularizedSystem modularizedSystem, int count) {
Assert.assertEquals(String.format("%s.", modularizedSystem.getGroups()), count, modularizedSystem.getGroups()
.size());
}
/**
* <p>
* </p>
*
* @param count
*/
public static void assertResourceModuleCountInModularizedSystem(IModularizedSystem modularizedSystem, int count) {
Assert.assertEquals(String.format("%s.", modularizedSystem.getModules()), count, modularizedSystem
.getModules().size());
}
/**
* <p>
* </p>
*
* @param binModel
* @param srcModel
*/
public static void initialAsserts(SimpleArtifactModel binModel, SimpleArtifactModel srcModel) {
// assert that the underlying resource model is the same
Assert.assertSame(binModel.getMainModuleArtifact().getAssociatedModule(), srcModel.getMainModuleArtifact()
.getAssociatedModule());
// initial classification has to be 'group1/group2'
Assert.assertEquals(new Path("group1/group2"), binModel.getMainModuleArtifact().getAssociatedModule()
.getClassification());
// assert module parent in src model
Assert.assertEquals(srcModel.getGroup2Artifact(), srcModel.getMainModuleArtifact().getParent());
}
}