2
2
3
3
import org .junit .AfterClass ;
4
4
import org .junit .Test ;
5
- import org .junit .internal .runners .ErrorReportingRunner ;
6
5
import org .junit .runner .Description ;
7
6
import org .junit .runner .JUnitCore ;
8
7
import org .junit .runner .Request ;
9
8
import org .junit .runner .Result ;
10
9
import org .junit .runner .RunWith ;
11
- import org .junit .runner .Runner ;
12
10
import org .junit .runner .notification .RunListener ;
13
11
import org .junit .runners .BlockJUnit4ClassRunner ;
14
- import org .junit .runners .model .InitializationError ;
15
12
13
+ import java .util .ArrayList ;
14
+ import java .util .List ;
15
+
16
+ import static java .util .Arrays .asList ;
17
+ import static java .util .Collections .singletonList ;
16
18
import static org .junit .Assert .assertEquals ;
17
19
18
20
public class ThreadsTest {
19
- private String log = "" ;
21
+
22
+ private List <Boolean > interruptedFlags = new ArrayList <Boolean >();
23
+ private JUnitCore core = new JUnitCore ();
20
24
21
25
public static class TestWithInterrupt {
22
26
@@ -34,18 +38,17 @@ public void otherTestCaseInterruptingCurrentThread() {
34
38
35
39
@ Test
36
40
public void currentThreadInterruptedStatusIsClearedAfterEachTestExecution () {
37
- log = "" ;
38
- JUnitCore jUnitCore = new JUnitCore ();
39
- jUnitCore .addListener (new RunListener () {
41
+ core .addListener (new RunListener () {
40
42
@ Override
41
43
public void testFinished (Description description ) {
42
- log += Thread .currentThread ().isInterrupted () + " " ;
44
+ interruptedFlags . add ( Thread .currentThread ().isInterrupted ()) ;
43
45
}
44
46
});
45
47
46
- Result result = jUnitCore .run (TestWithInterrupt .class );
48
+ Result result = core .run (TestWithInterrupt .class );
49
+
47
50
assertEquals (0 , result .getFailureCount ());
48
- assertEquals (" false false " , log );
51
+ assertEquals (asList ( false , false ), interruptedFlags );
49
52
}
50
53
51
54
@ RunWith (BlockJUnit4ClassRunner .class )
@@ -63,29 +66,18 @@ public void test() {
63
66
64
67
@ Test
65
68
public void currentThreadInterruptStatusIsClearedAfterSuiteExecution () {
66
- log = "" ;
67
- JUnitCore jUnitCore = new JUnitCore ();
68
- jUnitCore .addListener (new RunListener () {
69
+ core .addListener (new RunListener () {
69
70
@ Override
70
- public void testSuiteFinished (Description description ) throws Exception {
71
- log += Thread .currentThread ().isInterrupted ();
71
+ public void testSuiteFinished (Description description ) {
72
+ interruptedFlags . add ( Thread .currentThread ().isInterrupted () );
72
73
}
73
74
});
74
75
75
- Request request = new Request () {
76
- @ Override
77
- public Runner getRunner () {
78
- try {
79
- return new BlockJUnit4ClassRunner (TestWithInterruptFromAfterClass .class ) {
80
- };
81
- } catch (InitializationError e ) {
82
- return new ErrorReportingRunner (TestWithInterruptFromAfterClass .class , e );
83
- }
84
- }
85
- };
76
+ Request request = Request .aClass (TestWithInterruptFromAfterClass .class );
77
+
78
+ Result result = core .run (request );
86
79
87
- Result result = jUnitCore .run (request );
88
80
assertEquals (0 , result .getFailureCount ());
89
- assertEquals (" false" , log );
81
+ assertEquals (singletonList ( false ), interruptedFlags );
90
82
}
91
83
}
0 commit comments