/testability-explorer/src/test/java/com/google/test/metric/report/DiffReportTest.java
http://testability-explorer.googlecode.com/ · Java · 139 lines · 115 code · 19 blank · 5 comment · 0 complexity · e3d3ecf6c7d253314c67cdbc4805d1e6 MD5 · raw file
- package com.google.test.metric.report;
- import com.google.test.metric.ReportGeneratorProvider;
- import freemarker.template.Configuration;
- import junit.framework.TestCase;
- import java.io.StringWriter;
- import java.io.Writer;
- import java.util.Arrays;
- import java.util.Collections;
- /**
- * Tests for HTML generation of the Diff report
- *
- * @author alexeagle@google.com (Alex Eagle)
- */
- public class DiffReportTest extends TestCase {
- private Writer out;
- private Configuration cfg;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- out = new StringWriter();
- cfg = new Configuration();
- cfg.setTemplateLoader(new ClassPathTemplateLoader(ReportGeneratorProvider.PREFIX));
- }
- @SuppressWarnings("unchecked")
- public void testNoDiffs() throws Exception {
- Diff diff = new Diff(Collections.EMPTY_LIST);
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("<html>", out.toString());
- }
- public void testSourceLinks() throws Exception {
- Diff diff = new Diff(Arrays.asList(new Diff.ClassDiff("com.Foo", 123, 456)));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.setOldSourceUrl("link1/{path}.html");
- diffReport.setNewSourceUrl("link2/{path}.html");
- diffReport.writeHtml(out);
- assertContains("link1/com.Foo.html", out.toString());
- assertContains("link2/com.Foo.html", out.toString());
- }
- public void testClassCostIncreased() throws Exception {
- Diff diff = new Diff(Arrays.asList(new Diff.ClassDiff("Foo", 123, 456)));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("Foo", out.toString());
- assertContains("123", out.toString());
- assertContains("456", out.toString());
- assertContains("class=\"worse", out.toString());
- }
- public void testClassCostDecreased() throws Exception {
- Diff diff = new Diff(Arrays.asList(new Diff.ClassDiff("Foo", 456, 123)));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("Foo", out.toString());
- assertContains("123", out.toString());
- assertContains("456", out.toString());
- assertContains("class=\"better", out.toString());
- }
- public void testClassRemoved() throws Exception {
- Diff diff = new Diff(Arrays.asList(new Diff.ClassDiff("Foo", 456, null)));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("Foo", out.toString());
- assertContains("456", out.toString());
- assertContains("class=\"better", out.toString());
- }
- public void testClassAdded() throws Exception {
- Diff diff = new Diff(Arrays.asList(new Diff.ClassDiff("Foo", null, 456)));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("Foo", out.toString());
- assertContains("456", out.toString());
- assertContains("class=\"worse", out.toString());
- }
- public void testMethodRemoved() throws Exception {
- Diff.MethodDiff methodDiff = new Diff.MethodDiff("doThing", 123, null);
- Diff.ClassDiff classDiff = new Diff.ClassDiff("Foo", 1, 1, Arrays.asList(methodDiff));
- Diff diff = new Diff(Arrays.asList(classDiff));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("doThing", out.toString());
- assertContains("123", out.toString());
- assertContains("class=\"better", out.toString());
- }
- public void testMethodAdded() throws Exception {
- Diff.MethodDiff methodDiff = new Diff.MethodDiff("doThing", null, 123);
- Diff.ClassDiff classDiff = new Diff.ClassDiff("Foo", 1, 1, Arrays.asList(methodDiff));
- Diff diff = new Diff(Arrays.asList(classDiff));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("doThing", out.toString());
- assertContains("123", out.toString());
- assertContains("class=\"worse", out.toString());
- }
- public void testMethodCostIncreased() throws Exception {
- Diff.MethodDiff methodDiff = new Diff.MethodDiff("doThing", 123, 456);
- Diff.ClassDiff classDiff = new Diff.ClassDiff("Foo", 1, 1, Arrays.asList(methodDiff));
- Diff diff = new Diff(Arrays.asList(classDiff));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("doThing", out.toString());
- assertContains("123", out.toString());
- assertContains("456", out.toString());
- assertContains("class=\"worse", out.toString());
- }
- public void testMethodCostDecreased() throws Exception {
- Diff.MethodDiff methodDiff = new Diff.MethodDiff("doThing", 456, 123);
- Diff.ClassDiff classDiff = new Diff.ClassDiff("Foo", 1, 1, Arrays.asList(methodDiff));
- Diff diff = new Diff(Arrays.asList(classDiff));
- DiffReport diffReport = new DiffReport(diff, cfg);
- diffReport.writeHtml(out);
- assertContains("doThing", out.toString());
- assertContains("123", out.toString());
- assertContains("456", out.toString());
- assertContains("class=\"better", out.toString());
- }
- private void assertContains(String expected, String actual) {
- assertTrue(String.format("[%s] expected to contain [%s]", actual, expected),
- actual.contains(expected));
- }
- }