test refactor - extract common FeedItemEventListener test helper.
This commit is contained in:
parent
d84fc95f0d
commit
9459460ed4
|
@ -7,8 +7,6 @@ import android.support.test.runner.AndroidJUnit4;
|
||||||
|
|
||||||
import org.awaitility.Awaitility;
|
import org.awaitility.Awaitility;
|
||||||
import org.awaitility.core.ConditionTimeoutException;
|
import org.awaitility.core.ConditionTimeoutException;
|
||||||
import org.greenrobot.eventbus.EventBus;
|
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -20,7 +18,6 @@ import java.util.List;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import de.danoeh.antennapod.core.event.FeedItemEvent;
|
|
||||||
import de.danoeh.antennapod.core.feed.Feed;
|
import de.danoeh.antennapod.core.feed.Feed;
|
||||||
import de.danoeh.antennapod.core.feed.FeedItem;
|
import de.danoeh.antennapod.core.feed.FeedItem;
|
||||||
import de.danoeh.antennapod.core.feed.FeedMedia;
|
import de.danoeh.antennapod.core.feed.FeedMedia;
|
||||||
|
@ -34,6 +31,7 @@ import de.danoeh.antennapod.core.storage.DBWriter;
|
||||||
import de.danoeh.antennapod.core.storage.DownloadRequester;
|
import de.danoeh.antennapod.core.storage.DownloadRequester;
|
||||||
import de.danoeh.antennapod.core.util.Consumer;
|
import de.danoeh.antennapod.core.util.Consumer;
|
||||||
|
|
||||||
|
import static de.test.antennapod.util.feed.FeedItemEventListener.withFeedItemEventListener;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
@ -108,35 +106,6 @@ public class DownloadServiceTest {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides an listener subscribing to {@link FeedItemEvent} that the callers can use
|
|
||||||
*
|
|
||||||
* Note: it uses RxJava's version of {@link io.reactivex.functions.Consumer} because it allows exceptions to be thrown.
|
|
||||||
*/
|
|
||||||
private static void withFeedItemEventListener(io.reactivex.functions.Consumer<FeedItemEventListener> consumer) throws Exception {
|
|
||||||
FeedItemEventListener feedItemEventListener = new FeedItemEventListener();
|
|
||||||
try {
|
|
||||||
EventBus.getDefault().register(feedItemEventListener);
|
|
||||||
consumer.accept(feedItemEventListener);
|
|
||||||
} finally {
|
|
||||||
EventBus.getDefault().unregister(feedItemEventListener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class FeedItemEventListener {
|
|
||||||
|
|
||||||
private final List<FeedItemEvent> events = new ArrayList<>();
|
|
||||||
|
|
||||||
@Subscribe
|
|
||||||
public void onEvent(FeedItemEvent event) {
|
|
||||||
events.add(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
List<? extends FeedItemEvent> getEvents() {
|
|
||||||
return events;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class StubDownloaderFactory implements DownloadService.DownloaderFactory {
|
private static class StubDownloaderFactory implements DownloadService.DownloaderFactory {
|
||||||
private final long downloadTime;
|
private final long downloadTime;
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ import android.support.test.filters.LargeTest;
|
||||||
|
|
||||||
import org.awaitility.Awaitility;
|
import org.awaitility.Awaitility;
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -18,7 +17,6 @@ import java.util.List;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import de.danoeh.antennapod.core.event.FeedItemEvent;
|
|
||||||
import de.danoeh.antennapod.core.event.QueueEvent;
|
import de.danoeh.antennapod.core.event.QueueEvent;
|
||||||
import de.danoeh.antennapod.core.feed.EventDistributor;
|
import de.danoeh.antennapod.core.feed.EventDistributor;
|
||||||
import de.danoeh.antennapod.core.feed.Feed;
|
import de.danoeh.antennapod.core.feed.Feed;
|
||||||
|
@ -29,8 +27,8 @@ import de.danoeh.antennapod.core.storage.DBReader;
|
||||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||||
import de.danoeh.antennapod.core.storage.PodDBAdapter;
|
import de.danoeh.antennapod.core.storage.PodDBAdapter;
|
||||||
import de.danoeh.antennapod.core.util.playback.Playable;
|
import de.danoeh.antennapod.core.util.playback.Playable;
|
||||||
import io.reactivex.functions.Consumer;
|
|
||||||
|
|
||||||
|
import static de.test.antennapod.util.feed.FeedItemEventListener.withFeedItemEventListener;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
@ -168,35 +166,6 @@ public class PlaybackServiceTaskManagerTest {
|
||||||
pstm.shutdown();
|
pstm.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
private static void withFeedItemEventListener(Consumer<FeedItemEventListener> consumer) throws Exception {
|
|
||||||
FeedItemEventListener feedItemEventListener = new FeedItemEventListener();
|
|
||||||
try {
|
|
||||||
EventBus.getDefault().register(feedItemEventListener);
|
|
||||||
consumer.accept(feedItemEventListener);
|
|
||||||
} finally {
|
|
||||||
EventBus.getDefault().unregister(feedItemEventListener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class FeedItemEventListener {
|
|
||||||
|
|
||||||
private final List<FeedItemEvent> events = new ArrayList<>();
|
|
||||||
|
|
||||||
@Subscribe
|
|
||||||
public void onEvent(FeedItemEvent event) {
|
|
||||||
events.add(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
List<? extends FeedItemEvent> getEvents() {
|
|
||||||
return events;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testStartPositionSaver() throws InterruptedException {
|
public void testStartPositionSaver() throws InterruptedException {
|
||||||
final Context c = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
final Context c = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue