Esempio n. 1
0
  @Test
  public void testSequenceWithDependencies() throws Exception {

    List<String> sequence = new Vector<String>();

    Task task1 = createTask(appender(sequence, "task1"));
    Task task2 = createTask(appender(sequence, "task2"));

    SequenceTask seq = createSequence();

    seq.add(appender(sequence, "subtask1"));
    seq.add(appender(sequence, "subtask2"));
    seq.add(appender(sequence, "subtask3"));

    seq.addPrerequisite(task1);
    task2.addPrerequisite(seq);

    seq.schedule();

    task1.schedule();

    task2.schedule();

    task2.waitFor(3500, TimeUnit.MILLISECONDS);

    assertArrayEquals(
        new String[] {"task1", "subtask1", "subtask2", "subtask3", "task2"},
        sequence.toArray(new String[0]));
  }
Esempio n. 2
0
  @Test
  public void testSequenceTask() throws Exception {

    final List<String> sequence = new Vector<String>();

    SequenceTask seq = createSequence();

    seq.add(appender(sequence, "task1"));
    seq.add(appender(sequence, "task2"));
    seq.add(appender(sequence, "task3"));

    seq.schedule();

    seq.waitFor(3500, TimeUnit.MILLISECONDS);

    assertArrayEquals(new String[] {"task1", "task2", "task3"}, sequence.toArray(new String[0]));
  }
Esempio n. 3
0
  @Test
  public void testLargeSequenceInProgress() throws Exception {

    long count = 10;
    long loops = 1000;
    long total = count * loops;

    AtomicLong result = new AtomicLong(0);

    SequenceTask task = createSequence();

    task.add(scheduler(task, result, 1, count, loops - 1));

    task.schedule();

    task.waitFor();

    assertEquals(total * (total + 1) / 2, result.get());
  }
Esempio n. 4
0
  @Test
  public void testLargeSequence() throws Exception {

    long count = 500;

    AtomicLong result = new AtomicLong(0);

    SequenceTask task = createSequence();

    for (long i = 1; i <= count; i++) {
      task.add(addr(result, i));
    }

    task.schedule();

    task.waitFor();

    assertEquals(count * (count + 1) / 2, result.get());
  }