diff options
author | Sumir Kataria <sumir@google.com> | 2018-05-21 15:51:33 -0700 |
---|---|---|
committer | Sumir Kataria <sumir@google.com> | 2018-05-21 15:51:33 -0700 |
commit | 7b5c560e4098585f73564951621060de708e441f (patch) | |
tree | 51238eb2a56e661e5783a3737cb635319160220c /work/workmanager/src/androidTest/java/androidx | |
parent | 2309e0599bd54a8d9149ad7bf763eada9d2f1357 (diff) | |
download | support-7b5c560e4098585f73564951621060de708e441f.tar.gz |
Expose tags in Worker.
Plumb tags all the way through. Change the signature
of internalInit so it takes one data-holding parameter
(Extras, which now contains input Data, tags, and
RuntimeExtras). This way, we don't need to change the
internalInit signature. This means we won't need
dagger updates.
Change-Id: I4deff0dda7518d8c253b899922eee647cccef756
Fixes: 79631815
Test: Added and ran tests.
Diffstat (limited to 'work/workmanager/src/androidTest/java/androidx')
4 files changed, 53 insertions, 16 deletions
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java index bd197407787..3dd75719ba3 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java @@ -27,6 +27,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.arrayContaining; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.greaterThan; @@ -36,6 +37,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import android.content.Context; +import android.net.Uri; import android.support.test.InstrumentationRegistry; import android.support.test.filters.LargeTest; import android.support.test.filters.SmallTest; @@ -568,8 +570,7 @@ public class WorkerWrapperTest extends DatabaseTest { Worker worker = WorkerWrapper.workerFromWorkSpec( mContext, getWorkSpec(work), - Data.EMPTY, - null); + new Extras(Data.EMPTY, Collections.<String>emptyList(), null)); assertThat(worker, is(notNullValue())); assertThat(worker.getApplicationContext(), is(equalTo(mContext.getApplicationContext()))); @@ -587,8 +588,7 @@ public class WorkerWrapperTest extends DatabaseTest { Worker worker = WorkerWrapper.workerFromWorkSpec( mContext, getWorkSpec(work), - input, - null); + new Extras(input, Collections.<String>emptyList(), null)); assertThat(worker, is(notNullValue())); assertThat(worker.getInputData().getString(key, null), is(expectedValue)); @@ -597,8 +597,7 @@ public class WorkerWrapperTest extends DatabaseTest { worker = WorkerWrapper.workerFromWorkSpec( mContext, getWorkSpec(work), - Data.EMPTY, - null); + new Extras(Data.EMPTY, Collections.<String>emptyList(), null)); assertThat(worker, is(notNullValue())); assertThat(worker.getInputData().size(), is(0)); @@ -606,6 +605,45 @@ public class WorkerWrapperTest extends DatabaseTest { @Test @SmallTest + public void testFromWorkSpec_hasCorrectTags() { + OneTimeWorkRequest work = + new OneTimeWorkRequest.Builder(TestWorker.class) + .addTag("one") + .addTag("two") + .addTag("three") + .build(); + Worker worker = WorkerWrapper.workerFromWorkSpec( + mContext, + getWorkSpec(work), + new Extras(Data.EMPTY, Arrays.asList("one", "two", "three"), null)); + + assertThat(worker, is(notNullValue())); + assertThat(worker.getTags(), containsInAnyOrder("one", "two", "three")); + } + + @Test + @SmallTest + public void testFromWorkSpec_hasCorrectRuntimeExtras() { + OneTimeWorkRequest work = + new OneTimeWorkRequest.Builder(TestWorker.class).build(); + Extras.RuntimeExtras runtimeExtras = new Extras.RuntimeExtras(); + runtimeExtras.triggeredContentAuthorities = new String[] { "tca1", "tca2", "tca3" }; + runtimeExtras.triggeredContentUris = new Uri[] { Uri.parse("tcu1"), Uri.parse("tcu2") }; + + Worker worker = WorkerWrapper.workerFromWorkSpec( + mContext, + getWorkSpec(work), + new Extras(Data.EMPTY, Collections.<String>emptyList(), runtimeExtras)); + + assertThat(worker, is(notNullValue())); + assertThat(worker.getTriggeredContentAuthorities(), + arrayContaining(runtimeExtras.triggeredContentAuthorities)); + assertThat(worker.getTriggeredContentUris(), + arrayContaining(runtimeExtras.triggeredContentUris)); + } + + @Test + @SmallTest public void testSuccess_withPendingScheduledWork() { OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(TestWorker.class).build(); insertWork(work); diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java index ae2e6a1417e..a97cc528b54 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java @@ -217,7 +217,7 @@ public class SystemJobServiceTest extends WorkManagerTest { static Uri[] sTriggeredContentUris; @Override - public WorkerResult doWork() { + public @NonNull WorkerResult doWork() { synchronized (ContentUriTriggerLoggingWorker.class) { ++sTimesUpdated; sTriggeredContentAuthorities = getTriggeredContentAuthorities(); diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java index d504cce6a49..dd9baea3207 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java @@ -37,6 +37,7 @@ import androidx.work.DatabaseTest; import androidx.work.OneTimeWorkRequest; import androidx.work.State; import androidx.work.impl.ExecutionListener; +import androidx.work.impl.Extras; import androidx.work.impl.Scheduler; import androidx.work.impl.WorkManagerImpl; import androidx.work.impl.WorkerWrapper; @@ -143,8 +144,7 @@ public class ConstraintTrackingWorkerTest extends DatabaseTest implements Execut mContext, ConstraintTrackingWorker.class.getName(), workSpecId, - input, - null); + new Extras(input, Collections.<String>emptyList(), null)); ConstraintTrackingWorker spyWorker = spy(worker); when(spyWorker.getWorkDatabase()).thenReturn(mDatabase); @@ -189,8 +189,7 @@ public class ConstraintTrackingWorkerTest extends DatabaseTest implements Execut mContext, ConstraintTrackingWorker.class.getName(), workSpecId, - input, - null); + new Extras(input, Collections.<String>emptyList(), null)); ConstraintTrackingWorker spyWorker = spy(worker); when(spyWorker.getWorkDatabase()).thenReturn(mDatabase); @@ -234,8 +233,7 @@ public class ConstraintTrackingWorkerTest extends DatabaseTest implements Execut mContext, ConstraintTrackingWorker.class.getName(), workSpecId, - input, - null); + new Extras(input, Collections.<String>emptyList(), null)); ConstraintTrackingWorker spyWorker = spy(worker); when(spyWorker.getWorkDatabase()).thenReturn(mDatabase); @@ -287,8 +285,7 @@ public class ConstraintTrackingWorkerTest extends DatabaseTest implements Execut mContext, ConstraintTrackingWorker.class.getName(), workSpecId, - input, - null); + new Extras(input, Collections.<String>emptyList(), null)); ConstraintTrackingWorker spyWorker = spy(worker); when(spyWorker.getWorkDatabase()).thenReturn(mDatabase); diff --git a/work/workmanager/src/androidTest/java/androidx/work/worker/LongRunningWorker.java b/work/workmanager/src/androidTest/java/androidx/work/worker/LongRunningWorker.java index a2f24129934..f32b39c2852 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/worker/LongRunningWorker.java +++ b/work/workmanager/src/androidTest/java/androidx/work/worker/LongRunningWorker.java @@ -16,12 +16,14 @@ package androidx.work.worker; +import android.support.annotation.NonNull; + import androidx.work.Worker; public class LongRunningWorker extends Worker { @Override - public WorkerResult doWork() { + public @NonNull WorkerResult doWork() { try { Thread.sleep(5000L); } catch (InterruptedException e) { |