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 com.nhaarman.mockitokotlin2.verify
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
import io.reactivex.Single import io.reactivex.Single
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.TestScheduler import io.reactivex.schedulers.TestScheduler
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito import org.mockito.Mockito
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
import java.lang.reflect.Field
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
@ -31,6 +33,9 @@ class CampaignsPresenterTest {
lateinit var testScheduler: TestScheduler lateinit var testScheduler: TestScheduler
@Mock
private lateinit var disposable: Disposable
/** /**
* initial setup, test environment * initial setup, test environment
*/ */
@ -74,4 +79,30 @@ class CampaignsPresenterTest {
testScheduler.triggerActions() testScheduler.triggerActions()
verify(view).showCampaigns(campaign) 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()
}
} }