diff options
author | orionlee <orionlee@yahoo.com> | 2019-09-30 13:55:50 -0700 |
---|---|---|
committer | orionlee <orionlee@yahoo.com> | 2019-09-30 13:55:50 -0700 |
commit | 9459460ed4bc202e6c7ad7f916e7a408593ef9f6 (patch) | |
tree | 1bc5ab8d3c1454a65e09b6113c2463919c5c812b /app/src/androidTest/java/de/test/antennapod/util | |
parent | d84fc95f0d7b9bee3eb3970c853072f35bb24c55 (diff) | |
download | AntennaPod-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.java | 46 |
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; + } +} |