aboutsummaryrefslogtreecommitdiff
path: root/work/workmanager/src/androidTest/java/androidx
diff options
context:
space:
mode:
Diffstat (limited to 'work/workmanager/src/androidTest/java/androidx')
-rw-r--r--work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java10
-rw-r--r--work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java46
-rw-r--r--work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java36
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