/*
* Copyright (c) JForum Team. All rights reserved.
*
* The software in this package is published under the terms of the LGPL
* license a copy of which has been included with this distribution in the
* license.txt file.
*
* The JForum Project
* http://www.jforum.net
*/
package net.jforum.core.hibernate;
import java.util.List;
import net.jforum.entities.Topic;
import net.jforum.repository.RecentTopicsRepository;
import net.jforum.util.JDBCLoader;
import org.junit.Assert;
import org.junit.Test;
/**
* @author Rafael Steil
*/
public class RecentTopicsDAOTestCase extends AbstractDAOTestCase<Topic> {
@Test
public void expectZeroResultsShouldReturnEmptyList() {
RecentTopicsRepository dao = this.newDao();
List<Topic> list = dao.getNewTopics(10);
Assert.assertEquals(0, list.size());
dao = this.newDao();
list = dao.getUpdatedTopics(10);
Assert.assertEquals(0, list.size());
dao = this.newDao();
list = dao.getHotTopics(10);
Assert.assertEquals(0, list.size());
}
@Test
public void postsInModerationExpectOneResult() {
this.loadDump("/recenttopics/dump.sql");
this.loadDump("/recenttopics/moderation.sql");
RecentTopicsRepository dao = this.newDao();
List<Topic> list = dao.getNewTopics(10);
Assert.assertEquals(1, list.size());
Assert.assertEquals(6, list.get(0).getId());
}
@Test
public void recentTopics() {
this.loadDump("/recenttopics/dump.sql");
RecentTopicsRepository dao = this.newDao();
List<Topic> list = dao.getNewTopics(10);
Assert.assertEquals(8, list.size());
Assert.assertEquals(8, list.get(0).getId());
Assert.assertEquals(7, list.get(1).getId());
Assert.assertEquals(6, list.get(2).getId());
Assert.assertEquals(5, list.get(3).getId());
Assert.assertEquals(4, list.get(4).getId());
Assert.assertEquals(3, list.get(5).getId());
Assert.assertEquals(2, list.get(6).getId());
Assert.assertEquals(1, list.get(7).getId());
Assert.assertEquals(4, list.get(0).getFirstPost().getId());
Assert.assertEquals(12, list.get(0).getLastPost().getId());
Assert.assertEquals(2, list.get(0).getFirstPost().getUser().getId());
Assert.assertEquals(2, list.get(0).getLastPost().getUser().getId());
Assert.assertEquals(3, list.get(0).getForum().getId());
Assert.assertEquals(3, list.get(1).getFirstPost().getId());
Assert.assertEquals(11, list.get(1).getLastPost().getId());
Assert.assertEquals(2, list.get(1).getFirstPost().getUser().getId());
Assert.assertEquals(2, list.get(1).getLastPost().getUser().getId());
Assert.assertEquals(2, list.get(1).getForum().getId());
Assert.assertEquals(2, list.get(2).getFirstPost().getId());
Assert.assertEquals(10, list.get(2).getLastPost().getId());
Assert.assertEquals(1, list.get(2).getFirstPost().getUser().getId());
Assert.assertEquals(1, list.get(2).getLastPost().getUser().getId());
Assert.assertEquals(1, list.get(2).getForum().getId());
Assert.assertEquals(1, list.get(3).getFirstPost().getId());
Assert.assertEquals(9, list.get(3).getLastPost().getId());
Assert.assertEquals(1, list.get(3).getFirstPost().getUser().getId());
Assert.assertEquals(2, list.get(3).getLastPost().getUser().getId());
Assert.assertEquals(3, list.get(3).getForum().getId());
Assert.assertEquals(8, list.get(4).getFirstPost().getId());
Assert.assertEquals(8, list.get(4).getLastPost().getId());
Assert.assertEquals(1, list.get(4).getFirstPost().getUser().getId());
Assert.assertEquals(1, list.get(4).getLastPost().getUser().getId());
Assert.assertEquals(3, list.get(4).getForum().getId());
Assert.assertEquals(7, list.get(5).getFirstPost().getId());
Assert.assertEquals(7, list.get(5).getLastPost().getId());
Assert.assertEquals(2, list.get(5).getFirstPost().getUser().getId());
Assert.assertEquals(2, list.get(5).getLastPost().getUser().getId());
Assert.assertEquals(2, list.get(5).getForum().getId());
Assert.assertEquals(6, list.get(6).getFirstPost().getId());
Assert.assertEquals(6, list.get(6).getLastPost().getId());
Assert.assertEquals(1, list.get(6).getFirstPost().getUser().getId());
Assert.assertEquals(1, list.get(6).getLastPost().getUser().getId());
Assert.assertEquals(1, list.get(6).getForum().getId());
Assert.assertEquals(5, list.get(7).getFirstPost().getId());
Assert.assertEquals(5, list.get(7).getLastPost().getId());
Assert.assertEquals(1, list.get(7).getFirstPost().getUser().getId());
Assert.assertEquals(1, list.get(7).getLastPost().getUser().getId());
Assert.assertEquals(1, list.get(7).getForum().getId());
}
@SuppressWarnings("deprecation")
private void loadDump(String file) {
session().beginTransaction();
JDBCLoader loader = new JDBCLoader(session());
loader.run(file);
session().getTransaction().commit();
session().beginTransaction();
}
private RecentTopicsRepository newDao() {
return new RecentTopicsRepository(session());
}
}