mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Add few more tests for campaign module (#4384)
This commit is contained in:
parent
cb8a7c22da
commit
a5154fb7fe
2 changed files with 120 additions and 0 deletions
|
|
@ -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)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue