From b9de8dc145e09925009750c0c208cbb7e4a84d19 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Tue, 6 Oct 2020 18:34:39 +0300 Subject: [PATCH] Add tests for FilePicker public methods (#3948) --- .../nrw/commons/filepicker/FilePickerTest.kt | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt diff --git a/app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt new file mode 100644 index 000000000..b9712df04 --- /dev/null +++ b/app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt @@ -0,0 +1,57 @@ +package fr.free.nrw.commons.filepicker + +import android.app.Activity +import android.app.Application +import android.content.SharedPreferences +import androidx.preference.PreferenceManager +import com.nhaarman.mockitokotlin2.verify +import com.nhaarman.mockitokotlin2.verifyNoMoreInteractions +import fr.free.nrw.commons.filepicker.Constants.RequestCodes +import fr.free.nrw.commons.filepicker.FilePicker.handleActivityResult +import junit.framework.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import org.mockito.* +import org.mockito.Mockito.`when` +import org.mockito.Mockito.mock + +class FilePickerTest { + @Mock + internal lateinit var activity: Activity + @Mock + internal lateinit var sharedPref: SharedPreferences + @Mock + var sharedPreferencesEditor: SharedPreferences.Editor? = null + @Mock + var unit: Unit? = null + + @Captor + var requestCodeCaptor: ArgumentCaptor? = null + + @Before + fun setup() { + MockitoAnnotations.initMocks(this) + } + + @Test + fun testOpenGalleryRequestCode() { + `when`(PreferenceManager.getDefaultSharedPreferences(activity)).thenReturn(sharedPref) + `when`(sharedPref.edit()).thenReturn(sharedPreferencesEditor) + `when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor) + FilePicker.openGallery(activity, 0) + verify(activity).startActivityForResult(ArgumentMatchers.anyObject(), requestCodeCaptor?.capture()?.toInt()!!) + assertEquals(requestCodeCaptor?.value, RequestCodes.PICK_PICTURE_FROM_GALLERY) + } + + @Test + fun testOpenCameraForImageCode() { + `when`(PreferenceManager.getDefaultSharedPreferences(activity)).thenReturn(sharedPref) + `when`(sharedPref.edit()).thenReturn(sharedPreferencesEditor) + `when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor) + val mockApplication = mock(Application::class.java) + `when`(activity.applicationContext).thenReturn(mockApplication) + FilePicker.openCameraForImage(activity, 0) + verify(activity).startActivityForResult(ArgumentMatchers.anyObject(), requestCodeCaptor?.capture()?.toInt()!!) + assertEquals(requestCodeCaptor?.value, RequestCodes.TAKE_PICTURE) + } +} \ No newline at end of file