File tree Expand file tree Collapse file tree 1 file changed +20
-2
lines changed
rxjava-core/src/main/java/rx/subscriptions Expand file tree Collapse file tree 1 file changed +20
-2
lines changed Original file line number Diff line number Diff line change 1515 */
1616package rx .subscriptions ;
1717
18+ import static org .mockito .Mockito .mock ;
19+ import static org .mockito .Mockito .times ;
20+ import static org .mockito .Mockito .verify ;
21+
1822import java .util .concurrent .Future ;
1923
24+ import org .junit .Test ;
25+
2026import rx .Subscription ;
27+ import rx .operators .SafeObservableSubscription ;
2128import rx .util .functions .Action0 ;
2229
2330/**
@@ -41,14 +48,14 @@ public static Subscription empty() {
4148 * @return {@link Subscription}
4249 */
4350 public static Subscription create (final Action0 unsubscribe ) {
44- return new Subscription () {
51+ return new SafeObservableSubscription ( new Subscription () {
4552
4653 @ Override
4754 public void unsubscribe () {
4855 unsubscribe .call ();
4956 }
5057
51- };
58+ }) ;
5259 }
5360
5461 /**
@@ -122,4 +129,15 @@ public static CompositeSubscription create(Subscription... subscriptions) {
122129 public void unsubscribe () {
123130 }
124131 };
132+
133+ public static class UnitTest {
134+ @ Test
135+ public void testUnsubscribeOnlyOnce () {
136+ Action0 unsubscribe = mock (Action0 .class );
137+ Subscription subscription = create (unsubscribe );
138+ subscription .unsubscribe ();
139+ subscription .unsubscribe ();
140+ verify (unsubscribe , times (1 )).call ();
141+ }
142+ }
125143}
You can’t perform that action at this time.
0 commit comments