[go: nahoru, domu]

Merge "Revert "Add `RepeatRule` back to WorkManager to avoid degrading semver."" into androidx-master-dev
diff --git a/work/workmanager/build.gradle b/work/workmanager/build.gradle
index 5d16029..1c15e53 100644
--- a/work/workmanager/build.gradle
+++ b/work/workmanager/build.gradle
@@ -77,6 +77,7 @@
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has its own MockMaker
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has its own MockMaker
+    androidTestImplementation project(':internal-testutils-runtime')
     testImplementation(JUNIT)
     lintPublish(project(':work:work-runtime-lint'))
 }
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
index bbb97c2..4db00a1 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
@@ -71,6 +71,7 @@
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
+import androidx.testutils.RepeatRule;
 import androidx.work.BackoffPolicy;
 import androidx.work.Configuration;
 import androidx.work.Constraints;
@@ -94,7 +95,6 @@
 import androidx.work.impl.utils.CancelWorkRunnable;
 import androidx.work.impl.utils.ForceStopRunnable;
 import androidx.work.impl.utils.PreferenceUtils;
-import androidx.work.impl.utils.RepeatRule;
 import androidx.work.impl.utils.taskexecutor.InstantWorkTaskExecutor;
 import androidx.work.impl.workers.ConstraintTrackingWorker;
 import androidx.work.worker.InfiniteTestWorker;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java
index 95b6d4c..9fc8d71 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java
@@ -39,6 +39,7 @@
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.testutils.RepeatRule;
 import androidx.work.Configuration;
 import androidx.work.Constraints;
 import androidx.work.DatabaseTest;
@@ -55,7 +56,6 @@
 import androidx.work.impl.constraints.trackers.Trackers;
 import androidx.work.impl.model.WorkSpec;
 import androidx.work.impl.model.WorkSpecDao;
-import androidx.work.impl.utils.RepeatRule;
 import androidx.work.impl.utils.SynchronousExecutor;
 import androidx.work.impl.utils.taskexecutor.InstantWorkTaskExecutor;
 import androidx.work.impl.utils.taskexecutor.TaskExecutor;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/RepeatRule.java b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/RepeatRule.java
deleted file mode 100644
index ea74196..0000000
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/RepeatRule.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.work.impl.utils;
-
-import androidx.annotation.NonNull;
-
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
-import org.junit.runners.model.Statement;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * A {@link TestRule} which can be used to run the same test multiple times. Useful when trying
- * to debug flaky tests.
- *
- * To use this {@link TestRule} do the following. <br/><br/>
- *
- * Add the Rule to your JUnit test. <br/><br>
- * {@code
- *  @Rule
- *  RepeatRule mRepeatRule = new RepeatRule();
- * }
- * <br/><br>
- *
- * Add the {@link Repeat} annotation to your test case. <br/><br>
- * {@code
- *  @Test
- *  @Repeat(times=10)
- *  public void yourTestCase() {
- *
- *  }
- * }
- * <br/><br>
- */
-public class RepeatRule implements TestRule {
-    @Target(ElementType.METHOD)
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface Repeat {
-        int times();
-    }
-
-    public static class RepeatStatement extends Statement {
-        private final int mTimes;
-        private final Statement mStatement;
-
-        public RepeatStatement(int times, @NonNull Statement statement) {
-            mTimes = times;
-            mStatement = statement;
-        }
-
-        @Override
-        public void evaluate() throws Throwable {
-            for (int i = 0; i < mTimes; i++) {
-                mStatement.evaluate();
-            }
-        }
-    }
-
-    @Override
-    public Statement apply(Statement base, Description description) {
-        Repeat repeat = description.getAnnotation(Repeat.class);
-        if (repeat != null) {
-            return new RepeatStatement(repeat.times(), base);
-        } else {
-            return base;
-        }
-    }
-}