mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Added more unit tests to UploadPresenter (#3250)
* Added more unit tests to UploadPresenter * added method comments
This commit is contained in:
parent
320674762b
commit
88bb1d87ca
1 changed files with 51 additions and 4 deletions
|
|
@ -30,6 +30,9 @@ class UploadPresenterTest {
|
|||
@Mock
|
||||
private lateinit var uploadableFile: UploadableFile
|
||||
|
||||
@Mock
|
||||
private lateinit var anotherUploadableFile: UploadableFile
|
||||
|
||||
@InjectMocks
|
||||
var uploadPresenter: UploadPresenter? = null
|
||||
|
||||
|
|
@ -44,7 +47,6 @@ class UploadPresenterTest {
|
|||
MockitoAnnotations.initMocks(this)
|
||||
uploadPresenter?.onAttachView(view)
|
||||
`when`(repository?.buildContributions()).thenReturn(Observable.just(contribution))
|
||||
`when`(view?.isLoggedIn).thenReturn(true)
|
||||
uploadableFiles.add(uploadableFile)
|
||||
`when`(view?.uploadableFiles).thenReturn(uploadableFiles)
|
||||
`when`(uploadableFile?.filePath).thenReturn("data://test")
|
||||
|
|
@ -54,7 +56,8 @@ class UploadPresenterTest {
|
|||
* unit test case for method UploadPresenter.handleSubmit
|
||||
*/
|
||||
@Test
|
||||
fun handleSubmitTest() {
|
||||
fun handleSubmitTestUserLoggedIn() {
|
||||
`when`(view?.isLoggedIn).thenReturn(true)
|
||||
uploadPresenter?.handleSubmit()
|
||||
verify(view)?.isLoggedIn
|
||||
verify(view)?.showProgress(true)
|
||||
|
|
@ -63,13 +66,57 @@ class UploadPresenterTest {
|
|||
}
|
||||
|
||||
/**
|
||||
* unit test for UploadMediaPresenter.deletePictureAtIndex
|
||||
* unit test case for method UploadPresenter.handleSubmit
|
||||
*/
|
||||
@Test
|
||||
fun deletePictureAtIndexTest() {
|
||||
fun handleSubmitTestUserNotLoggedIn() {
|
||||
`when`(view?.isLoggedIn).thenReturn(false)
|
||||
uploadPresenter?.handleSubmit()
|
||||
verify(view)?.isLoggedIn
|
||||
verify(view)?.askUserToLogIn()
|
||||
|
||||
}
|
||||
|
||||
private fun deletePictureBaseTest(){
|
||||
uploadableFiles.clear()
|
||||
}
|
||||
|
||||
/**
|
||||
* Test which asserts If the next fragment to be shown is not one of the MediaDetailsFragment, lets hide the top card
|
||||
*/
|
||||
@Test
|
||||
fun hideTopCardWhenReachedTheLastFile(){
|
||||
deletePictureBaseTest()
|
||||
uploadableFiles.add(uploadableFile)
|
||||
uploadPresenter?.deletePictureAtIndex(0)
|
||||
verify(view)?.showHideTopCard(false)
|
||||
verify(repository)?.deletePicture(ArgumentMatchers.anyString())
|
||||
}
|
||||
|
||||
/**
|
||||
* Test media deletion during single upload
|
||||
*/
|
||||
@Test
|
||||
fun testDeleteWhenSingleUpload(){
|
||||
deletePictureBaseTest()
|
||||
uploadableFiles.add(uploadableFile)
|
||||
uploadPresenter?.deletePictureAtIndex(0)
|
||||
verify(view)?.showHideTopCard(false)
|
||||
verify(repository)?.deletePicture(ArgumentMatchers.anyString())
|
||||
verify(view)?.showMessage(ArgumentMatchers.anyInt())//As there is only one while which we are asking for deletion, upload should be cancelled and this flow should be triggered
|
||||
verify(view)?.finish()
|
||||
}
|
||||
|
||||
/**
|
||||
* Test media deletion during multiple upload
|
||||
*/
|
||||
@Test
|
||||
fun testDeleteWhenMultipleFilesUpload(){
|
||||
deletePictureBaseTest()
|
||||
uploadableFiles.add(uploadableFile)
|
||||
uploadableFiles.add(anotherUploadableFile)
|
||||
uploadPresenter?.deletePictureAtIndex(0)
|
||||
verify(view)?.onUploadMediaDeleted(0)
|
||||
verify(view)?.updateTopCardTitle()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue