fit.SummaryFixture Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fitnesse Show documentation
Show all versions of fitnesse Show documentation
The fully integrated standalone wiki, and acceptance testing framework.
The newest version!
// Modified or written by Object Mentor, Inc. for inclusion with FitNesse.
// Copyright (c) 2002 Cunningham & Cunningham, Inc.
// Released under the terms of the GNU General Public License version 2 or later.
package fit;
// Copyright (c) 2002 Cunningham & Cunningham, Inc.
// Released under the terms of the GNU General Public License version 2 or later.
import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;
public class SummaryFixture extends Fixture {
public static final String countsKey = "counts";
@Override
public void doTable(Parse table) {
summary.put(countsKey, counts());
SortedSet keys = new TreeSet<>(summary.keySet());
table.parts.more = rows(keys.iterator());
}
protected Parse rows(Iterator keys) {
if (keys.hasNext()) {
String key = keys.next();
Parse result =
tr(
td(key,
td(summary.get(key).toString(),
null)),
rows(keys));
if (key.equals(countsKey)) {
mark(result);
}
return result;
} else {
return null;
}
}
protected Parse tr(Parse parts, Parse more) {
return new Parse("tr", null, parts, more);
}
protected Parse td(String body, Parse more) {
return new Parse("td", gray(body), null, more);
}
protected void mark(Parse row) {
// mark summary good/bad without counting beyond here
Counts official = counts;
counts = new Counts();
Parse cell = row.parts.more;
if (official.wrong + official.exceptions > 0) {
wrong(cell);
} else {
right(cell);
}
counts = official;
}
}