mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2024-11-26 18:51:09 +01:00
Create SubscriptionManagerTest.java
This commit is contained in:
parent
43ef852117
commit
90bc1905f5
@ -0,0 +1,144 @@
|
|||||||
|
package org.schabi.newpipe.local.subscription;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertThat;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.schabi.newpipe.database.AppDatabase;
|
||||||
|
import org.schabi.newpipe.database.subscription.SubscriptionEntity;
|
||||||
|
import org.schabi.newpipe.extractor.channel.ChannelInfo;
|
||||||
|
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
||||||
|
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
||||||
|
import org.schabi.newpipe.testUtil.TestDatabase;
|
||||||
|
import org.schabi.newpipe.testUtil.TrampolineSchedulerRule;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
public class SubscriptionManagerTest {
|
||||||
|
private AppDatabase database;
|
||||||
|
private SubscriptionManager manager;
|
||||||
|
private SubscriptionEntity subscription;
|
||||||
|
private SubscriptionEntity anotherSubscription;
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public TrampolineSchedulerRule trampolineScheduler = new TrampolineSchedulerRule();
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() throws ExtractionException, IOException {
|
||||||
|
database = TestDatabase.Companion.createReplacingNewPipeDatabase();
|
||||||
|
manager = new SubscriptionManager(ApplicationProvider.getApplicationContext());
|
||||||
|
|
||||||
|
ChannelInfo info = ChannelInfo.getInfo("https://www.youtube.com/c/3blue1brown");
|
||||||
|
subscription = SubscriptionEntity.from(info);
|
||||||
|
manager.insertSubscription(subscription, info);
|
||||||
|
var entities = manager.getSubscriptions(-1L, subscription.getName(), false).blockingFirst();
|
||||||
|
assertEquals(1, entities.size());
|
||||||
|
anotherSubscription = entities.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void cleanUp() {
|
||||||
|
database.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInsert1() {
|
||||||
|
//This test fails because the uid of those two SubscriptionEntity aren't the same.
|
||||||
|
assertEquals(subscription, anotherSubscription);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInsert2() {
|
||||||
|
assertEquals(subscription.getUid(), anotherSubscription.getUid());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInsert3() {
|
||||||
|
assertEquals(subscription.getServiceId(), anotherSubscription.getServiceId());
|
||||||
|
assertEquals(subscription.getUrl(), anotherSubscription.getUrl());
|
||||||
|
assertEquals(subscription.getName(), anotherSubscription.getName());
|
||||||
|
assertEquals(subscription.getAvatarUrl(), anotherSubscription.getAvatarUrl());
|
||||||
|
assertEquals(subscription.getSubscriberCount(), anotherSubscription.getSubscriberCount());
|
||||||
|
assertEquals(subscription.getDescription(), anotherSubscription.getDescription());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateNotificationMode1() throws ExtractionException, IOException {
|
||||||
|
var info = ChannelInfo.getInfo("https://www.youtube.com/c/veritasium");
|
||||||
|
var subscription = SubscriptionEntity.from(info);
|
||||||
|
subscription.setNotificationMode(0);
|
||||||
|
assertEquals(0, subscription.getNotificationMode());
|
||||||
|
manager.insertSubscription(subscription, info);
|
||||||
|
manager.updateNotificationMode(subscription.getServiceId(), subscription.getUrl(), 1);
|
||||||
|
var entities = manager.getSubscriptions(-1L, subscription.getName(), false).blockingFirst();
|
||||||
|
assertEquals(1, entities.size());
|
||||||
|
var anotherSubscription = entities.get(0);
|
||||||
|
|
||||||
|
assertEquals(subscription.getUrl(), anotherSubscription.getUrl());
|
||||||
|
assertEquals(1, anotherSubscription.getNotificationMode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateNotificationMode2() throws ExtractionException, IOException {
|
||||||
|
var info = ChannelInfo.getInfo("https://www.youtube.com/c/Radiohead");
|
||||||
|
var subscription = SubscriptionEntity.from(info);
|
||||||
|
subscription.setNotificationMode(0);
|
||||||
|
assertEquals(0, subscription.getNotificationMode());
|
||||||
|
manager.insertSubscription(subscription, info);
|
||||||
|
manager.updateNotificationMode(subscription.getServiceId(), subscription.getUrl(), 1);
|
||||||
|
|
||||||
|
assertEquals(1, subscription.getNotificationMode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateNotificationMode3() throws ExtractionException, IOException {
|
||||||
|
var info = ChannelInfo.getInfo("https://www.youtube.com/c/LinusTechTips");
|
||||||
|
var subscription = SubscriptionEntity.from(info);
|
||||||
|
subscription.setNotificationMode(1);
|
||||||
|
assertEquals(1, subscription.getNotificationMode());
|
||||||
|
manager.insertSubscription(subscription, info);
|
||||||
|
manager.updateNotificationMode(subscription.getServiceId(), subscription.getUrl(), 0);
|
||||||
|
var entities = manager.getSubscriptions(-1L, subscription.getName(), false).blockingFirst();
|
||||||
|
assertEquals(1, entities.size());
|
||||||
|
var anotherSubscription = entities.get(0);
|
||||||
|
|
||||||
|
assertEquals(subscription.getUrl(), anotherSubscription.getUrl());
|
||||||
|
assertEquals(0, anotherSubscription.getNotificationMode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateNotificationMode4() throws ExtractionException, IOException {
|
||||||
|
var info = ChannelInfo.getInfo("https://www.youtube.com/c/JetBrainsTV");
|
||||||
|
var subscription = SubscriptionEntity.from(info);
|
||||||
|
subscription.setNotificationMode(1);
|
||||||
|
assertEquals(1, subscription.getNotificationMode());
|
||||||
|
manager.insertSubscription(subscription, info);
|
||||||
|
manager.updateNotificationMode(subscription.getServiceId(), subscription.getUrl(), 0);
|
||||||
|
|
||||||
|
assertEquals(0, subscription.getNotificationMode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRememberAllStreams() throws ExtractionException, IOException {
|
||||||
|
database.streamDAO().deleteAll();
|
||||||
|
var info = ChannelInfo.getInfo("https://www.youtube.com/c/Polyphia");
|
||||||
|
var subscription = SubscriptionEntity.from(info);
|
||||||
|
manager.insertSubscription(subscription, info);
|
||||||
|
|
||||||
|
// var Stream1 = StreamInfo.getInfo("https://www.youtube.com/watch?v=Z5NoQg8LdDk");
|
||||||
|
// var Stream2 = StreamInfo.getInfo("https://www.youtube.com/watch?v=2hln1TOQUZ0");
|
||||||
|
// var Stream3 = StreamInfo.getInfo("https://www.youtube.com/watch?v=9_gkpYORQLU");
|
||||||
|
// var Stream4 = StreamInfo.getInfo("https://www.youtube.com/watch?v=per9Wz0N-QA");
|
||||||
|
|
||||||
|
var streams = database.streamDAO().getAll().blockingFirst();
|
||||||
|
assertTrue(streams.size() >= 4);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user