@@ -0,0 +1,1193 @@
+package retryable.asyncTask;%0A%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0Aimport org.junit.runner.RunWith;%0Aimport org.mockito.Mock;%0Aimport org.robolectric.RobolectricGradleTestRunner;%0Aimport org.robolectric.annotation.Config;%0A%0Aimport static org.mockito.Mockito.verify;%0Aimport static org.mockito.MockitoAnnotations.initMocks;%0A%0A@RunWith(RobolectricGradleTestRunner.class)%0A@Config(constants = BuildConfig.class)%0Apublic class ConcreteAsyncTaskTest %7B%0A%0A  ConcreteAsyncTask%3CString, Void, Object%3E concreteAsyncTask;%0A%0A  @Mock RetryableAsyncTask retryableAsyncTask;%0A%0A  @Before%0A  public void setUp() %7B%0A    initMocks(this);%0A%0A    concreteAsyncTask = new ConcreteAsyncTask%3C%3E(retryableAsyncTask);%0A  %7D%0A%0A  @Test%0A  public void itDelegatesToParentTaskOnPreExecute() %7B%0A    concreteAsyncTask.execute();%0A%0A    verify(retryableAsyncTask).onPreExecute();%0A  %7D%0A%0A  @Test%0A  public void itDelegatesToParentTaskOnDoingBackgroundTask() %7B%0A    String params = %22foo%22;%0A%0A    concreteAsyncTask.execute(params);%0A%0A    verify(retryableAsyncTask).doInBackground(params);%0A  %7D%0A%0A  @Test%0A  public void itDelegatesToParentTaskOnPostExecute() %7B%0A    concreteAsyncTask.execute();%0A%0A    verify(retryableAsyncTask).onPostExecute(null);%0A  %7D%0A%0A%7D

Add unit test for ConcreteAsyncTask