Skip to content

Commit c88ce14

Browse files
committed
Add test cases for dialog alert with handleSubmit
1 parent 23d2bde commit c88ce14

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class UploadPresenter implements UploadContract.UserActionListener {
3535
public static final String COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES
3636
= "number_of_consecutive_uploads_without_coordinates";
3737

38-
private static final int CONSECUTIVE_UPLOADS_REMINDER_THRESHOLD = 10;
38+
public static final int CONSECUTIVE_UPLOADS_REMINDER_THRESHOLD = 10;
3939

4040

4141
@Inject

app/src/test/kotlin/fr/free/nrw/commons/upload/UploadPresenterTest.kt

+47
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import fr.free.nrw.commons.contributions.Contribution
66
import fr.free.nrw.commons.filepicker.UploadableFile
77
import fr.free.nrw.commons.kvstore.JsonKvStore
88
import fr.free.nrw.commons.repository.UploadRepository
9+
import fr.free.nrw.commons.upload.ImageCoordinates
910
import io.reactivex.Observable
1011
import org.junit.Before
1112
import org.junit.Test
1213
import org.mockito.ArgumentMatchers
1314
import org.mockito.InjectMocks
1415
import org.mockito.Mock
1516
import org.mockito.Mockito.`when`
17+
import org.mockito.Mockito.times
1618
import org.mockito.MockitoAnnotations
1719
import java.util.*
1820

@@ -38,10 +40,16 @@ class UploadPresenterTest {
3840
@Mock
3941
private lateinit var anotherUploadableFile: UploadableFile
4042

43+
@Mock
44+
private lateinit var imageCoords: ImageCoordinates
45+
@Mock
46+
private lateinit var uploadItem: UploadItem
47+
4148
@InjectMocks
4249
lateinit var uploadPresenter: UploadPresenter
4350

4451
private var uploadableFiles: ArrayList<UploadableFile> = ArrayList()
52+
private var uploadableItems: ArrayList<UploadItem> = ArrayList()
4553

4654
/**
4755
* initial setup, test environment
@@ -70,6 +78,45 @@ class UploadPresenterTest {
7078
verify(repository).buildContributions()
7179
}
7280

81+
@Test
82+
fun handleSubmitImagesNoLocationWithConsecutiveNoLocationUploads() {
83+
`when`(imageCoords.imageCoordsExists).thenReturn(false)
84+
`when`(uploadItem.getGpsCoords()).thenReturn(imageCoords)
85+
`when`(repository.uploads).thenReturn(uploadableItems)
86+
uploadableItems.add(uploadItem)
87+
88+
// test 1 - insufficient count
89+
`when`(
90+
defaultKvStore.getInt(UploadPresenter.COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, 0))
91+
.thenReturn(UploadPresenter.CONSECUTIVE_UPLOADS_REMINDER_THRESHOLD - 1)
92+
uploadPresenter.handleSubmit()
93+
// no alert dialog expected as insufficient consecutive count
94+
verify(view, times(0)).showAlertDialog(ArgumentMatchers.anyInt(), ArgumentMatchers.any<Runnable>())
95+
96+
// test 2 - sufficient count
97+
`when`(
98+
defaultKvStore.getInt(UploadPresenter.COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, 0))
99+
.thenReturn(UploadPresenter.CONSECUTIVE_UPLOADS_REMINDER_THRESHOLD)
100+
uploadPresenter.handleSubmit()
101+
// alert dialog expected as consecutive count is at threshold
102+
verify(view).showAlertDialog(ArgumentMatchers.anyInt(), ArgumentMatchers.any<Runnable>())
103+
}
104+
105+
@Test
106+
fun handleSubmitImagesWithLocationWithConsecutiveNoLocationUploads() {
107+
`when`(
108+
defaultKvStore.getInt(UploadPresenter.COUNTER_OF_CONSECUTIVE_UPLOADS_WITHOUT_COORDINATES, 0))
109+
.thenReturn(UploadPresenter.CONSECUTIVE_UPLOADS_REMINDER_THRESHOLD)
110+
`when`(imageCoords.imageCoordsExists).thenReturn(true)
111+
`when`(uploadItem.getGpsCoords()).thenReturn(imageCoords)
112+
`when`(repository.uploads).thenReturn(uploadableItems)
113+
uploadableItems.add(uploadItem)
114+
uploadPresenter.handleSubmit()
115+
// no alert dialog expected
116+
verify(view, times(0))
117+
.showAlertDialog(ArgumentMatchers.anyInt(), ArgumentMatchers.any<Runnable>())
118+
}
119+
73120
@Test
74121
fun handleSubmitTestUserLoggedInAndLimitedConnectionOn() {
75122
`when`(

0 commit comments

Comments
 (0)