0
0
mirror of https://github.com/ankidroid/Anki-Android.git synced 2024-09-20 20:03:05 +02:00

Migrate ExtendedFragmentFactoryTest to Kotlin

This commit is contained in:
oyeraghib 2022-04-23 09:08:44 +05:30 committed by Mike Hardy
parent c9abd994fa
commit 5c753d3e27
2 changed files with 49 additions and 59 deletions

View File

@ -42,8 +42,8 @@ permission notice:
// Example of class name: "/com/ichi2/anki/UIUtils.kt"
// Ensure that it starts with '/' (slash)
def source = Source.TEST
def className = "/com/ichi2/utils/ExtendedFragmentFactoryTest.kt"
def source = Source.MAIN
def className = ""
enum Source {
MAIN("/src/main/java"),

View File

@ -13,91 +13,81 @@
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.ichi2.utils;
package com.ichi2.utils
import com.ichi2.testutils.MockFragmentClassLoader;
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentFactory
import androidx.fragment.app.FragmentManager
import com.ichi2.testutils.MockFragmentClassLoader
import org.junit.Assert.assertEquals
import org.junit.Test
import org.mockito.Mockito.*
import javax.annotation.Nonnull
import org.junit.Test;
@KotlinCleanup("when --> whenever")
class ExtendedFragmentFactoryTest {
import javax.annotation.Nonnull;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentFactory;
import androidx.fragment.app.FragmentManager;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class ExtendedFragmentFactoryTest {
@Nonnull
private static final ClassLoader fakeClassLoader = new MockFragmentClassLoader();
static class TestFragmentFactoryTest extends ExtendedFragmentFactory {
public TestFragmentFactoryTest() {
internal class TestFragmentFactoryTest : ExtendedFragmentFactory {
constructor() {
}
public TestFragmentFactoryTest(@NonNull FragmentFactory baseFactory) {
super(baseFactory);
constructor(baseFactory: FragmentFactory) : super(baseFactory) {
}
}
@Test
public void willCallBaseFactory() {
final FragmentFactory baseFF = mock(FragmentFactory.class);
final ExtendedFragmentFactory testFF = new TestFragmentFactoryTest(baseFF);
fun willCallBaseFactory() {
val baseFF = mock(FragmentFactory::class.java)
val testFF: ExtendedFragmentFactory = TestFragmentFactoryTest(baseFF)
testFF.instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME);
testFF.instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME)
verify(baseFF, times(1)).instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME);
verify(baseFF, times(1)).instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME)
}
@Test
public void testAttachToActivity() {
final AppCompatActivity activity = mock(AppCompatActivity.class);
final FragmentManager fragmentManager = mock(FragmentManager.class);
final FragmentFactory baseFactory = mock(FragmentFactory.class);
fun testAttachToActivity() {
val activity = mock(AppCompatActivity::class.java)
val fragmentManager = mock(FragmentManager::class.java)
val baseFactory = mock(FragmentFactory::class.java)
when(activity.getSupportFragmentManager()).thenReturn(fragmentManager);
when(fragmentManager.getFragmentFactory()).thenReturn(baseFactory);
`when`(activity.supportFragmentManager).thenReturn(fragmentManager)
`when`(fragmentManager.fragmentFactory).thenReturn(baseFactory)
final ExtendedFragmentFactory testFF = new TestFragmentFactoryTest();
val testFF: ExtendedFragmentFactory = TestFragmentFactoryTest()
val result = testFF.attachToActivity<ExtendedFragmentFactory>(activity)
final ExtendedFragmentFactory result = testFF.attachToActivity(activity);
assertEquals(testFF, result)
assertEquals(testFF, result);
verify(fragmentManager, times(1)).fragmentFactory = testFF
verify(fragmentManager, times(1)).setFragmentFactory(testFF);
testFF.instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME)
testFF.instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME);
verify(baseFactory, times(1)).instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME);
verify(baseFactory, times(1)).instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME)
}
@Test
public void testAttachToFragmentManager() {
final FragmentManager fragmentManager = mock(FragmentManager.class);
final FragmentFactory baseFactory = mock(FragmentFactory.class);
fun testAttachToFragmentManager() {
val fragmentManager = mock(FragmentManager::class.java)
val baseFactory = mock(FragmentFactory::class.java)
when(fragmentManager.getFragmentFactory()).thenReturn(baseFactory);
`when`(fragmentManager.fragmentFactory).thenReturn(baseFactory)
final ExtendedFragmentFactory testFF = new TestFragmentFactoryTest();
val testFF: ExtendedFragmentFactory = TestFragmentFactoryTest()
final ExtendedFragmentFactory result = testFF.attachToFragmentManager(fragmentManager);
val result = testFF.attachToFragmentManager<ExtendedFragmentFactory>(fragmentManager)
assertEquals(testFF, result);
assertEquals(testFF, result)
verify(fragmentManager, times(1)).setFragmentFactory(testFF);
verify(fragmentManager, times(1)).fragmentFactory = testFF
testFF.instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME);
testFF.instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME)
verify(baseFactory, times(1)).instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME);
verify(baseFactory, times(1)).instantiate(fakeClassLoader, MockFragmentClassLoader.FAKE_CLASS_NAME)
}
companion object {
@Nonnull
private val fakeClassLoader: ClassLoader = MockFragmentClassLoader()
}
}