/* * This file is part of the aidGer project. * * Copyright (C) 2010-2013 The aidGer Team * * 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 de.aidger.model.models; import static org.junit.Assert.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.sql.Date; import java.util.List; import de.aidger.model.validators.ValidationException; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import siena.SienaException; /** * Tests the Activity class. * * @author aidGer Team */ public class ActivityTest { private Activity activity = null; private static Assistant assistant = null; private static Course course = null; private static FinancialCategory financial = null; @Rule public ExpectedException exception = ExpectedException.none(); @BeforeClass public static void beforeClassSetUp() throws SienaException { de.aidger.model.Runtime.getInstance().initialize(); assistant = new Assistant(); assistant.setEmail("test@example.com"); assistant.setFirstName("Test"); assistant.setLastName("Tester"); assistant.setQualification("g"); assistant.save(); financial = new FinancialCategory(); financial.setBudgetCosts(new Integer[] { 100, 200 }); financial.setCostUnits(new Integer[] { 10001000, 20002000 }); financial.setName("Tester"); financial.setYear((short) 2010); financial.save(); course = new Course(); course.setAdvisor("Tester"); course.setDescription("Description"); course.setFinancialCategoryId(financial.getId()); course.setGroup("2"); course.setLecturer("Test Tester"); course.setNumberOfGroups(3); course.setPart('a'); course.setRemark("Remark"); course.setScope("Sniper Scope"); course.setSemester("SS09"); course.setTargetAudience("Testers"); course.setUnqualifiedWorkingHours(100.0); course.save(); } /** * Sets the Activity class up for tests. */ @Before public void setUp() { activity = new Activity(); activity.setAssistantId(assistant.getId()); activity.setContent("New assistant"); activity.setCourseId(course.getId()); activity.setDate(new Date(1000000000)); activity.setDocumentType("Test Type"); activity.setProcessor("T"); activity.setRemark("Remark"); activity.setSender("Test Sender"); activity.setType("Test Type"); } /** * Test of constructor, of class Activity. */ @Test public void testConstructor() throws SienaException { System.out.println("Constructor"); activity.save(); Activity result = new Activity(activity.getById(activity.getId())); assertNotNull(result); assertEquals(activity, result); } /** * Test of validation, of class Activity. */ @Test public void testValidation() throws SienaException { System.out.println("Validation"); exception.expect(ValidationException.class); activity.setAssistantId((long) 0); activity.save(); List<Activity> list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setAssistantId(assistant.getId()); activity.setContent(null); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setContent("New assistant"); activity.setCourseId((long) 0); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setCourseId(course.getId()); activity.setDate(null); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setDate(new Date(100)); activity.setDocumentType(null); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity .setDocumentType("012345678901234567890123456789012345678901234567890"); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setDocumentType("Type"); activity.setProcessor(null); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setProcessor("Tester"); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setProcessor("T"); activity.setType(null); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); activity.setType("012345678901234567890"); activity.save(); list = activity.getAll(); assertNull(list); activity.resetErrors(); exception = ExpectedException.none(); } /** * Test of clone method, of class Activity. */ @Test public void testClone() { System.out.println("clone"); Activity result = activity.clone(); assertEquals(activity.getId(), result.getId()); assertEquals(activity.getAssistantId(), result.getAssistantId()); assertEquals(activity.getContent(), result.getContent()); assertEquals(activity.getCourseId(), result.getCourseId()); assertEquals(activity.getDate(), result.getDate()); assertEquals(activity.getDocumentType(), result.getDocumentType()); assertEquals(activity.getProcessor(), result.getProcessor()); assertEquals(activity.getRemark(), result.getRemark()); assertEquals(activity.getSender(), result.getSender()); assertEquals(activity.getType(), result.getType()); } /** * Test of equals method, of class Activity. */ @Test public void testEquals() { System.out.println("equals"); Activity result = activity.clone(); assertEquals(activity, result); assertNotEquals(activity, new Object()); } /** * Test of hashCode method, of class Activity. */ @Test public void testHashCode() { System.out.println("hashCode"); Activity result = activity.clone(); assertEquals(activity.hashCode(), result.hashCode()); } /** * Test of getActivities method, of class Activity. */ @Test public void testGetActivities_Assistant() throws SienaException { System.out.println("getActivities"); Assistant a = new Assistant(); a.setEmail("test@example.com"); a.setFirstName("Test"); a.setLastName("Tester"); a.setQualification("g"); a.save(); activity.setAssistantId(a.getId()); activity.save(); List result = activity.getActivities(a); assertNotNull(result); assertTrue(result.size() == 1); } /** * Test of getActivities method, of class Activity. */ @Test public void testGetActivities_Course() throws SienaException { System.out.println("getActivities"); activity.setCourseId(course.getId()); activity.save(); List result = activity.getActivities(course); assertNotNull(result); assertTrue(result.size() > 0); } /** * Test of getActivities method, of class Activity. */ @Test public void testGetActivities_Date_Date() throws SienaException { System.out.println("getActivities"); activity.clearTable(); activity.save(); Activity a1 = new Activity(); a1.setDate(new Date(10)); a1.setContent("New assistant"); a1.setDocumentType("Test Type"); a1.setProcessor("T"); a1.setRemark("Remark"); a1.setSender("Test Sender"); a1.setType("Test Type"); a1.save(); Activity a2 = new Activity(); a2.setDate(new Date(1000)); a2.setContent("New assistant"); a2.setDocumentType("Test Type"); a2.setProcessor("T"); a2.setRemark("Remark"); a2.setSender("Test Sender"); a2.setType("Test Type"); a2.save(); Activity a3 = new Activity(); a3.setDate(new Date(2010000000)); a3.setContent("New assistant"); a3.setDocumentType("Test Type"); a3.setProcessor("T"); a3.setRemark("Remark"); a3.setSender("Test Sender"); a3.setType("Test Type"); a3.save(); List result = activity.getActivities(new Date(1), new Date(1010000000)); assertNotNull(result); System.out.println(result.size()); assertEquals(3, result.size()); a1.remove(); a2.remove(); a3.remove(); } /** * Cleans up after the tests. */ @After public void cleanUp() throws ValidationException { activity.remove(); } /** * Cleans up after the whole class is done. */ @AfterClass public static void cleanUpClass() throws ValidationException { course.remove(); financial.remove(); assistant.remove(); } }