Skip to content

Commit a5154fb

Browse files
Add few more tests for campaign module (commons-app#4384)
1 parent cb8a7c2 commit a5154fb

File tree

2 files changed

+120
-0
lines changed

2 files changed

+120
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package fr.free.nrw.commons.campaigns
2+
3+
import android.app.Activity
4+
import android.view.View
5+
import fr.free.nrw.commons.TestAppAdapter
6+
import fr.free.nrw.commons.TestCommonsApplication
7+
import fr.free.nrw.commons.contributions.MainActivity
8+
import org.junit.Assert
9+
import org.junit.Before
10+
import org.junit.Test
11+
import org.junit.runner.RunWith
12+
import org.mockito.Mock
13+
import org.mockito.MockitoAnnotations
14+
import org.robolectric.Robolectric
15+
import org.robolectric.RobolectricTestRunner
16+
import org.robolectric.android.controller.ActivityController
17+
import org.robolectric.annotation.Config
18+
import org.wikipedia.AppAdapter
19+
import java.lang.reflect.Method
20+
21+
@RunWith(RobolectricTestRunner::class)
22+
@Config(sdk = [21], application = TestCommonsApplication::class)
23+
class CampaignViewUnitTests {
24+
25+
private lateinit var activityController: ActivityController<Activity>
26+
private lateinit var activity: MainActivity
27+
private lateinit var campaignView: CampaignView
28+
private lateinit var campaign: Campaign
29+
30+
@Mock
31+
private lateinit var view: View
32+
33+
@Before
34+
fun setUp() {
35+
MockitoAnnotations.initMocks(this)
36+
37+
AppAdapter.set(TestAppAdapter())
38+
39+
activityController = Robolectric.buildActivity(Activity::class.java)
40+
activity = Robolectric.buildActivity(MainActivity::class.java).create().get()
41+
42+
campaignView = CampaignView(activity)
43+
campaignView = CampaignView(activity, null)
44+
campaignView = CampaignView(activity, null, 0)
45+
}
46+
47+
@Test
48+
@Throws(Exception::class)
49+
fun checkNotNull() {
50+
Assert.assertNotNull(campaignView)
51+
}
52+
53+
@Test
54+
@Throws(Exception::class)
55+
fun testSetCampaignNonNullNonException() {
56+
campaign = Campaign("", "", "2000-01-01", "2000-01-02", "")
57+
campaignView.setCampaign(campaign)
58+
}
59+
60+
@Test
61+
@Throws(Exception::class)
62+
fun testSetCampaignNonNullException() {
63+
campaign = Campaign("", "", "", "", "")
64+
campaignView.setCampaign(campaign)
65+
}
66+
67+
@Test
68+
@Throws(Exception::class)
69+
fun testSetCampaignNull() {
70+
campaignView.setCampaign(null)
71+
}
72+
73+
@Test
74+
@Throws(Exception::class)
75+
fun testOnSwipe() {
76+
campaignView.onSwipe(view)
77+
}
78+
79+
@Test
80+
@Throws(Exception::class)
81+
fun testInit() {
82+
val method: Method = CampaignView::class.java.getDeclaredMethod(
83+
"init"
84+
)
85+
method.isAccessible = true
86+
method.invoke(campaignView)
87+
}
88+
89+
}

app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignsPresenterTest.kt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ package fr.free.nrw.commons.campaigns
33
import com.nhaarman.mockitokotlin2.verify
44
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
55
import io.reactivex.Single
6+
import io.reactivex.disposables.Disposable
67
import io.reactivex.schedulers.TestScheduler
78
import org.junit.Before
89
import org.junit.Test
910
import org.mockito.Mock
1011
import org.mockito.Mockito
1112
import org.mockito.MockitoAnnotations
13+
import java.lang.reflect.Field
1214
import java.text.SimpleDateFormat
1315
import java.util.*
1416
import kotlin.collections.ArrayList
@@ -31,6 +33,9 @@ class CampaignsPresenterTest {
3133

3234
lateinit var testScheduler: TestScheduler
3335

36+
@Mock
37+
private lateinit var disposable: Disposable
38+
3439
/**
3540
* initial setup, test environment
3641
*/
@@ -74,4 +79,30 @@ class CampaignsPresenterTest {
7479
testScheduler.triggerActions()
7580
verify(view).showCampaigns(campaign)
7681
}
82+
83+
@Test
84+
fun testGetCampaignsNonNull() {
85+
val campaignField: Field =
86+
CampaignsPresenter::class.java.getDeclaredField("campaign")
87+
campaignField.isAccessible = true
88+
campaignField.set(campaignsPresenter, campaign)
89+
campaignsPresenter.getCampaigns()
90+
}
91+
92+
@Test
93+
@Throws(Exception::class)
94+
fun testOnDetachViewNull() {
95+
campaignsPresenter.onDetachView()
96+
}
97+
98+
@Test
99+
@Throws(Exception::class)
100+
fun testOnDetachViewNonNull() {
101+
val disposableField: Field =
102+
CampaignsPresenter::class.java.getDeclaredField("disposable")
103+
disposableField.isAccessible = true
104+
disposableField.set(campaignsPresenter, disposable)
105+
campaignsPresenter.onDetachView()
106+
}
107+
77108
}

0 commit comments

Comments
 (0)