package models.dao;
import static org.fest.assertions.Assertions.assertThat;
import java.util.List;
import models.Category;
import models.Post;
import org.junit.Test;
import test.IntegrationTest;
import com.avaje.ebean.Page;
import com.google.common.collect.ImmutableList;
public class PostDAOTest extends IntegrationTest {
@Test
public void testPage() {
PostDAO dao = getInstance(PostDAO.class);
Page<Post> page = dao.page(0, 10);
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(0);
assertThat(page.getTotalPageCount()).isEqualTo(1);
assertThat(page.getTotalRowCount()).isEqualTo(10);
page = dao.page(1, 10);
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(1);
assertThat(page.getTotalPageCount()).isEqualTo(1);
assertThat(page.getTotalRowCount()).isEqualTo(10);
}
@Test
public void testGetPostsBy() {
PostDAO dao = getInstance(PostDAO.class);
Category category = new Category("category1");
Page<Post> page = dao.pageInCategory(category, 0, 10);
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(0);
assertThat(page.getTotalPageCount()).isEqualTo(1);
assertThat(page.getTotalRowCount()).isEqualTo(3);
page = dao.pageInCategory(category, 1, 2);
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(1);
assertThat(page.getTotalPageCount()).isEqualTo(2);
assertThat(page.getTotalRowCount()).isEqualTo(3);
}
@Test
public void testTopDayPage() {
PostDAO dao = getInstance(PostDAO.class);
Post post = new Post();
dao.create(post);
Page<Post> page = dao.topDayPage();
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(0);
assertThat(page.getTotalPageCount()).isEqualTo(1);
assertThat(page.getTotalRowCount()).isEqualTo(1);
}
@Test
public void testTopWeekPage() {
PostDAO dao = getInstance(PostDAO.class);
Post post = new Post();
dao.create(post);
Page<Post> page = dao.topWeekPage();
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(0);
assertThat(page.getTotalPageCount()).isEqualTo(1);
assertThat(page.getTotalRowCount()).isEqualTo(1);
}
@Test
public void testTopAllPage() {
PostDAO dao = getInstance(PostDAO.class);
Page<Post> page = dao.topAllPage();
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(0);
assertThat(page.getTotalPageCount()).isEqualTo(1);
assertThat(page.getTotalRowCount()).isEqualTo(9);
}
@Test
public void testGetPostsCreatedBy() {
PostDAO dao = getInstance(PostDAO.class);
List<String> usernames = ImmutableList.of("facebook::testuser");
Page<Post> page = dao.getPostsCreatedBy(usernames, 0, 10);
assertThat(page).isNotNull();
assertThat(page.getPageIndex()).isEqualTo(0);
assertThat(page.getTotalPageCount()).isEqualTo(2);
assertThat(page.getTotalRowCount()).isEqualTo(11);
}
}