aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorhellosagar <sagarkhurana00786@gmail.com>2022-04-10 01:37:47 +0530
committerutzcoz <43091780+utzcoz@users.noreply.github.com>2022-06-04 18:55:05 +0800
commitf3d8b508ed2136a4f9de781ef288fffe4d5d6fa1 (patch)
treed911f904441d9dd7f267571dc04690e2d620c4a8 /utils
parent61e54f69ce2d6de72545d136ca97f5e9e37a7784 (diff)
downloadrobolectric-f3d8b508ed2136a4f9de781ef288fffe4d5d6fa1.tar.gz
test: convert the PluginFinderTest of utils module from java to kotlin
Diffstat (limited to 'utils')
-rw-r--r--utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.java87
-rw-r--r--utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.kt104
2 files changed, 104 insertions, 87 deletions
diff --git a/utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.java b/utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.java
deleted file mode 100644
index 0d560bb28..000000000
--- a/utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.robolectric.util.inject;
-
-import static com.google.common.truth.Truth.assertThat;
-import static java.util.Arrays.asList;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.Priority;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class PluginFinderTest {
-
- private final List<Class<?>> pluginClasses = new ArrayList<>();
- private PluginFinder pluginFinder;
-
- @Before
- public void setUp() throws Exception {
- pluginFinder = new PluginFinder(new MyServiceFinderAdapter(pluginClasses));
- }
-
- @Test
- public void findPlugin_shouldPickHighestPriorityClass() throws Exception {
- pluginClasses.addAll(asList(ImplMinus1.class, ImplZeroA.class, ImplOne.class, ImplZeroB.class));
-
- assertThat(pluginFinder.findPlugin(Iface.class))
- .isEqualTo(ImplOne.class);
- }
-
- @Test
- public void findPlugin_shouldThrowIfAmbiguous() throws Exception {
- pluginClasses.addAll(asList(ImplMinus1.class, ImplZeroA.class, ImplZeroB.class));
-
- try {
- pluginFinder.findPlugin(Iface.class);
- fail();
- } catch (Exception exception) {
- assertThat(exception).isInstanceOf(InjectionException.class);
- }
- }
-
- @Test
- public void findPlugins_shouldSortClassesInReversePriority() throws Exception {
- pluginClasses.addAll(asList(ImplMinus1.class, ImplZeroA.class, ImplOne.class, ImplZeroB.class));
-
- assertThat(pluginFinder.findPlugins(Iface.class))
- .containsExactly(ImplOne.class, ImplZeroA.class, ImplZeroB.class, ImplMinus1.class)
- .inOrder();
- }
-
- @Test
- public void findPlugins_whenAnnotatedSupercedes_shouldExcludeSuperceded() throws Exception {
- pluginClasses.addAll(
- asList(ImplMinus1.class, ImplZeroXSupercedesA.class, ImplZeroA.class, ImplOne.class,
- ImplZeroB.class));
-
- List<Class<? extends Iface>> plugins = pluginFinder.findPlugins(Iface.class);
- assertThat(plugins)
- .containsExactly(ImplOne.class, ImplZeroB.class, ImplZeroXSupercedesA.class,
- ImplMinus1.class)
- .inOrder();
- }
-
- ////////////////
-
- @Priority(-1)
- private static class ImplMinus1 implements Iface {}
-
- @Priority(0)
- private static class ImplZeroA implements Iface {}
-
- private static class ImplZeroB implements Iface {}
-
- @Priority(1)
- private static class ImplOne implements Iface {}
-
- @Supercedes(ImplZeroA.class)
- private static class ImplZeroXSupercedesA implements Iface {
- }
-
- private interface Iface {}
-
-}
diff --git a/utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.kt b/utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.kt
new file mode 100644
index 000000000..91aa6bf62
--- /dev/null
+++ b/utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.kt
@@ -0,0 +1,104 @@
+package org.robolectric.util.inject
+
+import com.google.common.truth.Truth
+import javax.annotation.Priority
+import org.junit.Assert
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class PluginFinderTest {
+ private val pluginClasses: MutableList<Class<*>> = ArrayList()
+ private lateinit var pluginFinder: PluginFinder
+
+ @Before
+ @Throws(Exception::class)
+ fun setUp() {
+ pluginFinder = PluginFinder(MyServiceFinderAdapter(pluginClasses))
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun findPlugin_shouldPickHighestPriorityClass() {
+ pluginClasses.addAll(
+ listOf(
+ ImplMinus1::class.java,
+ ImplZeroA::class.java,
+ ImplOne::class.java,
+ ImplZeroB::class.java
+ )
+ )
+ Truth.assertThat(pluginFinder.findPlugin(Iface::class.java)).isEqualTo(ImplOne::class.java)
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun findPlugin_shouldThrowIfAmbiguous() {
+ pluginClasses.addAll(
+ listOf(ImplMinus1::class.java, ImplZeroA::class.java, ImplZeroB::class.java)
+ )
+ try {
+ pluginFinder.findPlugin(Iface::class.java)
+ Assert.fail()
+ } catch (exception: Exception) {
+ Truth.assertThat(exception).isInstanceOf(InjectionException::class.java)
+ }
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun findPlugins_shouldSortClassesInReversePriority() {
+ pluginClasses.addAll(
+ listOf(
+ ImplMinus1::class.java,
+ ImplZeroA::class.java,
+ ImplOne::class.java,
+ ImplZeroB::class.java
+ )
+ )
+ Truth.assertThat(pluginFinder.findPlugins(Iface::class.java))
+ .containsExactly(
+ ImplOne::class.java,
+ ImplZeroA::class.java,
+ ImplZeroB::class.java,
+ ImplMinus1::class.java
+ )
+ .inOrder()
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun findPlugins_whenAnnotatedSupercedes_shouldExcludeSuperceded() {
+ pluginClasses.addAll(
+ listOf(
+ ImplMinus1::class.java,
+ ImplZeroXSupercedesA::class.java,
+ ImplZeroA::class.java,
+ ImplOne::class.java,
+ ImplZeroB::class.java
+ )
+ )
+ val plugins = pluginFinder.findPlugins(Iface::class.java)
+ Truth.assertThat(plugins)
+ .containsExactly(
+ ImplOne::class.java,
+ ImplZeroB::class.java,
+ ImplZeroXSupercedesA::class.java,
+ ImplMinus1::class.java
+ )
+ .inOrder()
+ }
+
+ ////////////////
+ @Priority(-1) private class ImplMinus1 : Iface
+
+ @Priority(0) private class ImplZeroA : Iface
+ private class ImplZeroB : Iface
+
+ @Priority(1) private class ImplOne : Iface
+
+ @Supercedes(ImplZeroA::class) private class ImplZeroXSupercedesA : Iface
+ private interface Iface
+}