/*
* 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.Ranking;
import net.jforum.repository.RankingRepository;
import org.junit.Assert;
import org.junit.Test;
/**
* @author Rafael Steil
*/
public class RankingDAOTestCase extends AbstractDAOTestCase<Ranking> {
@Test
public void delete() {
RankingRepository dao = this.newDao();
Ranking r = this.createRanking("image1", "title1", 7, false);
this.insert(r, dao);
this.delete(r, dao);
Assert.assertNull(dao.get(r.getId()));
}
@Test
public void update() {
RankingRepository dao = this.newDao();
Ranking r = this.createRanking("image1", "title1", 7, false);
this.insert(r, dao);
Ranking loaded = dao.get(r.getId());
loaded.setImage("image 1.1");
loaded.setTitle("title1.1");
loaded.setMin(8);
loaded.setSpecial(true);
this.update(loaded, dao);
loaded = dao.get(r.getId());
Assert.assertEquals("image 1.1", loaded.getImage());
Assert.assertEquals("title1.1", loaded.getTitle());
Assert.assertEquals(8, loaded.getMin());
Assert.assertEquals(true, loaded.isSpecial());
}
@Test
public void getAllRankingsExpectEmptyList() {
RankingRepository dao = this.newDao();
List<Ranking> rankings = dao.getAllRankings();
Assert.assertNotNull(rankings);
Assert.assertEquals(0, rankings.size());
}
@Test
public void getAllRankingsExpectTwoRecordsOrderedAsc() {
RankingRepository dao = this.newDao();
this.insert(this.createRanking("img", "r1", 1, false), dao);
this.insert(this.createRanking("img2", "r2", 2, false), dao);
List<Ranking> rankings = dao.getAllRankings();
Assert.assertEquals(2, rankings.size());
Assert.assertEquals("r1", rankings.get(0).getTitle());
Assert.assertEquals("r2", rankings.get(1).getTitle());
}
@Test
public void insert() {
RankingRepository dao = this.newDao();
Ranking r = this.createRanking("some image", "ranking title", 10, true);
this.insert(r, dao);
Assert.assertTrue(r.getId() > 0);
Ranking loaded = dao.get(r.getId());
Assert.assertEquals("some image", loaded.getImage());
Assert.assertEquals("ranking title", loaded.getTitle());
Assert.assertEquals(10, loaded.getMin());
Assert.assertEquals(true, loaded.isSpecial());
}
private RankingRepository newDao() {
return new RankingRepository(session());
}
private Ranking createRanking(String image, String title, int min, boolean special) {
Ranking r = new Ranking();
r.setImage(image);
r.setMin(min);
r.setSpecial(special);
r.setTitle(title);
return r;
}
}