mockit.coverage.reporting.ListOfCallPoints Maven / Gradle / Ivy
/*
* Copyright (c) 2006 JMockit developers
* This file is subject to the terms of the MIT license (see LICENSE.txt).
*/
package mockit.coverage.reporting;
import java.util.*;
import java.util.regex.*;
import javax.annotation.*;
import mockit.coverage.*;
public final class ListOfCallPoints
{
@Nonnull private static final String EOL = System.getProperty("line.separator");
private static final Pattern LESS_THAN_CHAR = Pattern.compile("<");
@Nonnull private final StringBuilder content;
public ListOfCallPoints() { content = new StringBuilder(100); }
public void insertListOfCallPoints(@Nullable List callPoints) {
if (content.length() == 0) {
content.append(EOL).append(" ");
}
content.append(" ");
content.append(current.getClassName()).append('#');
content.append(LESS_THAN_CHAR.matcher(current.getMethodName()).replaceFirst("<")).append(": ");
content.append(current.getLineNumber());
}
private void appendRepetitionCountIfNeeded(@Nonnull CallPoint callPoint) {
int repetitionCount = callPoint.getRepetitionCount();
if (repetitionCount > 0) {
content.append('x').append(1 + repetitionCount);
}
}
@Nonnull
public String getContents() {
String result = content.toString();
content.setLength(0);
return result;
}
}
").append(EOL).append(" ");
return;
}
content.append(EOL);
CallPoint currentCP = callPoints.get(0);
appendTestMethod(currentCP.getStackTraceElement());
appendRepetitionCountIfNeeded(currentCP);
for (int i = 1, n = callPoints.size(); i < n; i++) {
CallPoint nextCP = callPoints.get(i);
StackTraceElement ste = nextCP.getStackTraceElement();
if (nextCP.isSameTestMethod(currentCP)) {
content.append(", ").append(ste.getLineNumber());
}
else {
content.append("").append(EOL);
appendTestMethod(ste);
}
appendRepetitionCountIfNeeded(nextCP);
currentCP = nextCP;
}
content.append("").append(EOL).append(" ").append(EOL).append(" ");
}
private void appendTestMethod(@Nonnull StackTraceElement current) {
content.append("