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: *
005: * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
006: * General Public License as published by the Free Software Foundation; either version 2 of the License,
007: * or (at your option) any later version.
008: *
009: * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
010: * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
011: * GNU General Public License for more details.
012: *
013: * You should have received a copy of the GNU General Public License along with this program; if not,
014: * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
015: */
016:
017: package wilos.test.business.services.misc.project;
018:
019: import static org.junit.Assert.assertEquals;
020: import static org.junit.Assert.assertFalse;
021: import static org.junit.Assert.assertNotNull;
022: import static org.junit.Assert.assertTrue;
023:
024: import java.util.Set;
025:
026: import org.junit.After;
027: import org.junit.Before;
028: import org.junit.Test;
029:
030: import wilos.business.services.misc.project.ProjectService;
031: import wilos.hibernate.misc.concreteactivity.ConcreteActivityDao;
032: import wilos.hibernate.misc.concretetask.ConcreteTaskDescriptorDao;
033: import wilos.hibernate.spem2.role.RoleDescriptorDao;
034: import wilos.hibernate.spem2.task.TaskDescriptorDao;
035: import wilos.model.misc.concreteactivity.ConcreteActivity;
036: import wilos.model.misc.project.Project;
037: import wilos.model.spem2.role.RoleDescriptor;
038: import wilos.test.TestConfiguration;
039:
040: public class ProjectServiceTest {
041:
042: private ProjectService ps;
043:
044: private Project p;
045:
046: private Project p2;
047:
048: private RoleDescriptorDao roleDescriptordao;
049:
050: private TaskDescriptorDao taskDescriptordao;
051:
052: private ConcreteTaskDescriptorDao concreteTaskDescriptorDao;
053:
054: private ConcreteActivityDao concreteActivityDao;
055:
056: public ProjectServiceTest() {
057: this .ps = (ProjectService) TestConfiguration.getInstance()
058: .getApplicationContext().getBean("ProjectService");
059: this .roleDescriptordao = (RoleDescriptorDao) TestConfiguration
060: .getInstance().getApplicationContext().getBean(
061: "RoleDescriptorDao");
062: this .taskDescriptordao = (TaskDescriptorDao) TestConfiguration
063: .getInstance().getApplicationContext().getBean(
064: "TaskDescriptorDao");
065: this .concreteTaskDescriptorDao = (ConcreteTaskDescriptorDao) TestConfiguration
066: .getInstance().getApplicationContext().getBean(
067: "ConcreteTaskDescriptorDao");
068: this .concreteActivityDao = (ConcreteActivityDao) TestConfiguration
069: .getInstance().getApplicationContext().getBean(
070: "ConcreteActivityDao");
071:
072: }
073:
074: @Before
075: public void setUp() {
076:
077: p = new Project();
078: p.setConcreteName("Wilos");
079: p.setDescription("projet de test");
080: p.setIsFinished(true);
081: this .ps.getProjectDao().saveOrUpdateProject(p);
082:
083: p2 = new Project();
084: p2.setConcreteName("Wilos2");
085: p2.setDescription("projet de test2");
086: p2.setIsFinished(false);
087: this .ps.getProjectDao().saveOrUpdateProject(p2);
088: }
089:
090: @After
091: public void tearDown() {
092: // Delete the tmp Project from the database.
093: this .ps.getProjectDao().deleteProject(this .p);
094: this .ps.getProjectDao().deleteProject(this .p2);
095: }
096:
097: @Test
098: public void testSaveProject() {
099: this .ps.saveProject(this .p);
100: Project ProjectTmp = (Project) this .ps.getProjectDao()
101: .getProject(this .p.getId());
102: assertNotNull(ProjectTmp);
103: assertEquals(ProjectTmp.getConcreteName(), "Wilos");
104: assertEquals(ProjectTmp.getDescription(), "projet de test");
105: // assertEquals(ProjectTmp.getIsFinished(), true) ;
106: }
107:
108: @Test
109: public void testProjectExists() {
110: // Test for an existing project
111: this .ps.saveProject(this .p);
112: assertTrue(this .ps.projectExist("Wilos"));
113:
114: // Test for a non-existing project
115: assertFalse(this .ps.projectExist("poulou"));
116: }
117:
118: @Test
119: public void testGetUnfinishedProjects() {
120: this .ps.saveProject(this .p);
121: this .ps.saveProject(this .p2);
122:
123: Set<Project> unfProjects = this .ps.getUnfinishedProjects();
124:
125: for (Project project : unfProjects) {
126: assertFalse(project.getIsFinished());
127: }
128:
129: }
130:
131: @Test
132: public void testCreateTask() {
133: Project project = new Project();
134: project.setConcreteName("ProjetTest");
135: this .ps.saveProject(project);
136:
137: RoleDescriptor roleDescriptor = new RoleDescriptor();
138: roleDescriptor.setGuid("Mon guid");
139: this .roleDescriptordao
140: .saveOrUpdateRoleDescriptor(roleDescriptor);
141:
142: ConcreteActivity cact = new ConcreteActivity();
143: cact.setConcreteName("cact");
144: cact.setProject(project);
145: this .concreteActivityDao.saveOrUpdateConcreteActivity(cact);
146:
147: assertTrue(this .ps.createTask("nom", "descr", project,
148: roleDescriptor, cact, false));
149:
150: ConcreteActivity cact2 = new ConcreteActivity();
151: cact2.setConcreteName("cact");
152: cact2.addSuperConcreteActivity(cact);
153: cact2.setProject(project);
154: this .concreteActivityDao.saveOrUpdateConcreteActivity(cact2);
155: assertTrue(this .ps.createTask("nom", "descr", project,
156: roleDescriptor, cact, true));
157:
158: }
159: }
|