1
1
package fr.free.nrw.commons.recentlanguages
2
2
3
3
import android.content.Context
4
+ import android.view.LayoutInflater
4
5
import android.view.View
5
6
import android.view.ViewGroup
6
- import android.widget.TextView
7
- import com.nhaarman.mockitokotlin2.whenever
8
7
import fr.free.nrw.commons.TestCommonsApplication
9
8
import kotlinx.android.synthetic.main.row_item_languages_spinner.view.*
10
9
import org.junit.Assert
11
10
import org.junit.Before
12
11
import org.junit.Test
13
12
import org.junit.runner.RunWith
14
13
import org.mockito.Mock
14
+ import fr.free.nrw.commons.R
15
+ import fr.free.nrw.commons.contributions.MainActivity
15
16
import org.mockito.MockitoAnnotations
17
+ import org.robolectric.Robolectric
16
18
import org.robolectric.RobolectricTestRunner
19
+ import org.robolectric.RuntimeEnvironment
17
20
import org.robolectric.annotation.Config
18
21
import org.robolectric.annotation.LooperMode
19
22
import java.lang.reflect.Field
@@ -23,24 +26,25 @@ import java.lang.reflect.Field
23
26
@LooperMode(LooperMode .Mode .PAUSED )
24
27
class RecentLanguagesAdapterUnitTest {
25
28
26
- private lateinit var adapter: RecentLanguagesAdapter
27
- private lateinit var languages: List <Language >
28
-
29
- @Mock
30
29
private lateinit var context: Context
31
-
32
- @Mock
33
- private lateinit var viewGroup: ViewGroup
34
-
35
- @Mock
36
30
private lateinit var convertView: View
31
+ private lateinit var activity: MainActivity
32
+ private lateinit var adapter: RecentLanguagesAdapter
33
+ private lateinit var languages: List <Language >
37
34
38
35
@Mock
39
- private lateinit var textView : TextView
36
+ private lateinit var parent : ViewGroup
40
37
41
38
@Before
42
39
fun setUp () {
43
40
MockitoAnnotations .initMocks(this )
41
+
42
+ context = RuntimeEnvironment .getApplication().applicationContext
43
+
44
+ activity = Robolectric .buildActivity(MainActivity ::class .java).get()
45
+
46
+ convertView = LayoutInflater .from(context).inflate(R .layout.row_item_languages_spinner, null ) as View
47
+
44
48
languages = listOf (
45
49
Language (" English" , " en" ),
46
50
Language (" Bengali" , " bn" )
@@ -91,13 +95,7 @@ class RecentLanguagesAdapterUnitTest {
91
95
@Test
92
96
@Throws(Exception ::class )
93
97
fun testGetView () {
94
- val list = languages
95
- whenever(convertView.tv_language).thenReturn(textView)
96
- val recentLanguagesAdapter: Field =
97
- RecentLanguagesAdapter ::class .java.getDeclaredField(" recentLanguages" )
98
- recentLanguagesAdapter.isAccessible = true
99
- recentLanguagesAdapter.set(adapter, list)
100
- Assert .assertEquals(adapter.getView(0 , convertView, viewGroup), convertView)
98
+ Assert .assertEquals(adapter.getView(0 , convertView, parent), convertView)
101
99
}
102
100
103
101
@Test
@@ -111,4 +109,4 @@ class RecentLanguagesAdapterUnitTest {
111
109
val languageCode = list[0 ].languageCode
112
110
Assert .assertEquals(adapter.getLanguageCode(0 ), languageCode)
113
111
}
114
- }
112
+ }
0 commit comments