-
Notifications
You must be signed in to change notification settings - Fork 9
/
WorldFragmentScreenRobotTest.kt
103 lines (90 loc) · 3.12 KB
/
WorldFragmentScreenRobotTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package com.jaimegc.covid19tracker.fragment.screenrobot
import androidx.fragment.app.testing.FragmentScenario
import androidx.fragment.app.testing.launchFragmentInContainer
import androidx.test.filters.LargeTest
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
import com.jaimegc.covid19tracker.R
import com.jaimegc.covid19tracker.ui.world.WorldFragment
import com.jaimegc.covid19tracker.util.UITest
import com.jaimegc.covid19tracker.matchers.RecyclerViewConcatAdapterMatcher.Adapters
import com.jaimegc.covid19tracker.matchers.RecyclerViewItemsCountMatcher.Options
import com.jaimegc.covid19tracker.util.screenrobot.worldScreenRobot
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4ClassRunner::class)
@LargeTest
class WorldFragmentScreenRobotTest : UITest() {
private lateinit var scenario: FragmentScenario<WorldFragment>
@Before
fun setUp() {
scenario = launchFragmentInContainer(themeResId = R.style.AppTheme)
}
@Test
fun worldInMenuListView_shouldHaveAtLeastTwoItems() {
worldScreenRobot {
clickOnMenuItemListView()
checkRecyclerViewHasItemCount(2, Options.GREATER_THAN_OR_EQUAL)
}
}
@Test
fun worldInBarChartView_shouldHaveAtLeastTwoItems() {
worldScreenRobot {
clickOnMenuItemBarChart()
checkRecyclerViewHasItemCount(2, Options.GREATER_THAN_OR_EQUAL)
}
}
@Test
fun worldInLineChartView_shouldHaveOneItem() {
worldScreenRobot {
clickOnMenuItemLineChart()
checkRecyclerViewHasItemCount(1)
}
}
@Test
fun worldInPieChartView_shouldHaveAtLeastTwoItems() {
worldScreenRobot {
clickOnMenuItemPieChart()
checkRecyclerViewHasItemCount(2, Options.GREATER_THAN_OR_EQUAL)
}
}
@Test
fun worldInMenuListView_shouldHaveWorldAndWorldCountryAdapters() {
worldScreenRobot {
clickOnMenuItemListView()
checkRecyclerHasAdapters(listOf(Adapters.WORLD, Adapters.WORLD_COUNTRY))
}
}
@Test
fun worldInMenuBarChartView_shouldHaveWorldBarAndWorldCountriesBarChartAdapters() {
worldScreenRobot {
clickOnMenuItemBarChart()
checkRecyclerHasAdapters(
listOf(Adapters.WORLD_BAR_CHART, Adapters.WORLD_COUNTRIES_BAR_CHART)
)
}
}
@Test
fun worldInMenuLineChartView_shouldHaveWorldLineChartAdapter() {
worldScreenRobot {
clickOnMenuItemLineChart()
checkRecyclerHasAdapters(listOf(Adapters.WORLD_LINE_CHART))
}
}
@Test
fun worldInMenuPieChartView_shouldHaveWorldPieAndWorldCountriesPieChartAdapters() {
worldScreenRobot {
clickOnMenuItemPieChart()
checkRecyclerHasAdapters(
listOf(Adapters.WORLD_PIE_CHART, Adapters.WORLD_COUNTRIES_PIE_CHART)
)
}
}
@Test
fun clickOnWorldCountryAdapter_shouldExpandTheItem() {
worldScreenRobot {
clickOnWorldCountryAdapter()
checkWorldCountryItemExpand()
}
}
}