diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java index 9b5cbccba..c40a96c9c 100644 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java +++ b/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java @@ -46,10 +46,10 @@ public class ReviewHelper { .flatMap(title -> mediaWikiApi.pageExists("Commons:Deletion_requests/" + title) .map(pageExists -> new Pair<>(title, pageExists))) .map((Pair pair) -> { - if (pair.second) { + if (!pair.second) { return new Media(pair.first.replace("File:", "")); } - throw new Exception("Page does not exist"); + throw new Exception("Already nominated for deletion"); }).retry(MAX_RANDOM_TRIES); } @@ -58,7 +58,7 @@ public class ReviewHelper { } @Nullable - public String findImageInRecentChanges(List recentChanges) { + private String findImageInRecentChanges(List recentChanges) { String imageTitle; Random r = new Random(); int count = recentChanges.size(); diff --git a/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt index f172218a4..d1675cf9f 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt @@ -50,12 +50,28 @@ class ReviewHelperTest { .thenReturn(Single.just(listOf(recentChange, recentChange1, recentChange2))) `when`(mediaWikiApi?.pageExists(ArgumentMatchers.anyString())) - .thenReturn(Single.just(true)) + .thenReturn(Single.just(false)) val randomMedia = reviewHelper?.randomMedia?.blockingGet() assertTrue(randomMedia is Media) } + /** + * Test scenario when all media is already nominated for deletion + */ + @Test(expected = Exception::class) + fun getRandomMediaWithWithAllMediaNominatedForDeletion() { + val recentChange = getMockRecentChange("test", "File:Test1.jpeg", 0) + val recentChange1 = getMockRecentChange("test", "File:Test2.png", 0) + val recentChange2 = getMockRecentChange("test", "File:Test3.jpg", 0) + `when`(okHttpJsonApiClient?.recentFileChanges) + .thenReturn(Single.just(listOf(recentChange, recentChange1, recentChange2))) + + `when`(mediaWikiApi?.pageExists(ArgumentMatchers.anyString())) + .thenReturn(Single.just(true)) + reviewHelper?.randomMedia?.blockingGet() + } + fun getMockRecentChange(type: String, title: String, oldRevisionId: Long): RecentChange { val recentChange = mock(RecentChange::class.java) `when`(recentChange!!.type).thenReturn(type)