package test.jdepend.service;
import test.common.TestConfigUtil;
import jdepend.framework.util.MetricsFormat;
import jdepend.model.Component;
import jdepend.model.Relation;
import jdepend.model.component.JarComponent;
import jdepend.model.result.AnalysisResult;
import jdepend.service.JDependLocalService;
import jdepend.service.ServiceFactory;
import junit.framework.TestCase;
public class ServiceTest extends TestCase {
private AnalysisResult result;
@Override
protected void setUp() throws Exception {
JDependLocalService service = ServiceFactory.createJDependLocalService();
for (String p : TestConfigUtil.getSelfPath()) {
service.addDirectory(p);
}
Component component = new JarComponent();
service.setComponent(component);
result = service.analyze();
}
public void testResult() {
System.out.println(result);
}
public void testScore() {
System.out.println("\nScore(总分):" + MetricsFormat.toFormattedMetrics(result.getScore()));
System.out.println("D(抽象程度合理性得分):" + MetricsFormat.toFormattedMetrics(result.getDistance()));
System.out.println("Balance(內聚性得分):" + MetricsFormat.toFormattedMetrics(result.getBalance()));
System.out.println("Encapsulation(封装性得分):" + MetricsFormat.toFormattedMetrics(result.getEncapsulation()));
System.out.println("RelationRationality(关系合理性性得分):"
+ MetricsFormat.toFormattedMetrics(result.getRelationRationality()));
}
public void testComponentList() {
for (Component component : result.getComponents()) {
System.out.println("\nName:" + component.getName());
System.out.println("Area:" + component.getAreaComponent());
System.out.println("Layer(所属层次):" + component.getLayerDesc());
System.out.println("Stability(稳定性):" + MetricsFormat.toFormattedMetrics(component.getStability()));
System.out.println("Abstractness(抽象性):" + MetricsFormat.toFormattedMetrics(component.getAbstractness()));
System.out.println("Encapsulation(封装性):" + MetricsFormat.toFormattedMetrics(component.getEncapsulation()));
System.out.println("Balance(内聚性):" + MetricsFormat.toFormattedMetrics(component.getBalance()));
System.out.println("Distance(抽象程度合理性):" + MetricsFormat.toFormattedMetrics(component.getDistance()));
System.out.println("Cohesion(内聚值):" + MetricsFormat.toFormattedMetrics(component.getCohesion()));
System.out.println("Coupling(耦合值):" + MetricsFormat.toFormattedMetrics(component.getCoupling()));
System.out.println("Ca(传入):" + component.getAfferentCoupling());
System.out.println("Ce(传出):" + component.getEfferentCoupling());
System.out.println("CN(类数量):" + component.getClassCount());
System.out.println("AC(抽象类数量):" + component.getAbstractClassCount());
System.out.println("LC(代码行数):" + component.getLineCount());
}
}
public void testRelationList() {
for (Relation relation : result.getRelations()) {
System.out.println("\nCurrent:" + relation.getCurrent().getName());
System.out.println("Depend:" + relation.getDepend().getName());
System.out.println("Intensity(关系强度):" + MetricsFormat.toFormattedMetrics(relation.getIntensity()));
System.out.println("Balance(关系关联的组件内聚值之和与关系强度之差):"
+ MetricsFormat.toFormattedMetrics(relation.getBalance()));
System.out.println("isNormality(是否为正常关系):" + relation.isNormality());
System.out.println("isAttention(是否值得关注):" + relation.isAttention());
System.out.println("AttentionType(关注类型):" + relation.getAttentionTypeName());
}
}
}