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 15
15
*/
16
16
package rx .subscriptions ;
17
17
18
+ import static org .mockito .Mockito .mock ;
19
+ import static org .mockito .Mockito .times ;
20
+ import static org .mockito .Mockito .verify ;
21
+
18
22
import java .util .concurrent .Future ;
19
23
24
+ import org .junit .Test ;
25
+
20
26
import rx .Subscription ;
27
+ import rx .operators .SafeObservableSubscription ;
21
28
import rx .util .functions .Action0 ;
22
29
23
30
/**
@@ -41,14 +48,14 @@ public static Subscription empty() {
41
48
* @return {@link Subscription}
42
49
*/
43
50
public static Subscription create (final Action0 unsubscribe ) {
44
- return new Subscription () {
51
+ return new SafeObservableSubscription ( new Subscription () {
45
52
46
53
@ Override
47
54
public void unsubscribe () {
48
55
unsubscribe .call ();
49
56
}
50
57
51
- };
58
+ }) ;
52
59
}
53
60
54
61
/**
@@ -122,4 +129,15 @@ public static CompositeSubscription create(Subscription... subscriptions) {
122
129
public void unsubscribe () {
123
130
}
124
131
};
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
+ }
125
143
}
You can’t perform that action at this time.
0 commit comments