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.algorithms.AdjacencyMatrix;
import org.eclipse.core.runtime.Path;
import org.junit.Assert;
public class SimpleArtifactModelAssert {
/**
* <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 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());
}
/**
* <p>
* </p>
*
* @param binModel
* @param srcModel
*/
public static void assert_Main_Jre_G1_G2_Dependencies(SimpleArtifactModel model, int[][] matrix) {
//
Assert.assertArrayEquals(
matrix,
AdjacencyMatrix.computeAdjacencyMatrix(null, model.getMainModuleArtifact(), model.getJreArtifact(),
model.getGroup1Artifact(), model.getGroup2Artifact()));
}
/**
* <p>
* </p>
*
* @param name
* @param version
*/
public static void assertMainModuleNameAndVersion(SimpleArtifactModel model, String name, String version) {
// assert resource module count == 1
assertResourceModuleCount(model, 2);
//
Assert.assertEquals(name + "_" + version, model.getMainModuleArtifact().getName());
Assert.assertTrue(model.getMainModuleArtifact().getQualifiedName().endsWith(name + "_" + version));
Assert.assertEquals(name, model.getMainModuleArtifact().getModuleName());
Assert.assertEquals(version, model.getMainModuleArtifact().getModuleVersion());
}
}