AntennaPod/model/src/test/java/de/danoeh/antennapod/model/feed/FeedItemFallbackLinkTest.java

60 lines
2.1 KiB
Java

package de.danoeh.antennapod.model.feed;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class FeedItemFallbackLinkTest {
private static final String FEED_LINK = "http://example.com";
private static final String ITEM_LINK = "http://example.com/feedItem1";
private final String msg;
private final String feedLink;
private final String itemLink;
private final String expected;
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{"average", FEED_LINK, ITEM_LINK, ITEM_LINK},
{"null item link - fallback to feed", FEED_LINK, null, FEED_LINK},
{"empty item link - same as null", FEED_LINK, "", FEED_LINK},
{"blank item link - same as null", FEED_LINK, " ", FEED_LINK},
{"fallback, but feed link is null too", null, null, null},
{"fallback - but empty feed link - same as null", "", null, null},
{"fallback - but blank feed link - same as null", " ", null, null}
});
}
public FeedItemFallbackLinkTest(String msg, String feedLink, String itemLink, String expected) {
this.msg = msg;
this.feedLink = feedLink;
this.itemLink = itemLink;
this.expected = expected;
}
@Test
public void testLinkWithFallback() {
String actual = createFeedItem(feedLink, itemLink).getLinkWithFallback();
assertEquals(msg, expected, actual);
}
private static FeedItem createFeedItem(String feedLink, String itemLink) {
Feed feed = new Feed("http://example.com/feed", null);
feed.setLink(feedLink);
FeedItem feedItem = new FeedItem();
feedItem.setLink(itemLink);
feedItem.setFeed(feed);
feed.setItems(Collections.singletonList(feedItem));
return feedItem;
}
}