@Test public void testSaveTask() throws Exception { // first create and save a user final User user = new User("xXx", "vin", "disel", "*****@*****.**"); transactionHelper.executeInTransaction( new VoidRunnable() { @Override public void doRun(final EntityManager entityManager) throws Exception { transactionHelper.persist(user); } }); // we expect the database to be empty Assert.assertEquals(0, taskDao.loadAll().size()); // write access must be executed within a transaction transactionHelper.executeInTransaction( new VoidRunnable() { @Override public void doRun(final EntityManager entityManager) throws Exception { final Task task = new Task("xyz", Category.IDEA, false, user); taskDao.persist(task); } }); Assert.assertEquals(1, taskDao.loadAll().size()); }
@Test public void findTasksByUserId() throws Exception { List<Task> tasks = taskDao.findByUserId(1L, new Sort(Direction.ASC, "id")); assertEquals(5, tasks.size()); assertEquals(new Long(1), tasks.get(0).getId()); tasks = taskDao.findByUserId(99999L, new Sort(Direction.ASC, "id")); assertEquals(0, tasks.size()); }
private synchronized void initialize() // @BeforeClass not possible because DAOs are needed. { if (initialized == true) { return; } initialized = true; logon(getUser(TEST_ADMIN_USER)); TaskDO task; task = initTestDB.addTask("TimesheetBookingTest", "root"); final GroupTaskAccessDO access = new GroupTaskAccessDO() .setGroup(initTestDB.addGroup("TBT", TEST_USER)) .addAccessEntry(new AccessEntryDO(AccessType.OWN_TIMESHEETS, true, true, true, true)) .setTask(task); accessDao.save(access); logon(getUser(TEST_FINANCE_USER)); taskDao.update(initTestDB.addTask("TBT-1", "TimesheetBookingTest")); taskDao.update(initTestDB.addTask("TBT-1.1", "TBT-1").setStatus(TaskStatus.C)); taskDao.markAsDeleted(initTestDB.addTask("TBT-1.2", "TBT-1")); taskDao.update(initTestDB.addTask("TBT-1.2.1", "TBT-1.2")); taskDao.update( initTestDB .addTask("TBT-2", "TimesheetBookingTest") .setTimesheetBookingStatus(TimesheetBookingStatus.TREE_CLOSED)); taskDao.update( initTestDB .addTask("TBT-2.1", "TBT-2") .setTimesheetBookingStatus(TimesheetBookingStatus.OPENED)); taskDao.update( initTestDB .addTask("TBT-3", "TimesheetBookingTest") .setTimesheetBookingStatus(TimesheetBookingStatus.ONLY_LEAFS)); initTestDB.addTask("TBT-3.1", "TBT-3"); initTestDB.addTask("TBT-3.1.1", "TBT-3.1"); initTestDB.addTask("TBT-3.1.2", "TBT-3.1"); initTestDB.addTask("TBT-3.2", "TBT-3"); taskDao.update( initTestDB .addTask("TBT-4", "TimesheetBookingTest") .setTimesheetBookingStatus(TimesheetBookingStatus.NO_BOOKING)); taskDao.update( initTestDB .addTask("TBT-4.1", "TBT-4") .setTimesheetBookingStatus(TimesheetBookingStatus.INHERIT)); taskDao.update( initTestDB .addTask("TBT-4.1.1", "TBT-4.1") .setTimesheetBookingStatus(TimesheetBookingStatus.OPENED)); initTestDB.addTask("TBT-5", "TimesheetBookingTest"); initTestDB.addTask("TBT-5.1", "TBT-5"); initTestDB.addTask("TBT-5.1.1", "TBT-5.1"); initTestDB.addTask("TBT-5.1.2", "TBT-5.1"); initTestDB.addTask("TBT-5.2", "TBT-5"); initTestDB.addTask("TBT-5.2.1", "TBT-5.2"); initTestDB.addTask("TBT-5.2.1.1", "TBT-5.2.1"); }
/** To-one relationship, resolved on first access. */ public Task getTask() { String __key = this.taskId; if (task__resolvedKey == null || task__resolvedKey != __key) { if (daoSession == null) { throw new DaoException("Entity is detached from DAO context"); } TaskDao targetDao = daoSession.getTaskDao(); Task taskNew = targetDao.load(__key); synchronized (this) { task = taskNew; task__resolvedKey = __key; } } return task; }
/** * 获取任务记录[查询、分页、排序]. * @param userId * @param searchParams * @param pageNumber * @param pageSize * @param sortType * @return */ public Page<Task> getUserTask(Long userId, Map<String, Object> searchParams, int pageNumber, int pageSize, String sortType) { PageRequest pageRequest = buildPageRequest(pageNumber, pageSize, sortType); Specification<Task> spec = buildSpecification(userId, searchParams); return taskDao.findAll(spec, pageRequest); }
@Test public void testFindForCategory() throws Exception { // first create and save a user final User user = new User("xXx", "vin", "disel", "*****@*****.**"); transactionHelper.executeInTransaction( new VoidRunnable() { @Override public void doRun(final EntityManager entityManager) throws Exception { transactionHelper.persist(user); } }); final Task task1 = new Task("aaa", Category.TODO, true, user); // we expect the database to be empty Assert.assertEquals(0, taskDao.loadAll().size()); // write access must be executed within a transaction transactionHelper.executeInTransaction( new VoidRunnable() { @Override public void doRun(final EntityManager entityManager) throws Exception { final Task task2 = new Task("ccc", Category.IDEA, false, user); final Task task3 = new Task("bbb", Category.IDEA, false, user); taskDao.persist(task1); taskDao.persist(task2); taskDao.persist(task3); } }); Assert.assertEquals(3, taskDao.loadAll().size()); Assert.assertEquals(0, taskDao.findForCategory(Category.PRIVATE).size()); Assert.assertEquals(2, taskDao.findForCategory(Category.IDEA).size()); final List<Task> tasks = taskDao.findForCategory(Category.TODO); Assert.assertEquals(1, tasks.size()); Assert.assertEquals(task1.getId(), tasks.get(0).getId()); }
@Test public void testFindForUser() throws Exception { // first create and save a user final User user1 = new User("xXx", "vin", "disel", "*****@*****.**"); final User user2 = new User("spiderman", "peter", "parker", "*****@*****.**"); final User user3 = new User("ironman", "tony", "stark", "*****@*****.**"); transactionHelper.executeInTransaction( new VoidRunnable() { @Override public void doRun(final EntityManager entityManager) throws Exception { transactionHelper.persist(user1); transactionHelper.persist(user2); transactionHelper.persist(user3); } }); // we expect the database to be empty Assert.assertEquals(0, taskDao.loadAll().size()); // write access must be executed within a transaction transactionHelper.executeInTransaction( new VoidRunnable() { @Override public void doRun(final EntityManager entityManager) throws Exception { final Task task1 = new Task("aaa", Category.IDEA, true, user1); final Task task2 = new Task("bbb", Category.TODO, false, user1); final Task task3 = new Task("ccc", Category.IDEA, false, user2); taskDao.persist(task1); taskDao.persist(task2); taskDao.persist(task3); } }); Assert.assertEquals(3, taskDao.loadAll().size()); Assert.assertEquals(2, taskDao.findForUser(user1).size()); Assert.assertEquals(1, taskDao.findForUser(user2).size()); Assert.assertEquals(0, taskDao.findForUser(user3).size()); }
/** * 获得所有的任务记录. * @return */ public List<Task> getAllTask() { return (List<Task>) taskDao.findAll(); }
/** * 单个删除任务记录. * @param id */ @Transactional(readOnly=false) public void deleteTask(Long id) { taskDao.delete(id); }
/** * 保存任务信息. * @param entity */ public void saveTask(Task entity) { taskDao.save(entity); }
/** * 根据ID获得任务记录. * @param id * @return */ public Task getTask(Long id) { return taskDao.findOne(id); }