Skip to content

Commit 05e852b

Browse files
committed
Treewide: Implement Instrumentation and Unit test for Raw Query
Preparing for submission 3
1 parent aad269c commit 05e852b

File tree

11 files changed

+343
-134
lines changed

11 files changed

+343
-134
lines changed

.idea/deploymentTargetDropDown.xml

-17
This file was deleted.

app/src/androidTest/java/com/dicoding/moviecatalog/activity/MainActivityTest.kt

+222-9
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,29 @@ class MainActivityTest {
134134
onView(withId(R.id.sus_fab)).perform(click())
135135
Espresso.pressBackUnconditionally()
136136
inlineVariable.delayTwoSecond()
137+
onView(withText("MOVIE")).perform(click())
138+
onView(withId(R.id.rv_movie)).check(matches(isDisplayed()))
139+
onView(withId(R.id.rv_movie)).perform(
140+
RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>(
141+
1,
142+
click()
143+
)
144+
)
145+
inlineVariable.delayTwoSecond()
146+
onView(withId(R.id.menu_fab)).check(matches(isDisplayed()))
147+
onView(withId(R.id.menu_fab)).check(matches(isClickable()))
148+
onView(withId(R.id.menu_fab)).perform(click())
149+
onView(withId(R.id.sus_fab)).check(matches(isDisplayed()))
150+
onView(withId(R.id.sus_fab)).check(matches(isClickable()))
151+
onView(withId(R.id.sus_fab)).perform(click())
152+
Espresso.pressBackUnconditionally()
153+
inlineVariable.delayTwoSecond()
137154
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
138155
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
139156
onView(withId(R.id.sus_list_fab)).perform(click())
157+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
158+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
159+
onView(withId(R.id.sus_fav_fab)).perform(click())
140160
onView(withText("MOVIE")).perform(click())
141161
onView(withId(R.id.rv_movie)).check(matches(isDisplayed()))
142162
onView(withId(R.id.rv_movie)).perform(
@@ -147,11 +167,61 @@ class MainActivityTest {
147167
}
148168

149169
@Test
150-
fun load_E_removeFavMovies() {
170+
fun load_F_sortFavMoviesAsc() {
151171
inlineVariable.delayTwoSecond()
172+
onView(withText("MOVIE")).perform(click())
152173
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
153174
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
154175
onView(withId(R.id.sus_list_fab)).perform(click())
176+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
177+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
178+
onView(withId(R.id.sus_fav_fab)).perform(click())
179+
inlineVariable.delayTwoSecond()
180+
onView(withText("MOVIE")).perform(click())
181+
onView(withId(R.id.rv_movie)).check(matches(isDisplayed()))
182+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
183+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
184+
onView(withId(R.id.sus_list_fab)).perform(click())
185+
onView(withId(R.id.sus_order_asc)).check(matches(isDisplayed()))
186+
onView(withId(R.id.sus_order_asc)).check(matches(isClickable()))
187+
onView(withId(R.id.sus_order_asc)).perform(click())
188+
inlineVariable.delayTwoSecond()
189+
Espresso.pressBackUnconditionally()
190+
}
191+
192+
@Test
193+
fun load_E_sortFavMoviesDesc() {
194+
inlineVariable.delayTwoSecond()
195+
onView(withText("MOVIE")).perform(click())
196+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
197+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
198+
onView(withId(R.id.sus_list_fab)).perform(click())
199+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
200+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
201+
onView(withId(R.id.sus_fav_fab)).perform(click())
202+
inlineVariable.delayTwoSecond()
203+
onView(withText("MOVIE")).perform(click())
204+
onView(withId(R.id.rv_movie)).check(matches(isDisplayed()))
205+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
206+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
207+
onView(withId(R.id.sus_list_fab)).perform(click())
208+
onView(withId(R.id.sus_order_desc)).check(matches(isDisplayed()))
209+
onView(withId(R.id.sus_order_desc)).check(matches(isClickable()))
210+
onView(withId(R.id.sus_order_desc)).perform(click())
211+
inlineVariable.delayTwoSecond()
212+
Espresso.pressBackUnconditionally()
213+
}
214+
215+
@Test
216+
fun load_G_removeFavMovies() {
217+
inlineVariable.delayTwoSecond()
218+
onView(withText("MOVIE")).perform(click())
219+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
220+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
221+
onView(withId(R.id.sus_list_fab)).perform(click())
222+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
223+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
224+
onView(withId(R.id.sus_fav_fab)).perform(click())
155225
inlineVariable.delayTwoSecond()
156226
onView(withText("MOVIE")).perform(click())
157227
onView(withId(R.id.rv_movie)).check(matches(isDisplayed()))
@@ -160,7 +230,6 @@ class MainActivityTest {
160230
0, click()
161231
)
162232
)
163-
inlineVariable.delayTwoSecond()
164233
onView(withId(R.id.menu_fab)).check(matches(isDisplayed()))
165234
onView(withId(R.id.menu_fab)).check(matches(isClickable()))
166235
onView(withId(R.id.menu_fab)).perform(click())
@@ -169,12 +238,24 @@ class MainActivityTest {
169238
onView(withId(R.id.sus_fab)).perform(click())
170239
Espresso.pressBackUnconditionally()
171240
inlineVariable.delayTwoSecond()
172-
onView(withText("MOVIE")).perform(click())
173241
onView(withId(R.id.rv_movie)).check(matches(isDisplayed()))
242+
onView(withId(R.id.rv_movie)).perform(
243+
RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>(
244+
0, click()
245+
)
246+
)
247+
onView(withId(R.id.menu_fab)).check(matches(isDisplayed()))
248+
onView(withId(R.id.menu_fab)).check(matches(isClickable()))
249+
onView(withId(R.id.menu_fab)).perform(click())
250+
onView(withId(R.id.sus_fab)).check(matches(isDisplayed()))
251+
onView(withId(R.id.sus_fab)).check(matches(isClickable()))
252+
onView(withId(R.id.sus_fab)).perform(click())
253+
inlineVariable.delayTwoSecond()
254+
Espresso.pressBackUnconditionally()
174255
}
175256

176257
@Test
177-
fun load_F_TvShow() {
258+
fun load_H_TvShow() {
178259
inlineVariable.delayTwoSecond()
179260
onView(withText("TV SHOW")).perform(click())
180261
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
@@ -186,7 +267,7 @@ class MainActivityTest {
186267
}
187268

188269
@Test
189-
fun load_G_DetailTvShow() {
270+
fun load_I_DetailTvShow() {
190271
inlineVariable.delayTwoSecond()
191272
onView(withText("TV SHOW")).perform(click())
192273
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
@@ -248,7 +329,7 @@ class MainActivityTest {
248329
}
249330

250331
@Test
251-
fun load_H_ShareTvShow() {
332+
fun load_J_ShareTvShow() {
252333
inlineVariable.delayTwoSecond()
253334
onView(withText("TV SHOW")).perform(click())
254335
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
@@ -268,7 +349,7 @@ class MainActivityTest {
268349
}
269350

270351
@Test
271-
fun load_I_addFavTvShow() {
352+
fun load_K_addFavTvShow() {
272353
inlineVariable.delayTwoSecond()
273354
onView(withText("TV SHOW")).perform(click())
274355
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
@@ -287,9 +368,29 @@ class MainActivityTest {
287368
onView(withId(R.id.sus_fab)).perform(click())
288369
Espresso.pressBackUnconditionally()
289370
inlineVariable.delayTwoSecond()
371+
onView(withText("TV SHOW")).perform(click())
372+
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
373+
onView(withId(R.id.rv_tvshow)).perform(
374+
RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>(
375+
1,
376+
click()
377+
)
378+
)
379+
inlineVariable.delayTwoSecond()
380+
onView(withId(R.id.menu_fab)).check(matches(isDisplayed()))
381+
onView(withId(R.id.menu_fab)).check(matches(isClickable()))
382+
onView(withId(R.id.menu_fab)).perform(click())
383+
onView(withId(R.id.sus_fab)).check(matches(isDisplayed()))
384+
onView(withId(R.id.sus_fab)).check(matches(isClickable()))
385+
onView(withId(R.id.sus_fab)).perform(click())
386+
Espresso.pressBackUnconditionally()
387+
inlineVariable.delayTwoSecond()
290388
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
291389
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
292390
onView(withId(R.id.sus_list_fab)).perform(click())
391+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
392+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
393+
onView(withId(R.id.sus_fav_fab)).perform(click())
293394
onView(withText("TV SHOW")).perform(click())
294395
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
295396
onView(withId(R.id.rv_tvshow)).perform(
@@ -300,11 +401,61 @@ class MainActivityTest {
300401
}
301402

302403
@Test
303-
fun load_J_removeFavTvShow() {
404+
fun load_M_sortFavTvShowAsc() {
304405
inlineVariable.delayTwoSecond()
406+
onView(withText("TV SHOW")).perform(click())
305407
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
306408
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
307409
onView(withId(R.id.sus_list_fab)).perform(click())
410+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
411+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
412+
onView(withId(R.id.sus_fav_fab)).perform(click())
413+
inlineVariable.delayTwoSecond()
414+
onView(withText("TV SHOW")).perform(click())
415+
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
416+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
417+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
418+
onView(withId(R.id.sus_list_fab)).perform(click())
419+
onView(withId(R.id.sus_order_asc)).check(matches(isDisplayed()))
420+
onView(withId(R.id.sus_order_asc)).check(matches(isClickable()))
421+
onView(withId(R.id.sus_order_asc)).perform(click())
422+
inlineVariable.delayTwoSecond()
423+
Espresso.pressBackUnconditionally()
424+
}
425+
426+
@Test
427+
fun load_L_sortFavTvShowDesc() {
428+
inlineVariable.delayTwoSecond()
429+
onView(withText("TV SHOW")).perform(click())
430+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
431+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
432+
onView(withId(R.id.sus_list_fab)).perform(click())
433+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
434+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
435+
onView(withId(R.id.sus_fav_fab)).perform(click())
436+
inlineVariable.delayTwoSecond()
437+
onView(withText("TV SHOW")).perform(click())
438+
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
439+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
440+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
441+
onView(withId(R.id.sus_list_fab)).perform(click())
442+
onView(withId(R.id.sus_order_desc)).check(matches(isDisplayed()))
443+
onView(withId(R.id.sus_order_desc)).check(matches(isClickable()))
444+
onView(withId(R.id.sus_order_desc)).perform(click())
445+
inlineVariable.delayTwoSecond()
446+
Espresso.pressBackUnconditionally()
447+
}
448+
449+
@Test
450+
fun load_N_removeFavTvShow() {
451+
inlineVariable.delayTwoSecond()
452+
onView(withText("TV SHOW")).perform(click())
453+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
454+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
455+
onView(withId(R.id.sus_list_fab)).perform(click())
456+
onView(withId(R.id.sus_fav_fab)).check(matches(isDisplayed()))
457+
onView(withId(R.id.sus_fav_fab)).check(matches(isClickable()))
458+
onView(withId(R.id.sus_fav_fab)).perform(click())
308459
inlineVariable.delayTwoSecond()
309460
onView(withText("TV SHOW")).perform(click())
310461
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
@@ -313,7 +464,6 @@ class MainActivityTest {
313464
0, click()
314465
)
315466
)
316-
inlineVariable.delayTwoSecond()
317467
onView(withId(R.id.menu_fab)).check(matches(isDisplayed()))
318468
onView(withId(R.id.menu_fab)).check(matches(isClickable()))
319469
onView(withId(R.id.menu_fab)).perform(click())
@@ -324,5 +474,68 @@ class MainActivityTest {
324474
inlineVariable.delayTwoSecond()
325475
onView(withText("TV SHOW")).perform(click())
326476
onView(withId(R.id.rv_tvshow)).check(matches(isDisplayed()))
477+
onView(withId(R.id.rv_tvshow)).perform(
478+
RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>(
479+
0, click()
480+
)
481+
)
482+
onView(withId(R.id.menu_fab)).check(matches(isDisplayed()))
483+
onView(withId(R.id.menu_fab)).check(matches(isClickable()))
484+
onView(withId(R.id.menu_fab)).perform(click())
485+
onView(withId(R.id.sus_fab)).check(matches(isDisplayed()))
486+
onView(withId(R.id.sus_fab)).check(matches(isClickable()))
487+
onView(withId(R.id.sus_fab)).perform(click())
488+
Espresso.pressBackUnconditionally()
489+
inlineVariable.delayTwoSecond()
490+
onView(withText("TV SHOW")).perform(click())
491+
Espresso.pressBackUnconditionally()
492+
}
493+
494+
@Test
495+
fun load_P_sortMovieAsc() {
496+
inlineVariable.delayTwoSecond()
497+
onView(withText("MOVIE")).perform(click())
498+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
499+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
500+
onView(withId(R.id.sus_list_fab)).perform(click())
501+
onView(withId(R.id.sus_order_asc)).check(matches(isDisplayed()))
502+
onView(withId(R.id.sus_order_asc)).check(matches(isClickable()))
503+
onView(withId(R.id.sus_order_asc)).perform(click())
504+
}
505+
506+
@Test
507+
fun load_O_sortMovieDesc() {
508+
inlineVariable.delayTwoSecond()
509+
onView(withText("MOVIE")).perform(click())
510+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
511+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
512+
onView(withId(R.id.sus_list_fab)).perform(click())
513+
onView(withId(R.id.sus_order_desc)).check(matches(isDisplayed()))
514+
onView(withId(R.id.sus_order_desc)).check(matches(isClickable()))
515+
onView(withId(R.id.sus_order_desc)).perform(click())
516+
}
517+
518+
@Test
519+
fun load_R_sortTvShowAsc() {
520+
inlineVariable.delayTwoSecond()
521+
onView(withText("TV SHOW")).perform(click())
522+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
523+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
524+
onView(withId(R.id.sus_list_fab)).perform(click())
525+
onView(withId(R.id.sus_order_asc)).check(matches(isDisplayed()))
526+
onView(withId(R.id.sus_order_asc)).check(matches(isClickable()))
527+
onView(withId(R.id.sus_order_asc)).perform(click())
528+
}
529+
530+
@Test
531+
fun load_Q_sortTvShowDesc() {
532+
inlineVariable.delayTwoSecond()
533+
onView(withText("TV SHOW")).perform(click())
534+
onView(withId(R.id.sus_list_fab)).check(matches(isDisplayed()))
535+
onView(withId(R.id.sus_list_fab)).check(matches(isClickable()))
536+
onView(withId(R.id.sus_list_fab)).perform(click())
537+
onView(withId(R.id.sus_order_desc)).check(matches(isDisplayed()))
538+
onView(withId(R.id.sus_order_desc)).check(matches(isClickable()))
539+
onView(withId(R.id.sus_order_desc)).perform(click())
327540
}
328541
}

app/src/main/java/com/dicoding/moviecatalog/data/source/Repository.kt

+8-8
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ class Repository private constructor(
3030
public override fun loadFromDB(): LiveData<PagedList<MovieListEntity>> {
3131
val config = PagedList.Config.Builder()
3232
.setEnablePlaceholders(false)
33-
.setInitialLoadSizeHint(4)
34-
.setPageSize(4)
33+
.setInitialLoadSizeHint(5)
34+
.setPageSize(5)
3535
.build()
3636
return LivePagedListBuilder(localDataSource.getAllMovies(sort), config).build()
3737
}
@@ -133,8 +133,8 @@ class Repository private constructor(
133133
override fun getFavoriteMovies(sort: String): LiveData<PagedList<MovieDetailEntity>> {
134134
val config = PagedList.Config.Builder()
135135
.setEnablePlaceholders(false)
136-
.setInitialLoadSizeHint(4)
137-
.setPageSize(4)
136+
.setInitialLoadSizeHint(5)
137+
.setPageSize(5)
138138
.build()
139139

140140
return LivePagedListBuilder(localDataSource.getFavMovies(sort), config).build()
@@ -154,8 +154,8 @@ class Repository private constructor(
154154
public override fun loadFromDB(): LiveData<PagedList<TvShowListEntity>> {
155155
val config = PagedList.Config.Builder()
156156
.setEnablePlaceholders(false)
157-
.setInitialLoadSizeHint(4)
158-
.setPageSize(4)
157+
.setInitialLoadSizeHint(5)
158+
.setPageSize(5)
159159
.build()
160160
return LivePagedListBuilder(localDataSource.getAllTvShow(sort), config).build()
161161
}
@@ -258,8 +258,8 @@ class Repository private constructor(
258258
override fun getFavoriteTvShow(sort: String): LiveData<PagedList<TvShowDetailEntity>> {
259259
val config = PagedList.Config.Builder()
260260
.setEnablePlaceholders(false)
261-
.setInitialLoadSizeHint(4)
262-
.setPageSize(4)
261+
.setInitialLoadSizeHint(5)
262+
.setPageSize(5)
263263
.build()
264264

265265
return LivePagedListBuilder(localDataSource.getFavTvShow(sort), config).build()

0 commit comments

Comments
 (0)