Add few more tests for campaign module (#4384)

This commit is contained in:
Madhur Gupta 2021-04-28 12:42:11 +05:30 committed by GitHub
parent cb8a7c22da
commit a5154fb7fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 120 additions and 0 deletions

View file

@ -0,0 +1,89 @@
package fr.free.nrw.commons.campaigns
import android.app.Activity
import android.view.View
import fr.free.nrw.commons.TestAppAdapter
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.contributions.MainActivity
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner
import org.robolectric.android.controller.ActivityController
import org.robolectric.annotation.Config
import org.wikipedia.AppAdapter
import java.lang.reflect.Method
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [21], application = TestCommonsApplication::class)
class CampaignViewUnitTests {
private lateinit var activityController: ActivityController<Activity>
private lateinit var activity: MainActivity
private lateinit var campaignView: CampaignView
private lateinit var campaign: Campaign
@Mock
private lateinit var view: View
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
AppAdapter.set(TestAppAdapter())
activityController = Robolectric.buildActivity(Activity::class.java)
activity = Robolectric.buildActivity(MainActivity::class.java).create().get()
campaignView = CampaignView(activity)
campaignView = CampaignView(activity, null)
campaignView = CampaignView(activity, null, 0)
}
@Test
@Throws(Exception::class)
fun checkNotNull() {
Assert.assertNotNull(campaignView)
}
@Test
@Throws(Exception::class)
fun testSetCampaignNonNullNonException() {
campaign = Campaign("", "", "2000-01-01", "2000-01-02", "")
campaignView.setCampaign(campaign)
}
@Test
@Throws(Exception::class)
fun testSetCampaignNonNullException() {
campaign = Campaign("", "", "", "", "")
campaignView.setCampaign(campaign)
}
@Test
@Throws(Exception::class)
fun testSetCampaignNull() {
campaignView.setCampaign(null)
}
@Test
@Throws(Exception::class)
fun testOnSwipe() {
campaignView.onSwipe(view)
}
@Test
@Throws(Exception::class)
fun testInit() {
val method: Method = CampaignView::class.java.getDeclaredMethod(
"init"
)
method.isAccessible = true
method.invoke(campaignView)
}
}

View file

@ -3,12 +3,14 @@ package fr.free.nrw.commons.campaigns
import com.nhaarman.mockitokotlin2.verify
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
import io.reactivex.Single
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.TestScheduler
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.MockitoAnnotations
import java.lang.reflect.Field
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.ArrayList
@ -31,6 +33,9 @@ class CampaignsPresenterTest {
lateinit var testScheduler: TestScheduler
@Mock
private lateinit var disposable: Disposable
/**
* initial setup, test environment
*/
@ -74,4 +79,30 @@ class CampaignsPresenterTest {
testScheduler.triggerActions()
verify(view).showCampaigns(campaign)
}
@Test
fun testGetCampaignsNonNull() {
val campaignField: Field =
CampaignsPresenter::class.java.getDeclaredField("campaign")
campaignField.isAccessible = true
campaignField.set(campaignsPresenter, campaign)
campaignsPresenter.getCampaigns()
}
@Test
@Throws(Exception::class)
fun testOnDetachViewNull() {
campaignsPresenter.onDetachView()
}
@Test
@Throws(Exception::class)
fun testOnDetachViewNonNull() {
val disposableField: Field =
CampaignsPresenter::class.java.getDeclaredField("disposable")
disposableField.isAccessible = true
disposableField.set(campaignsPresenter, disposable)
campaignsPresenter.onDetachView()
}
}