Ignore:
Timestamp:
2016-08-24T00:18:37+02:00 (8 years ago)
Author:
Don-vip
Message:

fix #13434 - Increase bug report test coverage (patch by michael2402) - gsoc-core

Location:
trunk/test/unit/org/openstreetmap/josm/tools/bugreport
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandlerTest.java

    r10819 r10886  
    22package org.openstreetmap.josm.tools.bugreport;
    33
    4 import static org.junit.Assert.assertFalse;
     4import java.util.concurrent.CountDownLatch;
    55
    6 import org.junit.Before;
     6import org.junit.Rule;
    77import org.junit.Test;
    8 import org.openstreetmap.josm.JOSMFixture;
     8import org.openstreetmap.josm.testutils.JOSMTestRules;
     9
     10import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
    911
    1012/**
     
    1214 */
    1315public class BugReportExceptionHandlerTest {
    14 
    1516    /**
    16      * Setup tests.
     17     * No dependencies
    1718     */
    18     @Before
    19     public void setUp() {
    20         JOSMFixture.createUnitTestFixture().init(true);
    21     }
     19    @Rule
     20    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     21    public JOSMTestRules test = new JOSMTestRules();
    2222
    2323    /**
    2424     * Unit test for {@link BugReportExceptionHandler#handleException} method.
     25     * @throws InterruptedException if the current thread is interrupted while waiting
    2526     */
    2627    @Test
    27     public void testHandleException() {
     28    public void testHandleException() throws InterruptedException {
     29        CountDownLatch latch = new CountDownLatch(1);
     30        BugReportQueue.getInstance().addBugReportHandler(e -> {latch.countDown(); return false;});
    2831        BugReportExceptionHandler.handleException(new Exception("testHandleException"));
    29         assertFalse(BugReportExceptionHandler.exceptionHandlingInProgress());
     32        latch.await();
    3033    }
    3134}
  • trunk/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportTest.java

    r10285 r10886  
    33
    44import static org.junit.Assert.assertEquals;
     5import static org.junit.Assert.assertSame;
     6import static org.junit.Assert.assertTrue;
    57
     8import java.io.IOException;
     9import java.io.PrintWriter;
     10import java.io.StringWriter;
     11
     12import org.junit.Rule;
    613import org.junit.Test;
     14import org.openstreetmap.josm.testutils.JOSMTestRules;
     15
     16import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
    717
    818/**
    919 * Tests the bug report class.
    1020 * @author Michael Zangl
    11  * @since 10285
    1221 */
    1322public class BugReportTest {
     23    /**
     24     * Preferences for the report text
     25     */
     26    @Rule
     27    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     28    public JOSMTestRules test = new JOSMTestRules().preferences();
     29
     30    /**
     31     * Test {@link BugReport#getReportText()}
     32     */
     33    @Test
     34    public void testReportText() {
     35        ReportedException e = interceptInChildMethod(new IOException("test-exception-message"));
     36        e.put("test-key", "test-value");
     37        String text = new BugReport(e).getReportText();
     38
     39        assertTrue(text.contains("test-exception-message"));
     40        assertTrue(text.contains("interceptInChildMethod"));
     41        assertTrue(text.contains("testReportText")); // stack trace
     42        assertTrue(text.contains("test-key: test-value"));
     43    }
     44
     45    /**
     46     * Test {@link BugReport#intercept(Throwable)}
     47     */
     48    @Test
     49    public void testIntercept() {
     50        IOException base = new IOException("test");
     51        ReportedException intercepted = interceptInChildMethod(base);
     52        assertEquals(intercepted.getCause(), base);
     53
     54        StringWriter out = new StringWriter();
     55        intercepted.printReportDataTo(new PrintWriter(out));
     56
     57        assertTrue(out.toString().contains("interceptInChildMethod")); // calling method.
     58
     59        assertSame(intercepted, BugReport.intercept(intercepted));
     60    }
     61
     62    private ReportedException interceptInChildMethod(IOException base) {
     63        return BugReport.intercept(base);
     64    }
    1465
    1566    /**
     
    2071        assertEquals("BugReportTest#testGetCallingMethod", BugReport.getCallingMethod(1));
    2172        assertEquals("BugReportTest#testGetCallingMethod", testGetCallingMethod2());
     73        assertEquals("?", BugReport.getCallingMethod(100));
    2274    }
    2375
Note: See TracChangeset for help on using the changeset viewer.