001: /*
002: * Wilos Is a cLever process Orchestration Software - http://www.wilos-project.org
003: * Copyright (C) 2006-2007 Paul Sabatier University, IUP ISI (Toulouse, France) <massie@irit.fr>
004: * Copyright (C) Sebastien BALARD <sbalard@wilos-project.org>
005: *
006: * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
007: * General Public License as published by the Free Software Foundation; either version 2 of the License,
008: * or (at your option) any later version.
009: *
010: * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
011: * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012: * GNU General Public License for more details.
013: *
014: * You should have received a copy of the GNU General Public License along with this program; if not,
015: * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
016: */
017:
018: package wilos.test.hibernate.misc.project;
019:
020: import static org.junit.Assert.assertEquals;
021: import static org.junit.Assert.assertNotNull;
022: import static org.junit.Assert.assertNotSame;
023: import static org.junit.Assert.assertNull;
024:
025: import java.text.ParseException;
026: import java.util.Date;
027: import java.util.List;
028:
029: import org.junit.After;
030: import org.junit.Before;
031: import org.junit.Test;
032:
033: import wilos.hibernate.misc.project.ProjectDao;
034: import wilos.model.misc.project.Project;
035: import wilos.test.TestConfiguration;
036: import wilos.utils.Constantes;
037:
038: public class ProjectDaoTest {
039:
040: private ProjectDao projectDao = (ProjectDao) TestConfiguration
041: .getInstance().getApplicationContext()
042: .getBean("ProjectDao");
043:
044: private Project project;
045: Date date = null;
046:
047: @Before
048: public void setUp() {
049:
050: try {
051: date = Constantes.DATE_FORMAT.parse("18/01/2007 10:00");
052: } catch (ParseException e) {
053: e.printStackTrace();
054: }
055:
056: this .project = new Project();
057: this .project.setConcreteName("testProject");
058: this .project.setDescription("testDesc");
059: }
060:
061: @After
062: public void tearDown() {
063: this .project = null;
064: }
065:
066: @Test
067: public void testStorageOfANullProject() {
068:
069: Project project = null;
070:
071: String id = this .projectDao.saveOrUpdateProject(project);
072: Project retrievedProject = this .projectDao.getProject(id);
073:
074: assertNull("null", retrievedProject);
075: }
076:
077: @Test
078: public void testStorageOfAProject() {
079:
080: String id = this .projectDao.saveOrUpdateProject(this .project);
081: Project retrievedProject = this .projectDao.getProject(id);
082:
083: assertEquals("project : concrete name", this .project
084: .getConcreteName(), retrievedProject.getConcreteName());
085: assertEquals("project : planned time", this .project
086: .getPlannedTime(), retrievedProject.getPlannedTime());
087: assertEquals("project : planned finishing date", this .project
088: .getPlannedFinishingDate(), retrievedProject
089: .getPlannedFinishingDate());
090: assertNotSame("same object", this .project, retrievedProject);
091:
092: this .projectDao.deleteProject(this .project);
093: }
094:
095: @Test
096: public void testDeletionOfAProject() {
097:
098: String id = this .projectDao.saveOrUpdateProject(this .project);
099: this .projectDao.deleteProject(this .project);
100: Project retrievedProject = this .projectDao.getProject(id);
101:
102: assertNull("null", retrievedProject);
103: }
104:
105: @Test
106: public void testRetrievalOfAllProjects() {
107:
108: int nb = this .projectDao.getAllProjects().size();
109:
110: Project project1 = new Project();
111: project1.setConcreteName("My concrete name");
112: project1.setPlannedTime(25.0f);
113: project1.setPlannedFinishingDate(date);
114:
115: Project project2 = new Project();
116: project2.setConcreteName("Your concrete name");
117: project2.setPlannedTime(7.0f);
118: project2.setPlannedFinishingDate(date);
119:
120: this .projectDao.saveOrUpdateProject(this .project);
121: this .projectDao.saveOrUpdateProject(project1);
122: this .projectDao.saveOrUpdateProject(project2);
123:
124: List<Project> projects = this .projectDao.getAllProjects();
125: assertNotNull("list not null", projects);
126: assertEquals("size", 3, projects.size() - nb);
127:
128: this.projectDao.deleteProject(project2);
129: this.projectDao.deleteProject(project1);
130: this.projectDao.deleteProject(this.project);
131:
132: project2 = null;
133: project1 = null;
134:
135: }
136:
137: }
|