1
1
package org .junit .runner .notification ;
2
2
3
3
import static org .hamcrest .CoreMatchers .instanceOf ;
4
- import static org .hamcrest .core .Is .is ;
5
- import static org .junit .Assert .assertNotNull ;
4
+ import static org .hamcrest .CoreMatchers .not ;
6
5
import static org .junit .Assert .assertSame ;
7
6
import static org .junit .Assert .assertThat ;
8
-
9
- import java .util .concurrent .atomic .AtomicInteger ;
10
-
7
+ import static org .junit .testsupport .EventCollectorMatchers .hasNoFailure ;
8
+ import static org .junit .testsupport .EventCollectorMatchers .hasNumberOfTestsStarted ;
11
9
import org .junit .Test ;
12
- import org .junit .runner .Description ;
13
10
import org .junit .runner .Result ;
11
+ import org .junit .testsupport .EventCollector ;
14
12
15
13
public class RunNotifierTest {
16
14
private final RunNotifier fNotifier = new RunNotifier ();
17
15
18
16
@ Test
19
17
public void notifiesSecondListenerIfFirstThrowsException () {
20
- FailureListener failureListener = new FailureListener ();
18
+ EventCollector eventCollector = new EventCollector ();
21
19
fNotifier .addListener (new CorruptListener ());
22
- fNotifier .addListener (failureListener );
20
+ fNotifier .addListener (eventCollector );
23
21
fNotifier .fireTestFailure (new Failure (null , null ));
24
- assertNotNull ("The FailureListener registered no failure." ,
25
- failureListener .failure );
22
+ assertThat (eventCollector , not (hasNoFailure ()));
26
23
}
27
24
28
25
@ Test
29
26
public void hasNoProblemsWithFailingListeners () { // see issues 209 and 395
30
27
fNotifier .addListener (new CorruptListener ());
31
- fNotifier .addListener (new FailureListener ());
28
+ fNotifier .addListener (new EventCollector ());
32
29
fNotifier .addListener (new CorruptListener ());
33
30
fNotifier .fireTestRunFinished (new Result ());
34
31
}
@@ -44,88 +41,70 @@ public void testFailure(Failure failure) throws Exception {
44
41
throw new RuntimeException ();
45
42
}
46
43
}
47
-
44
+
48
45
@ Test
49
46
public void addAndRemoveWithNonThreadSafeListener () {
50
- CountingListener listener = new CountingListener ();
51
- assertThat (listener . fTestStarted . get (), is (0 ));
47
+ EventCollector listener = new EventCollector ();
48
+ assertThat (listener , hasNumberOfTestsStarted (0 ));
52
49
fNotifier .addListener (listener );
53
50
fNotifier .fireTestStarted (null );
54
- assertThat (listener . fTestStarted . get (), is (1 ));
51
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
55
52
fNotifier .removeListener (listener );
56
53
fNotifier .fireTestStarted (null );
57
- assertThat (listener . fTestStarted . get (), is (1 ));
54
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
58
55
}
59
56
60
57
@ Test
61
58
public void addFirstAndRemoveWithNonThreadSafeListener () {
62
- CountingListener listener = new CountingListener ();
63
- assertThat (listener . fTestStarted . get (), is (0 ));
59
+ EventCollector listener = new EventCollector ();
60
+ assertThat (listener , hasNumberOfTestsStarted (0 ));
64
61
fNotifier .addFirstListener (listener );
65
62
fNotifier .fireTestStarted (null );
66
- assertThat (listener . fTestStarted . get (), is (1 ));
63
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
67
64
fNotifier .removeListener (listener );
68
65
fNotifier .fireTestStarted (null );
69
- assertThat (listener . fTestStarted . get (), is (1 ));
66
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
70
67
}
71
-
68
+
72
69
@ Test
73
70
public void addAndRemoveWithThreadSafeListener () {
74
71
ThreadSafeListener listener = new ThreadSafeListener ();
75
- assertThat (listener . fTestStarted . get (), is (0 ));
72
+ assertThat (listener , hasNumberOfTestsStarted (0 ));
76
73
fNotifier .addListener (listener );
77
74
fNotifier .fireTestStarted (null );
78
- assertThat (listener . fTestStarted . get (), is (1 ));
75
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
79
76
fNotifier .removeListener (listener );
80
77
fNotifier .fireTestStarted (null );
81
- assertThat (listener . fTestStarted . get (), is (1 ));
78
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
82
79
}
83
80
84
81
@ Test
85
82
public void addFirstAndRemoveWithThreadSafeListener () {
86
83
ThreadSafeListener listener = new ThreadSafeListener ();
87
- assertThat (listener . fTestStarted . get (), is (0 ));
84
+ assertThat (listener , hasNumberOfTestsStarted (0 ));
88
85
fNotifier .addFirstListener (listener );
89
86
fNotifier .fireTestStarted (null );
90
- assertThat (listener . fTestStarted . get (), is (1 ));
87
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
91
88
fNotifier .removeListener (listener );
92
89
fNotifier .fireTestStarted (null );
93
- assertThat (listener . fTestStarted . get (), is (1 ));
90
+ assertThat (listener , hasNumberOfTestsStarted (1 ));
94
91
}
95
92
96
93
@ Test
97
94
public void wrapIfNotThreadSafeShouldNotWrapThreadSafeListeners () {
98
- ThreadSafeListener listener = new ThreadSafeListener ();;
95
+ ThreadSafeListener listener = new ThreadSafeListener ();
99
96
assertSame (listener , new RunNotifier ().wrapIfNotThreadSafe (listener ));
100
97
}
101
98
102
99
@ Test
103
100
public void wrapIfNotThreadSafeShouldWrapNonThreadSafeListeners () {
104
- CountingListener listener = new CountingListener ();
101
+ EventCollector listener = new EventCollector ();
105
102
RunListener wrappedListener = new RunNotifier ().wrapIfNotThreadSafe (listener );
106
103
assertThat (wrappedListener , instanceOf (SynchronizedRunListener .class ));
107
104
}
108
105
109
- private static class FailureListener extends RunListener {
110
- private Failure failure ;
111
-
112
- @ Override
113
- public void testFailure (Failure failure ) throws Exception {
114
- this .failure = failure ;
115
- }
116
- }
117
-
118
- private static class CountingListener extends RunListener {
119
- final AtomicInteger fTestStarted = new AtomicInteger (0 );
120
-
121
- @ Override
122
- public void testStarted (Description description ) throws Exception {
123
- fTestStarted .incrementAndGet ();
124
- }
125
- }
126
-
127
106
@ RunListener .ThreadSafe
128
- private static class ThreadSafeListener extends CountingListener {
107
+ private static class ThreadSafeListener extends EventCollector {
129
108
}
130
109
131
110
}
0 commit comments