Skip to content

Commit e70a0ba

Browse files
committed
fix issues with doOnNextCount() operator, add tests
1 parent 632904a commit e70a0ba

File tree

8 files changed

+103
-13
lines changed

8 files changed

+103
-13
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ sourceCompatibility = JavaVersion.VERSION_1_8
1818
targetCompatibility = JavaVersion.VERSION_1_8
1919

2020
dependencies {
21-
compile 'io.reactivex.rxjava2:rxjava:2.1.3'
21+
compile 'io.reactivex.rxjava2:rxjava:2.1.6'
2222
testCompile 'junit:junit-dep:4.+'
2323
testCompile 'org.mockito:mockito-core:1.8.5'
2424
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=2.2.0
1+
version=2.2.2

gradle/wrapper/gradle-wrapper.jar

3.67 KB
Binary file not shown.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Wed Feb 05 12:05:54 CET 2014
1+
#Sun Nov 26 18:15:25 CST 2017
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=http\://services.gradle.org/distributions/gradle-2.8-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

gradlew

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,6 @@ case "`uname`" in
4242
;;
4343
esac
4444

45-
# For Cygwin, ensure paths are in UNIX format before anything is touched.
46-
if $cygwin ; then
47-
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
48-
fi
49-
5045
# Attempt to set APP_HOME
5146
# Resolve links: $0 may be a link
5247
PRG="$0"
@@ -61,9 +56,9 @@ while [ -h "$PRG" ] ; do
6156
fi
6257
done
6358
SAVED="`pwd`"
64-
cd "`dirname \"$PRG\"`/" >&-
59+
cd "`dirname \"$PRG\"`/" >/dev/null
6560
APP_HOME="`pwd -P`"
66-
cd "$SAVED" >&-
61+
cd "$SAVED" >/dev/null
6762

6863
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
6964

@@ -114,6 +109,7 @@ fi
114109
if $cygwin ; then
115110
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
116111
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112+
JAVACMD=`cygpath --unix "$JAVACMD"`
117113

118114
# We build the pattern for arguments to be converted via cygpath
119115
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`

src/main/java/io/reactivex/rxjavafx/transformers/FxFlowableTransformers.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,9 @@ public void onNext(T t) {
217217
if (done)
218218
return;
219219
try {
220+
++count;
220221
if (ctObserver.doOnNextCountAction != null)
221-
ctObserver.doOnNextCountAction.accept(++count);
222+
ctObserver.doOnNextCountAction.accept(count);
222223
} catch(Exception e) {
223224
Exceptions.throwIfFatal(e);
224225
onError(e);

src/main/java/io/reactivex/rxjavafx/transformers/FxObservableTransformers.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,9 @@ public void onNext(T t) {
210210
if (done)
211211
return;
212212
try {
213+
++count;
213214
if (ctObserver.doOnNextCountAction != null)
214-
ctObserver.doOnNextCountAction.accept(++count);
215+
ctObserver.doOnNextCountAction.accept(count);
215216
} catch(Exception e) {
216217
Exceptions.throwIfFatal(e);
217218
onError(e);
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package io.reactivex.rxjavafx.operators;
2+
3+
import io.reactivex.Flowable;
4+
import io.reactivex.Observable;
5+
import io.reactivex.rxjavafx.transformers.FxFlowableTransformers;
6+
import io.reactivex.rxjavafx.transformers.FxObservableTransformers;
7+
import org.junit.Assert;
8+
import org.junit.Test;
9+
10+
import java.util.ArrayList;
11+
import java.util.Arrays;
12+
import java.util.List;
13+
import java.util.concurrent.atomic.AtomicInteger;
14+
15+
public final class OperatorsTest {
16+
17+
@Test
18+
public void testDoOnNextCountObservable() {
19+
20+
final List<Integer> onNextCounts = new ArrayList<>();
21+
22+
Observable.just("Alpha", "Beta", "Gamma")
23+
.compose(FxObservableTransformers.doOnNextCount(onNextCounts::add))
24+
.subscribe();
25+
26+
Assert.assertTrue(onNextCounts.containsAll(Arrays.asList(1, 2, 3)));
27+
}
28+
29+
@Test
30+
public void testDoOnCompleteCountObservable() {
31+
AtomicInteger onCompleteCount = new AtomicInteger();
32+
33+
34+
Observable.just("Alpha", "Beta", "Gamma")
35+
.compose(FxObservableTransformers.doOnCompleteCount(onCompleteCount::set))
36+
.subscribe();
37+
38+
Assert.assertTrue(onCompleteCount.get() == 3);
39+
}
40+
41+
@Test
42+
public void testDoOnErrorCountObservable() {
43+
AtomicInteger onErrorCount = new AtomicInteger();
44+
45+
46+
Observable.just(5, 10, 15, 0, 20)
47+
.map(i -> 5 / i)
48+
.compose(FxObservableTransformers.doOnErrorCount(onErrorCount::set))
49+
.subscribe();
50+
51+
Assert.assertTrue(onErrorCount.get() == 3);
52+
}
53+
54+
55+
@Test
56+
public void testDoOnNextCountFlowable() {
57+
58+
final List<Integer> onNextCounts = new ArrayList<>();
59+
60+
61+
Flowable.just("Alpha", "Beta", "Gamma")
62+
.compose(FxFlowableTransformers.doOnNextCount(onNextCounts::add))
63+
.subscribe();
64+
65+
Assert.assertTrue(onNextCounts.containsAll(Arrays.asList(1, 2, 3)));
66+
}
67+
68+
@Test
69+
public void testDoOnCompleteCountFlowable() {
70+
AtomicInteger onCompleteCount = new AtomicInteger();
71+
72+
73+
Flowable.just("Alpha", "Beta", "Gamma")
74+
.compose(FxFlowableTransformers.doOnCompleteCount(onCompleteCount::set))
75+
.subscribe();
76+
77+
Assert.assertTrue(onCompleteCount.get() == 3);
78+
}
79+
80+
@Test
81+
public void testDoOnErrorCountFlowable() {
82+
AtomicInteger onErrorCount = new AtomicInteger();
83+
84+
85+
Flowable.just(5, 10, 15, 0, 20)
86+
.map(i -> 5 / i)
87+
.compose(FxFlowableTransformers.doOnErrorCount(onErrorCount::set))
88+
.subscribe();
89+
90+
Assert.assertTrue(onErrorCount.get() == 3);
91+
}
92+
}

0 commit comments

Comments
 (0)