summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de/test/antennapod/util/event/FeedItemEventListener.java
diff options
context:
space:
mode:
authororionlee <orionlee@yahoo.com>2019-09-30 20:34:12 -0700
committerorionlee <orionlee@yahoo.com>2019-09-30 20:34:12 -0700
commit8824b7568d73a7943ea716cf417ca95d4f70d3fc (patch)
treed372c866a33d3cfaa07577666cb16b419b72d8e7 /app/src/androidTest/java/de/test/antennapod/util/event/FeedItemEventListener.java
parent9459460ed4bc202e6c7ad7f916e7a408593ef9f6 (diff)
downloadAntennaPod-8824b7568d73a7943ea716cf417ca95d4f70d3fc.zip
test refactor - move the common FeedItemEventListener test helper to the proper event/ package.
Diffstat (limited to 'app/src/androidTest/java/de/test/antennapod/util/event/FeedItemEventListener.java')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/util/event/FeedItemEventListener.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/util/event/FeedItemEventListener.java b/app/src/androidTest/java/de/test/antennapod/util/event/FeedItemEventListener.java
new file mode 100644
index 000000000..3088a3288
--- /dev/null
+++ b/app/src/androidTest/java/de/test/antennapod/util/event/FeedItemEventListener.java
@@ -0,0 +1,46 @@
+package de.test.antennapod.util.event;
+
+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;
+ }
+}