Search in sources :

Example 16 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.

the class PersistentTaskDAOTest method createTask_withResource.

@Test
public void createTask_withResource() {
    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(), "test", null);
    Assert.assertNotNull(task);
    Assert.assertNotNull(task.getKey());
    Assert.assertNotNull(task.getCreationDate());
    Assert.assertNotNull(task.getLastModified());
    Assert.assertNotNull(task.getTask());
    Assert.assertEquals(TaskStatus.newTask, task.getStatus());
    Assert.assertEquals(re.getOlatResource(), task.getResource());
    Assert.assertEquals("test", task.getResSubPath());
    Assert.assertEquals(creator, task.getCreator());
}
Also used : RepositoryEntry(org.olat.repository.RepositoryEntry) Identity(org.olat.core.id.Identity) PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Test(org.junit.Test)

Example 17 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.

the class PersistentTaskDAOTest method deleteTask_withResource.

@Test
public void deleteTask_withResource() {
    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(), "test", null);
    Assert.assertNotNull(task);
    dbInstance.commitAndCloseSession();
    PersistentTask reloaded = dbInstance.getCurrentEntityManager().find(PersistentTask.class, task.getKey());
    Assert.assertEquals(task, reloaded);
    dbInstance.commitAndCloseSession();
    boolean deleted = persistentTaskDao.delete(task);
    Assert.assertTrue(deleted);
    dbInstance.commitAndCloseSession();
    boolean found = true;
    try {
        PersistentTask deletedTask = dbInstance.getCurrentEntityManager().find(PersistentTask.class, task.getKey());
        if (deletedTask == null) {
            found = false;
        }
    } catch (EntityNotFoundException e) {
        found = false;
    }
    Assert.assertFalse(found);
}
Also used : RepositoryEntry(org.olat.repository.RepositoryEntry) EntityNotFoundException(javax.persistence.EntityNotFoundException) Identity(org.olat.core.id.Identity) PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Test(org.junit.Test)

Example 18 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.

the class PersistentTaskDAOTest method createTask.

@Test
public void createTask() {
    String taskName = "Task 0";
    PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask());
    dbInstance.commit();
    Assert.assertNotNull(task);
    Assert.assertNotNull(task.getKey());
    Assert.assertNotNull(task.getCreationDate());
    Assert.assertNotNull(task.getLastModified());
    Assert.assertNotNull(task.getTask());
    Assert.assertEquals(TaskStatus.newTask, task.getStatus());
}
Also used : PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Test(org.junit.Test)

Example 19 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.

the class PersistentTaskDAOTest method pickTask.

@Test
public void pickTask() {
    String taskName = "Task 1";
    PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask());
    dbInstance.commitAndCloseSession();
    PersistentTask todo = persistentTaskDao.pickTaskForRun(task.getKey());
    Assert.assertNotNull(todo);
    Assert.assertEquals(task.getKey(), todo.getKey());
    Assert.assertEquals(TaskStatus.inWork, todo.getStatus());
}
Also used : PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Test(org.junit.Test)

Example 20 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.

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()));
}
Also used : PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Date(java.util.Date) Test(org.junit.Test)

Aggregations

PersistentTask (org.olat.core.commons.services.taskexecutor.model.PersistentTask)56 Test (org.junit.Test)36 Identity (org.olat.core.id.Identity)24 RepositoryEntry (org.olat.repository.RepositoryEntry)24 Date (java.util.Date)14 LongRunnable (org.olat.core.commons.services.taskexecutor.LongRunnable)4 Sequential (org.olat.core.commons.services.taskexecutor.Sequential)4 EntityNotFoundException (javax.persistence.EntityNotFoundException)2 Task (org.olat.core.commons.services.taskexecutor.Task)2 TaskAwareRunnable (org.olat.core.commons.services.taskexecutor.TaskAwareRunnable)2 DBSecureRunnable (org.olat.core.commons.services.taskexecutor.model.DBSecureRunnable)2 PersistentTaskModifier (org.olat.core.commons.services.taskexecutor.model.PersistentTaskModifier)2 PersistentTaskRunnable (org.olat.core.commons.services.taskexecutor.model.PersistentTaskRunnable)2 AssertException (org.olat.core.logging.AssertException)2 SchedulerException (org.quartz.SchedulerException)2