package io.kaif.model.article;
import static java.util.Arrays.asList;
import static org.junit.Assert.*;
import java.util.Collections;
import org.junit.Test;
import io.kaif.flake.FlakeId;
import io.kaif.model.zone.Zone;
import io.kaif.test.ModelFixture;
public class ArticleListTest implements ModelFixture {
@Test
public void timeRangeArticleId() throws Exception {
ArticleList list = new ArticleList(Collections.<Article>emptyList());
assertEquals(FlakeId.MIN, list.getOldestArticleId());
assertEquals(FlakeId.MIN, list.getNewestArticleId());
assertFalse(list.hasNext());
assertNull(list.getLastArticleId());
Zone zone = Zone.valueOf("abc");
Article a1 = article(zone, "title 1");
list = new ArticleList(asList(a1));
assertEquals(a1.getArticleId(), list.getOldestArticleId());
assertEquals(a1.getArticleId(), list.getNewestArticleId());
assertEquals(a1.getArticleId(), list.getLastArticleId());
assertTrue(list.hasNext());
Article a2 = article(zone, "title 2");
Article a3 = article(zone, "title 3");
Article a4 = article(zone, "title 4");
list = new ArticleList(asList(a4, a3, a1, a2));
assertEquals(a1.getArticleId(), list.getOldestArticleId());
assertEquals(a4.getArticleId(), list.getNewestArticleId());
assertEquals(a2.getArticleId(), list.getLastArticleId());
assertTrue(list.hasNext());
}
}