11/**
22 * Copyright 2013 Netflix, Inc.
3- *
3+ *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
66 * 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+ *
1010 * Unless required by applicable law or agreed to in writing, software
1111 * distributed under the License is distributed on an "AS IS" BASIS,
1212 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1919import static org .mockito .Mockito .*;
2020
2121import org .junit .Test ;
22+ import org .mockito .InOrder ;
2223import org .mockito .Mockito ;
2324
2425import rx .Observer ;
@@ -42,10 +43,6 @@ public void testNeverCompleted() {
4243 subject .onNext ("two" );
4344 subject .onNext ("three" );
4445
45- assertNeverCompletedObserver (aObserver );
46- }
47-
48- private void assertNeverCompletedObserver (Observer <String > aObserver ) {
4946 verify (aObserver , Mockito .never ()).onNext (anyString ());
5047 verify (aObserver , Mockito .never ()).onError (testException );
5148 verify (aObserver , Mockito .never ()).onCompleted ();
@@ -64,10 +61,6 @@ public void testCompleted() {
6461 subject .onNext ("three" );
6562 subject .onCompleted ();
6663
67- assertCompletedObserver (aObserver );
68- }
69-
70- private void assertCompletedObserver (Observer <String > aObserver ) {
7164 verify (aObserver , times (1 )).onNext ("three" );
7265 verify (aObserver , Mockito .never ()).onError (any (Throwable .class ));
7366 verify (aObserver , times (1 )).onCompleted ();
@@ -89,10 +82,6 @@ public void testError() {
8982 subject .onError (new Throwable ());
9083 subject .onCompleted ();
9184
92- assertErrorObserver (aObserver );
93- }
94-
95- private void assertErrorObserver (Observer <String > aObserver ) {
9685 verify (aObserver , Mockito .never ()).onNext (anyString ());
9786 verify (aObserver , times (1 )).onError (testException );
9887 verify (aObserver , Mockito .never ()).onCompleted ();
@@ -110,15 +99,14 @@ public void testUnsubscribeBeforeCompleted() {
11099 subject .onNext ("two" );
111100
112101 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 ();
114106
115107 subject .onNext ("three" );
116108 subject .onCompleted ();
117109
118- assertNoOnNextEventsReceived (aObserver );
119- }
120-
121- private void assertNoOnNextEventsReceived (Observer <String > aObserver ) {
122110 verify (aObserver , Mockito .never ()).onNext (anyString ());
123111 verify (aObserver , Mockito .never ()).onError (any (Throwable .class ));
124112 verify (aObserver , Mockito .never ()).onCompleted ();
@@ -146,4 +134,21 @@ public void call(AsyncSubject<Object> DefaultSubject) {
146134 null
147135 );
148136 }
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+ }
149154}
0 commit comments