summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de/test/antennapod/util
diff options
context:
space:
mode:
authororionlee <orionlee@yahoo.com>2019-09-30 13:55:50 -0700
committerorionlee <orionlee@yahoo.com>2019-09-30 13:55:50 -0700
commit9459460ed4bc202e6c7ad7f916e7a408593ef9f6 (patch)
tree1bc5ab8d3c1454a65e09b6113c2463919c5c812b /app/src/androidTest/java/de/test/antennapod/util
parentd84fc95f0d7b9bee3eb3970c853072f35bb24c55 (diff)
downloadAntennaPod-9459460ed4bc202e6c7ad7f916e7a408593ef9f6.zip
test refactor - extract common FeedItemEventListener test helper.
Diffstat (limited to 'app/src/androidTest/java/de/test/antennapod/util')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/util/feed/FeedItemEventListener.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/util/feed/FeedItemEventListener.java b/app/src/androidTest/java/de/test/antennapod/util/feed/FeedItemEventListener.java
new file mode 100644
index 000000000..ef371e39b
--- /dev/null
+++ b/app/src/androidTest/java/de/test/antennapod/util/feed/FeedItemEventListener.java
@@ -0,0 +1,46 @@
+package de.test.antennapod.util.feed;
+
+import android.support.annotation.NonNull;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.danoeh.antennapod.core.event.FeedItemEvent;
+import io.reactivex.functions.Consumer;
+
+/**
+ * Test helpers to listen {@link FeedItemEvent} and handle them accordingly
+ *
+ */
+public class FeedItemEventListener {
+ private final List<FeedItemEvent> events = new ArrayList<>();
+
+ /**
+ * Provides an listener subscribing to {@link FeedItemEvent} that the callers can use
+ *
+ * Note: it uses RxJava's version of {@link Consumer} because it allows exceptions to be thrown.
+ */
+ public static void withFeedItemEventListener(@NonNull Consumer<FeedItemEventListener> consumer)
+ throws Exception {
+ FeedItemEventListener feedItemEventListener = new FeedItemEventListener();
+ try {
+ EventBus.getDefault().register(feedItemEventListener);
+ consumer.accept(feedItemEventListener);
+ } finally {
+ EventBus.getDefault().unregister(feedItemEventListener);
+ }
+ }
+
+ @Subscribe
+ public void onEvent(FeedItemEvent event) {
+ events.add(event);
+ }
+
+ @NonNull
+ public List<? extends FeedItemEvent> getEvents() {
+ return events;
+ }
+}