added save method to crudservice and a projectclassservice

This commit is contained in:
Fredrik Friis 2012-03-30 12:12:08 +09:00
parent ad3d05427d
commit f4ae72c27d
5 changed files with 77 additions and 84 deletions
src
main/java/se/su/dsv/scipro/springdata
test/java/se/su/dsv/scipro/springdata

@ -19,7 +19,19 @@ public class AbstractServiceImpl<T, ID extends Serializable> implements CrudServ
this.repository = repository1;
}
/**
/**
* Saves a given entity. Use the returned instance for further operations as
* the save operation might have changed the entity instance completely.
*
* @param entity
* @return the saved entity
*/
@Override
public T save(T entity) {
return repository.save(entity);
}
/**
* Retrives an entity by its primary key.
*
* @param id

@ -0,0 +1,32 @@
package se.su.dsv.scipro.springdata.serviceimpls;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.springdata.repos.ProjectClassRepo;
import se.su.dsv.scipro.springdata.services.ProjectClassService;
import javax.annotation.Resource;
/**
* @author: fred-fri
* date: 2012 03 26
*/
@Service ( "projectClassService" )
@Transactional ( readOnly = true )
public class ProjectClassServiceImpl extends AbstractQueryService<ProjectClass, Long> implements ProjectClassService {
@Resource
private ProjectClassRepo projectClassRepo;
@Autowired
public ProjectClassServiceImpl(
@Qualifier("projectClassRepo")
ProjectClassRepo projectClassRepo) {
super(projectClassRepo, projectClassRepo);
System.out.println("BLA BLA");
}
}

@ -8,6 +8,15 @@ package se.su.dsv.scipro.springdata.services;
*/
public abstract interface CrudService<T, ID> {
/**
* Saves a given entity. Use the returned instance for further operations as
* the save operation might have changed the entity instance completely.
*
* @param entity
* @return the saved entity
*/
T save(T entity);
/**
* Retrives an entity by its primary key.
*

@ -0,0 +1,13 @@
package se.su.dsv.scipro.springdata.services;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
/**
* @author: fred-fri
* date: 2012 03 26
*/
public interface ProjectClassService extends CrudService<ProjectClass,Long>, QueryService<ProjectClass, Long> {
//nothing here yet
}

@ -12,20 +12,18 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import se.su.dsv.scipro.data.dao.interfaces.RoleDao;
import se.su.dsv.scipro.data.dao.interfaces.UserDao;
import se.su.dsv.scipro.data.dataobjects.*;
import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.match.dao.interfaces.MatchDao;
import se.su.dsv.scipro.match.dataobject.ApplicationPeriod;
import se.su.dsv.scipro.match.dataobject.Match;
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
import se.su.dsv.scipro.match.facade.ApplicationPeriodFacade;
import se.su.dsv.scipro.springdata.repos.ProjectClassRepo;
import se.su.dsv.scipro.springdata.repos.ProjectIdeaRepo;
import se.su.dsv.scipro.springdata.services.ProjectClassService;
import se.su.dsv.scipro.springdata.services.ProjectIdeaService;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;
@RunWith(SpringJUnit4ClassRunner.class)
@ -36,79 +34,31 @@ public class TestProjectIdea {
@Autowired
private UserDao userDao;
@Autowired
private ProjectIdeaRepo projectIdeaRepo;
@Autowired
private ProjectIdeaService projectIdeaService;
@Autowired
private ProjectClassRepo projectClassRepo;
private ProjectClassService projectClassService;
@Autowired
private RoleDao roleDao;
@Autowired
private ApplicationPeriodFacade applicationPeriodFacade;
@Autowired
private MatchDao matchDao;
private User student1;
private ProjectIdea projectIdea1;
private ProjectIdea projectIdea2;
private Student student1Author;
private Student student2Author;
private ProjectIdea projectIdea3;
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
private Date date12Maj2010;
private Date date14Maj2010;
private Date date15Jun2010;
private Date date18Aug2010;
private User employee1;
private Employee employee1Role;
private ProjectClass bachelor;
private ProjectClass master;
@Before
public void startTransaction() throws Exception {
student1 = new User();
student1 = userDao.save(student1);
Role student1Role = new Student();
student1Role.setUser(student1);
student1Role = roleDao.save(student1Role);
student1Author = (Student) student1Role;
bachelor = new ProjectClass(ProjectClass.BACHELOR, "Bachelor", "Bachelor degree thesis project");
bachelor = projectClassService.save(bachelor);
User student2 = new User();
student2 = userDao.save(student2);
Role student2Role = new Student();
student2Role.setUser(student2);
student2Role = roleDao.save(student2Role);
student2Author = (Student) student2Role;
bachelor = new ProjectClass(ProjectClass.BACHELOR, "Bachelor",
"Bachelor degree thesis project");
bachelor = projectClassRepo.save(bachelor); //shouldnt this be provided by the service class?
master = new ProjectClass(ProjectClass.MASTER, "Master",
"Master degree thesis project");
master = projectClassRepo.save(master); //shouldnt this be provided by the service class?
master = new ProjectClass(ProjectClass.MASTER, "Master", "Master degree thesis project");
master = projectClassService.save(master);
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
projectClassSet.add(bachelor);
@ -116,29 +66,9 @@ public class TestProjectIdea {
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, "name1");
projectIdea1 = new ProjectIdea();
projectIdea1.setTitle("Project idea 1");
projectIdea1.getAuthors().add(student1Author);
projectIdea1.setProjectClass(bachelor);
projectIdea1.setApplicationPeriod(applicationPeriod);
projectIdea1 = projectIdeaRepo.save(projectIdea1); //shouldnt this be provided by the service class?
projectIdea2 = new ProjectIdea();
projectIdea2.setTitle("Idea 2");
projectIdea2.getAuthors().add(student1Author);
projectIdea2.setProjectClass(master);
projectIdea2.setApplicationPeriod(applicationPeriod);
projectIdea2 = projectIdeaRepo.save(projectIdea2); //shouldnt this be provided by the service class?
projectIdea3 = new ProjectIdea();
projectIdea3.setTitle("A Project 2");
projectIdea3.setProjectClass(bachelor);
projectIdea3.setApplicationPeriod(applicationPeriod);
projectIdea3 = projectIdeaRepo.save(projectIdea3); //shouldnt this be provided by the service class?
date12Maj2010 = date.parse("2010-05-12");
date14Maj2010 = date.parse("2010-05-14");
date15Jun2010 = date.parse("2010-06-15");
date18Aug2010 = date.parse("2010-08-18");
projectIdea1 = projectIdeaService.save(projectIdea1);
employee1 = new User();
employee1 = userDao.save(employee1);
@ -255,9 +185,6 @@ public class TestProjectIdea {
Assert.assertEquals(l, projectIdeaService.countProjectIdeaByMatchStatusAndProjectClass(Match.Status.UNMATCHED, master));
}
/**
* The tests below are all found in the test class for the original ProjectIdeaDao, (class TestProjectIdeaDao.java)
*/