diff options
author | hellosagar <sagarkhurana00786@gmail.com> | 2022-04-10 01:37:47 +0530 |
---|---|---|
committer | utzcoz <43091780+utzcoz@users.noreply.github.com> | 2022-06-04 18:55:05 +0800 |
commit | f3d8b508ed2136a4f9de781ef288fffe4d5d6fa1 (patch) | |
tree | d911f904441d9dd7f267571dc04690e2d620c4a8 /utils | |
parent | 61e54f69ce2d6de72545d136ca97f5e9e37a7784 (diff) | |
download | robolectric-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.java | 87 | ||||
-rw-r--r-- | utils/src/test/java/org/robolectric/util/inject/PluginFinderTest.kt | 104 |
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 +} |