/** * 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; import java.util.Date; import javax.annotation.Resource; import org.hibernate.SessionFactory; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.socialsite.image.DefaultImage; import com.socialsite.persistence.Answer; import com.socialsite.persistence.Course; import com.socialsite.persistence.Message; import com.socialsite.persistence.Profile; import com.socialsite.persistence.Question; import com.socialsite.persistence.Student; import com.socialsite.persistence.University; import com.socialsite.persistence.User; import com.socialsite.profile.Access; import com.socialsite.util.PrivacyModel; import com.socialsite.util.SpringWicketTester; /** * Abstract test class for all the Dao test. provides many helper methods * * @author Ananth * */ @SuppressWarnings("restriction") @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:applicationContext.xml" }) abstract public class AbstractDaoTestHelper extends AbstractTransactionalJUnit4SpringContextTests { protected SpringWicketTester tester; @Resource(name = "userDao") protected UserDao<User> userDao; @Resource(name = "profileDao") protected ProfileDao profileDao; @Resource(name = "universityDao") protected UniversityDao universityDao; @Resource(name = "courseDao") protected CourseDao courseDao; @Resource(name = "questionDao") protected QuestionDao questionDao; @Resource(name = "answerDao") protected AnswerDao answerDao; @Resource(name = "friendRequestMsgDao") protected FriendRequestMsgDao friendRequestMsgDao; @Resource(name = "staffRequestMsgDao") protected StaffRequestMsgDao staffRequestMsgDao; @Resource(name = "adminDao") protected AdminDao adminDao; @Resource(name = "commentDao") protected CommentDao commmentDao; @Resource(name = "studentDao") protected StudentDao studentDao; @Resource(name = "staffDao") protected StaffDao staffDao; @Resource(name = "messageDao") protected MessageDao<Message> messageDao; @Resource(name = "infoMsgDao") protected InfoMsgDao infoMsgDao; @Resource(name = "activationDao") protected ActivationDao activationDao; @Autowired protected SessionFactory sessionFactory; /** * helper to create profile for users * * @param users * users */ public void createProfiles(final User... users) { final DefaultImage image = new DefaultImage(); for (final User user : users) { final Profile profile = new Profile(); profile.setUser(user); user.setProfile(profile); image.forUser(user.getProfile()); profile.setCurrentCity(new PrivacyModel("sample city", Access.EVERYONE)); profile.setAboutMe("sample about me"); profile.setEmail("sample" + user.getId() + "@gmail.com"); profile.setSex("Male"); profile.setRelationshipStatus("single"); profileDao.save(user.getProfile()); } } /** * helper to join the course * * @param user * @param courses */ public void joinCourse(final User user, final Course... courses) { for (final Course course : courses) { course.addStudents((Student)user); courseDao.save(course); } } /** * helper to save multiple answers * * @param answers * answers */ public void saveAnswers(final Answer... answers) { System.out.println("saving Answers"); for (final Answer answer : answers) { answerDao.save(answer); } } /** * helper to save multiple courses * * @param courses * courses */ public void saveCourses(final Course... courses) { System.out.println("saving Courses"); for (final Course course : courses) { courseDao.save(course); } } /** * helper to save messages * * @param messages * messages */ public void saveMessage(final Message... messages) { for (final Message message : messages) { messageDao.save(message); } } /** * helper to save multiple questions * * @param questions * questions */ public void saveQuestion(final Question... questions) { System.out.println("saving questions"); for (final Question question : questions) { question.setTime(new Date()); questionDao.save(question); } } /** * helper to save multiple universities * * @param uinversities * universities */ public void saveUniversities(final University... uinversities) { System.out.println("saving universities"); for (final University university : uinversities) { university.setLastModified(new Date()); universityDao.save(university); } } /** * helper to save users * * @param users * users */ public void saveUsers(final User... users) { System.out.println("saving users"); for (final User user : users) { user.setLastModified(new Date()); userDao.save(user); } } /** * helper to set the default image for the courses * * @param courses * courses */ public void setDefaultImage(final Course... courses) { System.out.println("setting default image for courses"); final DefaultImage image = new DefaultImage(); for (final Course course : courses) { image.forCourse(course); course.setDescription("sample Description"); } } /** * helper to set the default image for the courses * * @param universities * courses */ public void setDefaultImage(final University... universities) { System.out.println("setting default image for university"); final DefaultImage image = new DefaultImage(); for (final University university : universities) { image.forUniversity(university); } } /** * helper method to add many friends * * @param user * user * @param friends * friends to be added */ public void setFriend(final User user, final User... friends) { for (final User friend : friends) { user.addFriend(friend); } userDao.save(user); } }