in BoltsTest/src/bolts/TaskTest.java [355:385]
public void testAsyncChaining() {
runTaskTest(new Callable<Task<?>>() {
public Task<?> call() throws Exception {
final ArrayList<Integer> sequence = new ArrayList<Integer>();
Task<Void> result = Task.forResult(null);
for (int i = 0; i < 20; i++) {
final int taskNumber = i;
result = result.continueWithTask(new Continuation<Void, Task<Void>>() {
public Task<Void> then(Task<Void> task) {
return Task.callInBackground(new Callable<Void>() {
public Void call() throws Exception {
sequence.add(taskNumber);
return null;
}
});
}
});
}
result = result.continueWith(new Continuation<Void, Void>() {
public Void then(Task<Void> task) {
assertEquals(20, sequence.size());
for (int i = 0; i < 20; i++) {
assertEquals(i, sequence.get(i).intValue());
}
return null;
}
});
return result;
}
});
}