Search in sources :

Example 21 with Continuation

use of bolts.Continuation in project Bolts-Java by BoltsFramework.

the class TaskTest method testWhenAllTwoErrors.

public void testWhenAllTwoErrors() {
    final Exception error = new RuntimeException("This task failed.");
    runTaskTest(new Callable<Task<?>>() {

        @Override
        public Task<?> call() throws Exception {
            final ArrayList<Task<Void>> tasks = new ArrayList<Task<Void>>();
            for (int i = 0; i < 20; i++) {
                final int number = i;
                Task<Void> task = Task.callInBackground(new Callable<Void>() {

                    @Override
                    public Void call() throws Exception {
                        Thread.sleep((long) (Math.random() * 1000));
                        if (number == 10 || number == 11) {
                            throw error;
                        }
                        return null;
                    }
                });
                tasks.add(task);
            }
            return Task.whenAll(tasks).continueWith(new Continuation<Void, Void>() {

                @Override
                public Void then(Task<Void> task) {
                    assertTrue(task.isCompleted());
                    assertTrue(task.isFaulted());
                    assertFalse(task.isCancelled());
                    assertTrue(task.getError() instanceof AggregateException);
                    assertEquals(2, ((AggregateException) task.getError()).getErrors().size());
                    assertEquals(error, ((AggregateException) task.getError()).getErrors().get(0));
                    assertEquals(error, ((AggregateException) task.getError()).getErrors().get(1));
                    for (Task<Void> t : tasks) {
                        assertTrue(t.isCompleted());
                    }
                    return null;
                }
            });
        }
    });
}
Also used : Task(bolts.Task) Continuation(bolts.Continuation) ArrayList(java.util.ArrayList) AggregateException(bolts.AggregateException) AggregateException(bolts.AggregateException) CancellationException(java.util.concurrent.CancellationException) Callable(java.util.concurrent.Callable)

Example 22 with Continuation

use of bolts.Continuation in project Bolts-Java by BoltsFramework.

the class TaskTest method testWhenAllOneError.

public void testWhenAllOneError() {
    final Exception error = new RuntimeException("This task failed.");
    runTaskTest(new Callable<Task<?>>() {

        @Override
        public Task<?> call() throws Exception {
            final ArrayList<Task<Void>> tasks = new ArrayList<Task<Void>>();
            for (int i = 0; i < 20; i++) {
                final int number = i;
                Task<Void> task = Task.callInBackground(new Callable<Void>() {

                    @Override
                    public Void call() throws Exception {
                        Thread.sleep((long) (Math.random() * 1000));
                        if (number == 10) {
                            throw error;
                        }
                        return null;
                    }
                });
                tasks.add(task);
            }
            return Task.whenAll(tasks).continueWith(new Continuation<Void, Void>() {

                @Override
                public Void then(Task<Void> task) {
                    assertTrue(task.isCompleted());
                    assertTrue(task.isFaulted());
                    assertFalse(task.isCancelled());
                    assertFalse(task.getError() instanceof AggregateException);
                    assertEquals(error, task.getError());
                    for (Task<Void> t : tasks) {
                        assertTrue(t.isCompleted());
                    }
                    return null;
                }
            });
        }
    });
}
Also used : Task(bolts.Task) Continuation(bolts.Continuation) ArrayList(java.util.ArrayList) AggregateException(bolts.AggregateException) AggregateException(bolts.AggregateException) CancellationException(java.util.concurrent.CancellationException) Callable(java.util.concurrent.Callable)

Aggregations

Continuation (bolts.Continuation)22 Task (bolts.Task)22 JSONException (org.json.JSONException)9 ArrayList (java.util.ArrayList)8 JSONObject (org.json.JSONObject)8 CancellationException (java.util.concurrent.CancellationException)6 AggregateException (bolts.AggregateException)4 Capture (bolts.Capture)4 IOException (java.io.IOException)4 TaskCompletionSource (bolts.TaskCompletionSource)3 File (java.io.File)3 Callable (java.util.concurrent.Callable)3 ContentValues (android.content.ContentValues)2 Cursor (android.database.Cursor)2 QueryConstraints (com.parse.ParseQuery.QueryConstraints)2 FileNotFoundException (java.io.FileNotFoundException)2 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2 HashMap (java.util.HashMap)2 LinkedList (java.util.LinkedList)2 List (java.util.List)2