/** * Copyright SocialSite (C) 2009 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.socialsite.dao.hibernate; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.Date; import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; import org.junit.Test; import org.springframework.orm.hibernate3.SessionFactoryUtils; import org.springframework.transaction.annotation.Transactional; import com.socialsite.authentication.SignUpPage; import com.socialsite.dao.AbstractDaoTestHelper; import com.socialsite.persistence.Course; import com.socialsite.persistence.Staff; import com.socialsite.persistence.Student; import com.socialsite.persistence.University; import com.socialsite.persistence.User; import com.socialsite.util.SpringWicketTester; /** * * @author Ananth * */ public class CourseDaoTest extends AbstractDaoTestHelper { @Test @Transactional public void testAddStudentInCourse() { final Course course1 = new Course(); course1.setName("test1"); saveCourses(course1); final User user1 = new Student("user1", "password"); saveUsers(user1); course1.addStudents((Student)user1); saveCourses(course1); // flush the session so we can get the record using JDBC template SessionFactoryUtils.getSession(sessionFactory, false).flush(); assertEquals(1, course1.getStudents().size()); } @Test @Transactional public void testCountAll() { // courses final Course course1 = new Course(); course1.setName("test1"); final Course course2 = new Course(); course2.setName("test2"); saveCourses(course1, course2); assertEquals(2, courseDao.countAll("test")); assertEquals(1, courseDao.countAll("test1")); assertEquals(0, courseDao.countAll("none")); assertEquals(2, courseDao.countAll(null)); } @Transactional @Test public void testFindAll() { // courses final Course course1 = new Course(); course1.setName("test1"); final Course course2 = new Course(); course2.setName("test2"); saveCourses(course1, course2); assertEquals(2, courseDao.findAll("test", 0, 2, new SortParam("name", true)).size()); assertEquals(2, courseDao.findAll(null, 0, 2, new SortParam("name", false)).size()); assertEquals(2, courseDao.findAll().size()); } @Test @Transactional public void testGetUserCourses() { final Course course1 = new Course(); course1.setName("test1"); saveCourses(course1); final User user1 = new Student("user1", "password"); saveUsers(user1); course1.addStudents((Student)user1); saveCourses(course1); // flush the session so we can get the record using JDBC template SessionFactoryUtils.getSession(sessionFactory, false).flush(); assertEquals(1, courseDao.getUserCourses(user1.getId(), 0, 1).size()); assertEquals(1, courseDao.getUserCoursesCount(user1.getId())); } @Test @Transactional public void testGetUniversityCourses() { final Course course1 = new Course(); course1.setName("test1"); saveCourses(course1); final User user1 = new Student("user1", "password"); saveUsers(user1); course1.addStudents((Student)user1); saveCourses(course1); // flush the session so we can get the record using JDBC template SessionFactoryUtils.getSession(sessionFactory, false).flush(); final University u = new University("test"); saveUniversities(u); // staffs final Staff staff1 = new Staff("staff1", "password", u); staff1.addCourse(course1); saveUsers(staff1); // flush the session so we can get the record using JDBC template SessionFactoryUtils.getSession(sessionFactory, false).flush(); assertEquals(1, courseDao.getUniversityCourses(u.getId(), 0, 1).size()); assertEquals(1, courseDao.getUniversityCoursesCount(u.getId())); } @Test @Transactional public void testGetImage() { tester = new SpringWicketTester(); tester.startPage(SignUpPage.class); final Course course1 = new Course(); course1.setName("test1"); setDefaultImage(course1); saveCourses(course1); assertNotNull(courseDao.getImage(course1.getId())); } @Test @Transactional public void testGetLastModifiedTime() { final Date date = new Date(); // courses final Course course1 = new Course(); course1.setName("test1"); course1.setLastModified(date); saveCourses(course1); assertEquals(date.getTime() / 1000, courseDao.getLastModifiedTime(course1.getId()) .getTime() / 1000); } @Test @Transactional public void testGetThumb() { tester = new SpringWicketTester(); tester.startPage(SignUpPage.class); final Course course1 = new Course(); course1.setName("test1"); setDefaultImage(course1); saveCourses(course1); assertNotNull(courseDao.getThumb(course1.getId())); } }