use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAOTest method updateTask.
@Test
public void updateTask() {
// create
String taskName = "Task to update";
PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask());
dbInstance.commitAndCloseSession();
// update
PersistentTask todo = persistentTaskDao.pickTaskForRun(task.getKey());
DummyTask taskToUpdate = new DummyTask();
taskToUpdate.setMarkerValue("new marker");
persistentTaskDao.updateTask(todo, taskToUpdate, null, null);
dbInstance.commitAndCloseSession();
// reload and check
PersistentTask loadedTask = persistentTaskDao.loadTaskById(task.getKey());
Runnable runnable = persistentTaskDao.deserializeTask(loadedTask);
Assert.assertNotNull(runnable);
Assert.assertTrue(runnable instanceof DummyTask);
DummyTask dummyRunnable = (DummyTask) runnable;
Assert.assertEquals("new marker", dummyRunnable.getMarkerValue());
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAOTest method findTask_withResourceAndSubPath.
@Test
public void findTask_withResourceAndSubPath() {
RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
Identity creator = JunitTestHelper.createAndPersistIdentityAsUser("extask-1-" + UUID.randomUUID().toString());
dbInstance.commitAndCloseSession();
String taskName = UUID.randomUUID().toString();
PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "mySubPath", null);
PersistentTask taskAlt = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "otherPath", null);
Assert.assertNotNull(task);
Assert.assertNotNull(taskAlt);
dbInstance.commitAndCloseSession();
List<Task> tasks = persistentTaskDao.findTasks(re.getOlatResource(), "mySubPath");
Assert.assertNotNull(tasks);
Assert.assertEquals(1, tasks.size());
Assert.assertEquals(task, tasks.get(0));
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAOTest method loadTask_byId.
@Test
public void loadTask_byId() {
RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
Identity creator = JunitTestHelper.createAndPersistIdentityAsUser("extask-21-" + UUID.randomUUID().toString());
PersistentTask task = persistentTaskDao.createTask("task-21", new DummyTask(), creator, re.getOlatResource(), "test", null);
dbInstance.commitAndCloseSession();
// load
PersistentTask loadedTask = persistentTaskDao.loadTaskById(task.getKey());
Assert.assertNotNull(loadedTask);
Assert.assertEquals(task, loadedTask);
// check return null if id doesn't exists
PersistentTask unkownTask = persistentTaskDao.loadTaskById(1l);
Assert.assertNull(unkownTask);
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAOTest method edit_workflow.
@Test
public void edit_workflow() {
RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
Identity creator = JunitTestHelper.createAndPersistIdentityAsUser("extask-20-" + UUID.randomUUID().toString());
String taskName = UUID.randomUUID().toString();
PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "edition", null);
Assert.assertNotNull(task);
dbInstance.commitAndCloseSession();
// pick
PersistentTask editableTask = persistentTaskDao.pickTaskForEdition(task.getKey());
Assert.assertNotNull(editableTask);
Assert.assertEquals(TaskStatus.edition, editableTask.getStatus());
dbInstance.commitAndCloseSession();
// second pick
PersistentTask notEditableTask = persistentTaskDao.pickTaskForEdition(task.getKey());
Assert.assertNull(notEditableTask);
dbInstance.commitAndCloseSession();
// return
persistentTaskDao.returnTaskAfterEdition(task.getKey(), null);
dbInstance.commitAndCloseSession();
// third pick
PersistentTask againEditableTask = persistentTaskDao.pickTaskForEdition(task.getKey());
Assert.assertNotNull(againEditableTask);
Assert.assertEquals(TaskStatus.edition, againEditableTask.getStatus());
dbInstance.commitAndCloseSession();
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAOTest method todo_oldTasks.
@Test
public void todo_oldTasks() {
String taskName = UUID.randomUUID().toString();
PersistentTask ctask = persistentTaskDao.createTask(taskName, new DummyTask());
// simulate a task from a previous boot
PersistentTask ptask = new PersistentTask();
ptask.setCreationDate(new Date());
ptask.setLastModified(new Date());
ptask.setName(UUID.randomUUID().toString());
ptask.setStatus(TaskStatus.inWork);
ptask.setExecutorBootId(UUID.randomUUID().toString());
ptask.setExecutorNode(Integer.toString(WebappHelper.getNodeId()));
ptask.setTask(XStreamHelper.createXStreamInstance().toXML(new DummyTask()));
dbInstance.getCurrentEntityManager().persist(ptask);
// simulate a task from an other node
PersistentTask alienTask = new PersistentTask();
alienTask.setCreationDate(new Date());
alienTask.setLastModified(new Date());
alienTask.setName(UUID.randomUUID().toString());
alienTask.setStatus(TaskStatus.inWork);
alienTask.setExecutorBootId(UUID.randomUUID().toString());
alienTask.setExecutorNode(Integer.toString(WebappHelper.getNodeId() + 1));
alienTask.setTask(XStreamHelper.createXStreamInstance().toXML(new DummyTask()));
dbInstance.getCurrentEntityManager().persist(alienTask);
dbInstance.commitAndCloseSession();
List<Long> todos = persistentTaskDao.tasksToDo();
Assert.assertNotNull(todos);
Assert.assertFalse(todos.isEmpty());
Assert.assertTrue(todos.contains(ptask.getKey()));
Assert.assertTrue(todos.contains(ctask.getKey()));
Assert.assertFalse(todos.contains(alienTask.getKey()));
}
Aggregations