diff options
Diffstat (limited to 'work/workmanager/src/androidTest/java/androidx')
3 files changed, 52 insertions, 40 deletions
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java index 8dbc9321dfd..d5793940d54 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java @@ -21,6 +21,7 @@ import static androidx.work.impl.utils.PackageManagerHelper.isComponentExplicitl import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsInstanceOf.instanceOf; +import static org.mockito.Mockito.mock; import android.content.Context; import android.os.Build; @@ -29,7 +30,6 @@ import android.support.test.filters.SdkSuppress; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; -import androidx.work.Configuration; import androidx.work.impl.background.systemalarm.SystemAlarmScheduler; import androidx.work.impl.background.systemalarm.SystemAlarmService; import androidx.work.impl.background.systemjob.SystemJobScheduler; @@ -44,19 +44,19 @@ import org.junit.runner.RunWith; public class SchedulersTest { private Context mAppContext; - private Configuration mConfiguration; + private WorkManagerImpl mWorkManager; @Before public void setUp() { + mWorkManager = mock(WorkManagerImpl.class); mAppContext = InstrumentationRegistry.getTargetContext(); - mConfiguration = new Configuration.Builder().build(); } @Test @SdkSuppress(minSdkVersion = WorkManagerImpl.MIN_JOB_SCHEDULER_API_LEVEL) public void testGetBackgroundScheduler_withJobSchedulerApiLevel() { Scheduler scheduler = - Schedulers.createBestAvailableBackgroundScheduler(mAppContext, mConfiguration); + Schedulers.createBestAvailableBackgroundScheduler(mAppContext, mWorkManager); assertThat(scheduler, is(instanceOf(SystemJobScheduler.class))); assertServicesEnabled(true, false, false); } @@ -65,7 +65,7 @@ public class SchedulersTest { @SdkSuppress(maxSdkVersion = WorkManagerImpl.MAX_PRE_JOB_SCHEDULER_API_LEVEL) public void testGetBackgroundScheduler_beforeJobSchedulerApiLevel() { Scheduler scheduler = - Schedulers.createBestAvailableBackgroundScheduler(mAppContext, mConfiguration); + Schedulers.createBestAvailableBackgroundScheduler(mAppContext, mWorkManager); assertThat(scheduler, is(instanceOf(SystemAlarmScheduler.class))); assertServicesEnabled(false, false, true); } diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java index 8d03b1fe5a9..b0d499eda65 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java @@ -25,9 +25,6 @@ import static androidx.work.NetworkType.UNMETERED; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.arrayContaining; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import android.app.job.JobInfo; import android.net.Uri; @@ -38,7 +35,6 @@ import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import androidx.work.BackoffPolicy; -import androidx.work.Configuration; import androidx.work.Constraints; import androidx.work.NetworkType; import androidx.work.OneTimeWorkRequest; @@ -46,7 +42,6 @@ import androidx.work.PeriodicWorkRequest; import androidx.work.WorkManagerTest; import androidx.work.impl.WorkManagerImpl; import androidx.work.impl.model.WorkSpec; -import androidx.work.impl.utils.IdGenerator; import androidx.work.worker.TestWorker; import org.junit.Before; @@ -61,39 +56,34 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS + 1232L; private static final long TEST_FLEX_DURATION = PeriodicWorkRequest.MIN_PERIODIC_FLEX_MILLIS + 112L; + private static final int JOB_ID = 101; - private IdGenerator mMockIdGenerator; private SystemJobInfoConverter mConverter; @Before public void setUp() { - mMockIdGenerator = mock(IdGenerator.class); mConverter = new SystemJobInfoConverter( - InstrumentationRegistry.getTargetContext(), - new Configuration.Builder().build(), - mMockIdGenerator); + InstrumentationRegistry.getTargetContext()); } @Test @SmallTest public void testConvert_ids() { final String expectedWorkSpecId = "026e3422-9cd1-11e7-abc4-cec278b6b50a"; - final int expectedJobId = 101; - when(mMockIdGenerator.nextJobSchedulerIdWithRange(anyInt(), anyInt())) - .thenReturn(expectedJobId); WorkSpec workSpec = new WorkSpec(expectedWorkSpecId, TestWorker.class.getName()); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); String actualWorkSpecId = jobInfo.getExtras().getString( SystemJobInfoConverter.EXTRA_WORK_SPEC_ID); assertThat(actualWorkSpecId, is(expectedWorkSpecId)); - assertThat(jobInfo.getId(), is(expectedJobId)); + assertThat(jobInfo.getId(), is(JOB_ID)); } @Test @SmallTest public void testConvert_setPersistedByDefault() { - JobInfo jobInfo = mConverter.convert(new WorkSpec("id", TestWorker.class.getName())); - assertThat(jobInfo.isPersisted(), is(true)); + JobInfo jobInfo = mConverter.convert( + new WorkSpec("id", TestWorker.class.getName()), JOB_ID); + assertThat(jobInfo.isPersisted(), is(false)); } /** @@ -106,7 +96,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { @Test @SmallTest public void testConvert_noConstraints_doesNotThrowException() { - mConverter.convert(new WorkSpec("id", TestWorker.class.getName())); + mConverter.convert(new WorkSpec("id", TestWorker.class.getName()), JOB_ID); } @Test @@ -116,7 +106,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { WorkSpec workSpec = new WorkSpec("id", TestWorker.class.getName()); workSpec.setBackoffDelayDuration(expectedBackoffDelayDuration); workSpec.backoffPolicy = BackoffPolicy.LINEAR; - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.getInitialBackoffMillis(), is(expectedBackoffDelayDuration)); assertThat(jobInfo.getBackoffPolicy(), is(JobInfo.BACKOFF_POLICY_LINEAR)); } @@ -127,7 +117,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { final long expectedInitialDelay = 12123L; WorkSpec workSpec = new WorkSpec("id", TestWorker.class.getName()); workSpec.initialDelay = expectedInitialDelay; - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.getMinLatencyMillis(), is(expectedInitialDelay)); } @@ -136,7 +126,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { public void testConvert_periodicWithNoFlex() { WorkSpec workSpec = new WorkSpec("id", TestWorker.class.getName()); workSpec.setPeriodic(TEST_INTERVAL_DURATION); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.getIntervalMillis(), is(TEST_INTERVAL_DURATION)); } @@ -146,7 +136,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { public void testConvert_periodicWithFlex() { WorkSpec workSpec = new WorkSpec("id", TestWorker.class.getName()); workSpec.setPeriodic(TEST_INTERVAL_DURATION, TEST_FLEX_DURATION); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.getIntervalMillis(), is(TEST_INTERVAL_DURATION)); assertThat(jobInfo.getFlexMillis(), is(TEST_FLEX_DURATION)); } @@ -157,7 +147,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { final boolean expectedRequireCharging = true; WorkSpec workSpec = getTestWorkSpecWithConstraints(new Constraints.Builder() .setRequiresCharging(expectedRequireCharging).build()); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.isRequireCharging(), is(expectedRequireCharging)); } @@ -171,7 +161,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { expectedUri, JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS); WorkSpec workSpec = getTestWorkSpecWithConstraints(new Constraints.Builder() .addContentUriTrigger(expectedUri, true).build()); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); JobInfo.TriggerContentUri[] triggerContentUris = jobInfo.getTriggerContentUris(); assertThat(triggerContentUris, is(arrayContaining(expectedTriggerContentUri))); @@ -183,7 +173,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { final boolean expectedRequireDeviceIdle = true; WorkSpec workSpec = getTestWorkSpecWithConstraints(new Constraints.Builder() .setRequiresDeviceIdle(expectedRequireDeviceIdle).build()); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.isRequireDeviceIdle(), is(expectedRequireDeviceIdle)); } @@ -194,7 +184,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { final boolean expectedRequireBatteryNotLow = true; WorkSpec workSpec = getTestWorkSpecWithConstraints(new Constraints.Builder() .setRequiresBatteryNotLow(expectedRequireBatteryNotLow).build()); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.isRequireBatteryNotLow(), is(expectedRequireBatteryNotLow)); } @@ -205,7 +195,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { final boolean expectedRequireStorageNotLow = true; WorkSpec workSpec = getTestWorkSpecWithConstraints(new Constraints.Builder() .setRequiresStorageNotLow(expectedRequireStorageNotLow).build()); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); assertThat(jobInfo.isRequireStorageNotLow(), is(expectedRequireStorageNotLow)); } @@ -226,7 +216,7 @@ public class SystemJobInfoConverterTest extends WorkManagerTest { int minSdkVersion) { WorkSpec workSpec = getTestWorkSpecWithConstraints(new Constraints.Builder() .setRequiredNetworkType(networkType).build()); - JobInfo jobInfo = mConverter.convert(workSpec); + JobInfo jobInfo = mConverter.convert(workSpec, JOB_ID); if (Build.VERSION.SDK_INT >= minSdkVersion) { assertThat(jobInfo.getNetworkType(), is(jobInfoNetworkType)); } else { diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java index a8ee3975aff..44f82d5325c 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java @@ -23,12 +23,14 @@ import static androidx.work.impl.background.systemjob.SystemJobInfoConverter.EXT import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import android.app.job.JobInfo; import android.app.job.JobScheduler; @@ -42,7 +44,9 @@ import android.support.test.runner.AndroidJUnit4; import androidx.work.Configuration; import androidx.work.OneTimeWorkRequest; import androidx.work.WorkManagerTest; +import androidx.work.impl.WorkDatabase; import androidx.work.impl.WorkManagerImpl; +import androidx.work.impl.model.SystemIdInfoDao; import androidx.work.impl.model.WorkSpec; import androidx.work.worker.TestWorker; @@ -59,6 +63,7 @@ public class SystemJobSchedulerTest extends WorkManagerTest { private static final String TEST_ID = "test"; + private WorkManagerImpl mWorkManager; private JobScheduler mJobScheduler; private SystemJobScheduler mSystemJobScheduler; @@ -66,7 +71,17 @@ public class SystemJobSchedulerTest extends WorkManagerTest { public void setUp() { Context context = InstrumentationRegistry.getTargetContext(); Configuration configuration = new Configuration.Builder().build(); + WorkDatabase workDatabase = mock(WorkDatabase.class); + SystemIdInfoDao systemIdInfoDao = mock(SystemIdInfoDao.class); + + + mWorkManager = mock(WorkManagerImpl.class); mJobScheduler = mock(JobScheduler.class); + + when(mWorkManager.getConfiguration()).thenReturn(configuration); + when(workDatabase.systemIdInfoDao()).thenReturn(systemIdInfoDao); + when(mWorkManager.getWorkDatabase()).thenReturn(workDatabase); + doReturn(RESULT_SUCCESS).when(mJobScheduler).schedule(any(JobInfo.class)); List<JobInfo> allJobInfos = new ArrayList<>(2); @@ -82,10 +97,13 @@ public class SystemJobSchedulerTest extends WorkManagerTest { doReturn(allJobInfos).when(mJobScheduler).getAllPendingJobs(); mSystemJobScheduler = - spy(new SystemJobScheduler(mJobScheduler, - new SystemJobInfoConverter(context, configuration))); + spy(new SystemJobScheduler( + context, + mWorkManager, + mJobScheduler, + new SystemJobInfoConverter(context))); - doNothing().when(mSystemJobScheduler).scheduleInternal(any(WorkSpec.class)); + doNothing().when(mSystemJobScheduler).scheduleInternal(any(WorkSpec.class), anyInt()); } @Test @@ -100,8 +118,10 @@ public class SystemJobSchedulerTest extends WorkManagerTest { mSystemJobScheduler.schedule(workSpec1, workSpec2); - verify(mSystemJobScheduler, times(2)).scheduleInternal(workSpec1); - verify(mSystemJobScheduler, times(2)).scheduleInternal(workSpec2); + verify(mSystemJobScheduler, times(2)) + .scheduleInternal(eq(workSpec1), anyInt()); + verify(mSystemJobScheduler, times(2)) + .scheduleInternal(eq(workSpec2), anyInt()); } @Test @@ -116,8 +136,10 @@ public class SystemJobSchedulerTest extends WorkManagerTest { mSystemJobScheduler.schedule(workSpec1, workSpec2); - verify(mSystemJobScheduler, times(1)).scheduleInternal(workSpec1); - verify(mSystemJobScheduler, times(1)).scheduleInternal(workSpec2); + verify(mSystemJobScheduler, times(1)) + .scheduleInternal(eq(workSpec1), anyInt()); + verify(mSystemJobScheduler, times(1)) + .scheduleInternal(eq(workSpec2), anyInt()); } @Test |