package net.sourceforge.cobertura.bugs; import static org.junit.Assert.*; import groovy.util.Node; import org.junit.Test; import net.sourceforge.cobertura.test.AbstractCoberturaTestCase; import net.sourceforge.cobertura.test.util.TestUtils; public class GithubIssue30 extends AbstractCoberturaTestCase { Node dom; @Override public void setUp() throws Exception { super.setUp(); dom = super.createAndExecuteMainMethod(packageName, fileName, file1, mainMethod); } @Test public void testIssue() { assertTrue(TestUtils.getTotalHitCount(dom, "mypackage.InstrumentationFailsOnFirstNewClassInTryBlock", "saveToDatabase") > 0); assertEquals(3, TestUtils.getTotalHitCount(dom, "mypackage.InstrumentationFailsOnFirstNewClassInTryBlock", "main")); assertEquals(2, TestUtils.getTotalHitCount(dom, "mypackage.DataAccess", "<init>")); } static final String packageName = "mypackage"; static final String fileName = "InstrumentationFailsOnFirstNewClassInTryBlock"; static final String mainMethod = "mypackage.InstrumentationFailsOnFirstNewClassInTryBlock"; static final String file1 = "package mypackage;" + "\n public class InstrumentationFailsOnFirstNewClassInTryBlock {" + "\n " + "\n " + "\n public void saveToDatabase() {" + "\n try {" + "\n // boolean b=false;" + "\n // if (b) {" + "\n // System.out.println(\"no action\");" + "\n // }" + "\n DataAccess da = new DataAccess();" + "\n System.out.println(\"nothing\");" + "\n " + "\n } catch (Exception e) {" + "\n " + "\n " + "\n }" + "\n }" + "\n public static void main(String[] args) {" + "\n InstrumentationFailsOnFirstNewClassInTryBlock ifofncitb = new InstrumentationFailsOnFirstNewClassInTryBlock();" + "\n ifofncitb.saveToDatabase();" + "\n }" + "\n }" + "\n class DataAccess {" + "\n public DataAccess() {" + "\n //To change body of created methods use File | Settings | File Templates." + "\n }" + "\n }"; }