1
1
/**
2
2
* Copyright 2013 Netflix, Inc.
3
- *
3
+ *
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
6
6
* You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
10
* Unless required by applicable law or agreed to in writing, software
11
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
19
import static org .mockito .Mockito .*;
20
20
21
21
import org .junit .Test ;
22
+ import org .mockito .InOrder ;
22
23
import org .mockito .Mockito ;
23
24
24
25
import rx .Observer ;
@@ -42,10 +43,6 @@ public void testNeverCompleted() {
42
43
subject .onNext ("two" );
43
44
subject .onNext ("three" );
44
45
45
- assertNeverCompletedObserver (aObserver );
46
- }
47
-
48
- private void assertNeverCompletedObserver (Observer <String > aObserver ) {
49
46
verify (aObserver , Mockito .never ()).onNext (anyString ());
50
47
verify (aObserver , Mockito .never ()).onError (testException );
51
48
verify (aObserver , Mockito .never ()).onCompleted ();
@@ -64,10 +61,6 @@ public void testCompleted() {
64
61
subject .onNext ("three" );
65
62
subject .onCompleted ();
66
63
67
- assertCompletedObserver (aObserver );
68
- }
69
-
70
- private void assertCompletedObserver (Observer <String > aObserver ) {
71
64
verify (aObserver , times (1 )).onNext ("three" );
72
65
verify (aObserver , Mockito .never ()).onError (any (Throwable .class ));
73
66
verify (aObserver , times (1 )).onCompleted ();
@@ -89,10 +82,6 @@ public void testError() {
89
82
subject .onError (new Throwable ());
90
83
subject .onCompleted ();
91
84
92
- assertErrorObserver (aObserver );
93
- }
94
-
95
- private void assertErrorObserver (Observer <String > aObserver ) {
96
85
verify (aObserver , Mockito .never ()).onNext (anyString ());
97
86
verify (aObserver , times (1 )).onError (testException );
98
87
verify (aObserver , Mockito .never ()).onCompleted ();
@@ -110,15 +99,14 @@ public void testUnsubscribeBeforeCompleted() {
110
99
subject .onNext ("two" );
111
100
112
101
subscription .unsubscribe ();
113
- assertNoOnNextEventsReceived (aObserver );
102
+
103
+ verify (aObserver , Mockito .never ()).onNext (anyString ());
104
+ verify (aObserver , Mockito .never ()).onError (any (Throwable .class ));
105
+ verify (aObserver , Mockito .never ()).onCompleted ();
114
106
115
107
subject .onNext ("three" );
116
108
subject .onCompleted ();
117
109
118
- assertNoOnNextEventsReceived (aObserver );
119
- }
120
-
121
- private void assertNoOnNextEventsReceived (Observer <String > aObserver ) {
122
110
verify (aObserver , Mockito .never ()).onNext (anyString ());
123
111
verify (aObserver , Mockito .never ()).onError (any (Throwable .class ));
124
112
verify (aObserver , Mockito .never ()).onCompleted ();
@@ -146,4 +134,21 @@ public void call(AsyncSubject<Object> DefaultSubject) {
146
134
null
147
135
);
148
136
}
137
+
138
+ @ Test
139
+ public void testEmptySubjectCompleted () {
140
+ AsyncSubject <String > subject = AsyncSubject .create ();
141
+
142
+ @ SuppressWarnings ("unchecked" )
143
+ Observer <String > aObserver = mock (Observer .class );
144
+ subject .subscribe (aObserver );
145
+
146
+ subject .onCompleted ();
147
+
148
+ InOrder inOrder = inOrder (aObserver );
149
+ inOrder .verify (aObserver , never ()).onNext (null );
150
+ inOrder .verify (aObserver , never ()).onNext (any (String .class ));
151
+ inOrder .verify (aObserver , times (1 )).onCompleted ();
152
+ inOrder .verifyNoMoreInteractions ();
153
+ }
149
154
}
0 commit comments