1
1
package fr.free.nrw.commons.customselector.ui.adapter
2
2
3
+ import android.content.ContentResolver
3
4
import android.content.Context
5
+ import android.net.Uri
4
6
import android.view.LayoutInflater
5
7
import android.view.View
6
8
import android.widget.GridLayout
9
+ import com.nhaarman.mockitokotlin2.whenever
7
10
import fr.free.nrw.commons.R
8
11
import fr.free.nrw.commons.TestCommonsApplication
9
12
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
@@ -15,6 +18,7 @@ import org.junit.Test
15
18
import org.junit.jupiter.api.Assertions
16
19
import org.junit.runner.RunWith
17
20
import org.mockito.*
21
+ import org.powermock.reflect.Whitebox
18
22
import org.robolectric.Robolectric
19
23
import org.robolectric.RobolectricTestRunner
20
24
import org.robolectric.annotation.Config
@@ -26,18 +30,23 @@ import java.lang.reflect.Field
26
30
@RunWith(RobolectricTestRunner ::class )
27
31
@Config(sdk = [21 ], application = TestCommonsApplication ::class )
28
32
class ImageAdapterTest {
29
- @Mock
30
- private lateinit var image: Image
31
33
@Mock
32
34
private lateinit var imageLoader: ImageLoader
33
35
@Mock
34
36
private lateinit var imageSelectListener: ImageSelectListener
37
+ @Mock
38
+ private lateinit var context: Context
39
+ @Mock
40
+ private lateinit var mockContentResolver: ContentResolver
35
41
36
42
private lateinit var activity: CustomSelectorActivity
37
43
private lateinit var imageAdapter: ImageAdapter
38
44
private lateinit var images : ArrayList <Image >
39
45
private lateinit var holder: ImageAdapter .ImageViewHolder
40
46
private lateinit var selectedImageField: Field
47
+ private var uri: Uri = Mockito .mock(Uri ::class .java)
48
+ private lateinit var image: Image
49
+
41
50
42
51
/* *
43
52
* Set up variables.
@@ -48,6 +57,7 @@ class ImageAdapterTest {
48
57
MockitoAnnotations .initMocks(this )
49
58
activity = Robolectric .buildActivity(CustomSelectorActivity ::class .java).get()
50
59
imageAdapter = ImageAdapter (activity, imageSelectListener, imageLoader)
60
+ image = Image (1 , " image" , uri, " abc/abc" , 1 , " bucket1" )
51
61
images = ArrayList ()
52
62
53
63
val inflater = activity.getSystemService(Context .LAYOUT_INFLATER_SERVICE ) as LayoutInflater
@@ -71,6 +81,11 @@ class ImageAdapterTest {
71
81
*/
72
82
@Test
73
83
fun onBindViewHolder () {
84
+
85
+ whenever(context.contentResolver).thenReturn(mockContentResolver)
86
+ whenever(mockContentResolver.getType(uri)).thenReturn(" jpg" )
87
+ Whitebox .setInternalState(imageAdapter, " context" , context)
88
+
74
89
// Parameters.
75
90
images.add(image)
76
91
imageAdapter.init (images)
@@ -118,4 +133,13 @@ class ImageAdapterTest {
118
133
fun getItemCount () {
119
134
Assertions .assertEquals(0 , imageAdapter.itemCount)
120
135
}
136
+
137
+ /* *
138
+ * Test getImageId
139
+ */
140
+ @Test
141
+ fun getImageIdAt () {
142
+ imageAdapter.init (listOf (image))
143
+ Assertions .assertEquals(1 , imageAdapter.getImageIdAt(0 ))
144
+ }
121
145
}
0 commit comments