5121: Fix RecentLanguagesAdapterUnitTest (#5124)

- all tests are passing
- additionally removed 'context' variable from AdvanceQueryFragmentUnitTests.kt as it is not used, and not removed on previous PR #5119
This commit is contained in:
Ankush Bose 2022-12-24 14:34:08 +05:30 committed by GitHub
parent afa7a63f2b
commit b52d053212
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 24 deletions

View file

@ -1,6 +1,5 @@
package fr.free.nrw.commons.nearby package fr.free.nrw.commons.nearby
import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.os.Looper import android.os.Looper
import android.view.LayoutInflater import android.view.LayoutInflater
@ -26,7 +25,6 @@ import org.mockito.MockitoAnnotations
import org.powermock.reflect.Whitebox import org.powermock.reflect.Whitebox
import org.robolectric.Robolectric import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner import org.robolectric.RobolectricTestRunner
import org.robolectric.RuntimeEnvironment
import org.robolectric.Shadows import org.robolectric.Shadows
import org.robolectric.annotation.Config import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode import org.robolectric.annotation.LooperMode
@ -38,7 +36,6 @@ import org.wikipedia.AppAdapter
class AdvanceQueryFragmentUnitTests { class AdvanceQueryFragmentUnitTests {
private lateinit var view: View private lateinit var view: View
private lateinit var context: Context
private lateinit var activity: MainActivity private lateinit var activity: MainActivity
private lateinit var layoutInflater: LayoutInflater private lateinit var layoutInflater: LayoutInflater
private lateinit var fragment: AdvanceQueryFragment private lateinit var fragment: AdvanceQueryFragment
@ -63,7 +60,6 @@ class AdvanceQueryFragmentUnitTests {
@Before @Before
fun setUp() { fun setUp() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
context = RuntimeEnvironment.getApplication().applicationContext
AppAdapter.set(TestAppAdapter()) AppAdapter.set(TestAppAdapter())
activity = Robolectric.buildActivity(MainActivity::class.java).create().get() activity = Robolectric.buildActivity(MainActivity::class.java).create().get()

View file

@ -1,10 +1,9 @@
package fr.free.nrw.commons.recentlanguages package fr.free.nrw.commons.recentlanguages
import android.content.Context import android.content.Context
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.TextView
import com.nhaarman.mockitokotlin2.whenever
import fr.free.nrw.commons.TestCommonsApplication import fr.free.nrw.commons.TestCommonsApplication
import kotlinx.android.synthetic.main.row_item_languages_spinner.view.* import kotlinx.android.synthetic.main.row_item_languages_spinner.view.*
import org.junit.Assert import org.junit.Assert
@ -12,8 +11,12 @@ import org.junit.Before
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.Mock import org.mockito.Mock
import fr.free.nrw.commons.R
import fr.free.nrw.commons.contributions.MainActivity
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner import org.robolectric.RobolectricTestRunner
import org.robolectric.RuntimeEnvironment
import org.robolectric.annotation.Config import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode import org.robolectric.annotation.LooperMode
import java.lang.reflect.Field import java.lang.reflect.Field
@ -23,24 +26,25 @@ import java.lang.reflect.Field
@LooperMode(LooperMode.Mode.PAUSED) @LooperMode(LooperMode.Mode.PAUSED)
class RecentLanguagesAdapterUnitTest { class RecentLanguagesAdapterUnitTest {
private lateinit var context: Context
private lateinit var convertView: View
private lateinit var activity: MainActivity
private lateinit var adapter: RecentLanguagesAdapter private lateinit var adapter: RecentLanguagesAdapter
private lateinit var languages: List<Language> private lateinit var languages: List<Language>
@Mock @Mock
private lateinit var context: Context private lateinit var parent: ViewGroup
@Mock
private lateinit var viewGroup: ViewGroup
@Mock
private lateinit var convertView: View
@Mock
private lateinit var textView: TextView
@Before @Before
fun setUp() { fun setUp() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
context = RuntimeEnvironment.getApplication().applicationContext
activity = Robolectric.buildActivity(MainActivity::class.java).get()
convertView = LayoutInflater.from(context).inflate(R.layout.row_item_languages_spinner, null) as View
languages = listOf( languages = listOf(
Language("English", "en"), Language("English", "en"),
Language("Bengali", "bn") Language("Bengali", "bn")
@ -91,13 +95,7 @@ class RecentLanguagesAdapterUnitTest {
@Test @Test
@Throws(Exception::class) @Throws(Exception::class)
fun testGetView() { fun testGetView() {
val list = languages Assert.assertEquals(adapter.getView(0, convertView, parent), convertView)
whenever(convertView.tv_language).thenReturn(textView)
val recentLanguagesAdapter: Field =
RecentLanguagesAdapter::class.java.getDeclaredField("recentLanguages")
recentLanguagesAdapter.isAccessible = true
recentLanguagesAdapter.set(adapter, list)
Assert.assertEquals(adapter.getView(0, convertView, viewGroup), convertView)
} }
@Test @Test