}
Dsm<Resource> dsm = getDsm(children, feedbackEdges);
// Optimization, don't save DSM if there is no dependency at all
- if (dsm.hasAtLeastOneDependency()) {
- saveDsm(context, dsm);
- }
+ saveDsm(context, dsm);
}
}
public void testDirectoryDsmDecoratorNoDependency() {
decorator.decorate(dir, dirContext);
- verify(dirContext, times(4)).saveMeasure(any(Measure.class));
+ verify(dirContext, times(5)).saveMeasure(any(Measure.class));
verify(dirContext).saveMeasure(isMeasureWithValue(CoreMetrics.FILE_CYCLES, 0.0));
verify(dirContext).saveMeasure(isMeasureWithValue(CoreMetrics.FILE_FEEDBACK_EDGES, 0.0));
verify(dirContext).saveMeasure(isMeasureWithValue(CoreMetrics.FILE_TANGLES, 0.0));
verify(dirContext).saveMeasure(isMeasureWithValue(CoreMetrics.FILE_EDGES_WEIGHT, 0.0));
+ verify(dirContext).saveMeasure(
+ isMeasureWithValue(CoreMetrics.DEPENDENCY_MATRIX,
+ "[{\"i\":1,\"n\":\"Foo1.java\",\"q\":\"FIL\",\"v\":[{},{}]},{\"i\":2,\"n\":\"Foo2.java\",\"q\":\"FIL\",\"v\":[{},{}]}]"));
+
}
@Test
*/
package org.sonar.batch.design;
-import edu.emory.mathcs.backport.java.util.Collections;
import org.apache.commons.lang.ObjectUtils;
import org.junit.Before;
import org.junit.Test;
Project child = new Project("child").setParent(p);
decorator.decorate(p, rootContext);
- // Should not do anything if module has no dir
- when(rootContext.getChildren()).thenReturn(Collections.emptyList());
- decorator.decorate(root, rootContext);
-
- verify(rootContext, never()).saveMeasure(any(Measure.class));
- }
-
- @Test
- public void testProjectDsmDecoratorNoDependency() {
- decorator.decorate(root, rootContext);
-
verify(rootContext, never()).saveMeasure(any(Measure.class));
}
public void testSubProjectDsmDecoratorNoDependency() {
decorator.decorate(module, moduleContext);
- verify(moduleContext, times(4)).saveMeasure(any(Measure.class));
+ verify(moduleContext, times(5)).saveMeasure(any(Measure.class));
verify(moduleContext).saveMeasure(isMeasureWithValue(CoreMetrics.DIRECTORY_CYCLES, 0.0));
verify(moduleContext).saveMeasure(isMeasureWithValue(CoreMetrics.DIRECTORY_FEEDBACK_EDGES, 0.0));
verify(moduleContext).saveMeasure(isMeasureWithValue(CoreMetrics.DIRECTORY_TANGLES, 0.0));
verify(moduleContext).saveMeasure(isMeasureWithValue(CoreMetrics.DIRECTORY_EDGES_WEIGHT, 0.0));
+ verify(moduleContext).saveMeasure(isMeasureWithValue(CoreMetrics.DEPENDENCY_MATRIX,
+ "[{\"i\":1,\"n\":\"src/foo1\",\"q\":\"DIR\",\"v\":[{},{}]},{\"i\":2,\"n\":\"src/foo2\",\"q\":\"DIR\",\"v\":[{},{}]}]"));
}
@Test
private final DsmCell[][] cells;
private final int dimension;
private final DirectedGraphAccessor<V, ? extends Edge<V>> graph;
- private boolean atLeastOneDependency = false;
public Dsm(DirectedGraphAccessor<V, ? extends Edge<V>> graph, Collection<V> vertices, Set<Edge> feedbackEdges) {
this.graph = graph;
Edge<V> edge = graph.getEdge(from, to);
if (edge != null) {
- atLeastOneDependency = true;
boolean isFeedbackEdge = feedbackEdges.contains(edge);
result[x][y] = new DsmCell(edge, isFeedbackEdge);
}
return cells[x][y];
}
- /**
- * @since 5.0
- */
- public boolean hasAtLeastOneDependency() {
- return atLeastOneDependency;
- }
-
public V[] getVertices() {
V[] verticesCopy = (V[]) new Object[vertices.length];
System.arraycopy(vertices, 0, verticesCopy, 0, vertices.length);