Kade Sport is Android apps for lookup football league events using TheSportDB API.
- Detail liga: https://www.thesportsdb.com/api/v1/json/1/lookupleague.php?id={idLeague}
- Daftar tim: https://www.thesportsdb.com/api/v1/json/1/lookup_all_teams.php?id={idLeague}
- Klasemen pertandingan: https://www.thesportsdb.com/api/v1/json/1/lookuptable.php?l={idLeague}
- Detail tim: https://www.thesportsdb.com/api/v1/json/1/lookupteam.php?id={idTeam}
- Daftar pemain: https://www.thesportsdb.com/api/v1/json/1/lookup_all_players.php?id={idTeam}
- Detail pemain: https://www.thesportsdb.com/api/v1/json/1/lookupplayer.php?id={idPemain}
- Daftar next match: https://www.thesportsdb.com/api/v1/json/1/eventspastleague.php?id={idLeague} https://www.thesportsdb.com/api/v1/json/1/eventsnext.php?id={idTeam}
- Daftar previous match: https://www.thesportsdb.com/api/v1/json/1/eventsnextleague.php?id={idLeague} https://www.thesportsdb.com/api/v1/json/1/eventslast.php?id={idTeam}
- Detail pertandingan: https://www.thesportsdb.com/api/v1/json/1/lookupevent.php?id={idEvent}
- Pencarian pertandingan: https://www.thesportsdb.com/api/v1/json/1/searchevents.php?e={query}
- Pencarian tim: https://www.thesportsdb.com/api/v1/json/1/searchteams.php?t={query}
Show unit test case
-
LeagueViewModelTest
- getLeagues
- Memastikan nilai
leagues
diproses dan sesuai dengan data source - Memastikan terjadi perubahan nilai pada
leagues
LiveData
- Memastikan nilai
- getLoading
- Memastikan property
loading
bernilaitrue
saat memuat data - Memastikan property
loading
bernilaifalse
saat data selesai dimuat
- Memastikan property
- getLeagues
-
LeagueDetailViewModelTest
- getLeagueState Loading
- Memastikan nilai awal property
leagueState
adalahLoading
saat fungsiloadLeague(id)
dipanggil - Memastikan nilai property
leagueState
tidak sama denganLoading
setelah prosesloadLeague(id)
- Memastikan nilai awal property
- getLeagueState Success
- Memanggil fungsi
loadLeague(id)
- Memastikan nilai property
leagueState
adalahSuccess
- Memastikan terjadi perubahan nilai pada
leagueState
LiveData
- Memanggil fungsi
- getLeagueState Error NoData
- Memanggil fungsi
loadLeague(id)
- Memastikan nilai property
leagueState
adalahError
dan berisimessage
No data!
- Memastikan terjadi perubahan nilai pada
leagueState
LiveData
- Memanggil fungsi
- getLeagueState Error FetchFailed
- Memanggil fungsi
loadLeague(id)
- Memastikan nilai property
leagueState
adalahError
dan berisimessage
Failed to fetch data!
- Memastikan terjadi perubahan nilai pada
leagueState
LiveData
- Memanggil fungsi
- getPastEvents
- Memanggil fungsi
loadPastEvent(id)
- Memastikan property
pastEvents
bernilai sesuai dengan data source - Memastikan terjadi perubahan nilai pada
pastEvents
LiveData
- Memanggil fungsi
- getNextEvents
- Memanggil fungsi
loadNextEvent(id)
- Memastikan property
nextEvents
bernilai sesuai dengan data source - Memastikan terjadi perubahan nilai pada
nextEvents
LiveData
- Memanggil fungsi
- getPastEvents Error
- Memanggil fungsi
loadPastEvent(id)
- Memastikan property
pastEventError
bernilaiNo data!
- Memastikan terjadi perubahan nilai pada
pastEventError
LiveData
- Memanggil fungsi
- getNextEvents Error
- Memanggil fungsi
loadNextEvent(id)
- Memastikan property
nextEventError
bernilaiNo data!
- Memastikan terjadi perubahan nilai pada
nextEventError
LiveData
- Memanggil fungsi
- getLeagueState Loading
-
LeagueEventDetailViewModelTest
- getEventState Loading
- Memastikan nilai awal property
eventState
adalahLoading
saat fungsiloadEvent(id)
dipanggil - Memastikan nilai property
eventState
tidak sama denganLoading
setelah prosesloadEvent(id)
- Memastikan nilai awal property
- getEventState Success
- Memanggil fungsi
loadEvent(id)
- Memastikan nilai property
eventState
adalahSuccess
- Memastikan terjadi perubahan nilai pada
eventState
LiveData
- Memanggil fungsi
- getEventState Error
- Memanggil fungsi
loadEvent(id)
- Memastikan nilai dari property
eventState
adalahError
- Memastikan terjadi perubahan nilai pada
eventState
LiveData
- Memanggil fungsi
- getFavoriteMessage
- Memanggil fungsi
toggleFavorite()
- Memastikan nilai
favoriteMessage
adalahPlease wait...
karena data event belum dimuat - Memastikan terjadi perubahan nilai pada
favoriteMessage
LiveData - Memanggil fungsi
loadEvent(id)
- Memanggil fungsi
toggleFavorite()
- Memastikan terjadi perubahan nilai pada
favoriteMessage
LiveData - Memastikan nilai
favoriteMessage
adalahAdded to favorite
- Memanggil fungsi
toggleFavorite()
- Memastikan nilai
favoriteMessage
adalahRemoved from favorite
- Memastikan terjadi perubahan nilai pada
favoriteMessage
LiveData
- Memanggil fungsi
- getFavoriteIcon InFavorite
- Memanggil fungsi
loadEvent()
- Memastikan nilai
favoriteIcon
adalahR.drawable.ic_favorite_added
- Memastikan terjadi perubahan nilai pada
favoriteIcon
LiveData
- Memanggil fungsi
- getFavoriteIcon NotInFavorite
- Memanggil fungsi
loadEvent()
- Memastikan nilai
favoriteIcon
adalahR.drawable.ic_favorite_removed
- Memastikan terjadi perubahan nilai pada
favoriteIcon
LiveData
- Memanggil fungsi
- getEventState Loading
-
LeagueEventFavoriteViewModelTest
- getFavoriteEvents
- Memanggil fungsi
loadEvents()
- Memastikan nilai dari property
favoriteEvents
sesuai dengan data source - Memastikan terjadi perubahan nilai pada
favoriteEvents
LiveData
- Memanggil fungsi
- getLoading
- Memastikan property
loading
bernilaitrue
saat memuat data - Memastikan property
loading
bernilaifalse
saat data selesai dimuat
- Memastikan property
- getMessage
- Memanggil fungsi
loadEvents()
- Memastikan terjadi perubahan nilai pada
message
LiveData
- Memanggil fungsi
- getFavoriteEvents
-
LeagueEventViewModelTest
- getEvents Past
- Memanggil fungsi
loadEvents(leagueId, type)
- Memastikan nilai propery
events
sesuai dengan data source - Memastikan terjadi perubahan nilai pada
events
LiveData
- Memanggil fungsi
- getEvents Next
- Memanggil fungsi
loadEvents(leagueId, type)
- Memastikan nilai propery
events
sesuai dengan data source - Memastikan terjadi perubahan nilai pada
events
LiveData
- Memanggil fungsi
- getLoading
- Memastikan property
loading
bernilaitrue
saat memuat data - Memastikan property
loading
bernilaifalse
saat data selesai dimuat
- Memastikan property
- getMessage
- Memanggil fungsi
loadEvents(leagueId, type)
- Memastikan nilai property
message
adalahFailed to fetch data!
- Memastikan terjadi perubahan nilai pada
message
LiveData
- Memanggil fungsi
- getNotifier
- Memanggil fungsi
loadEvents(leagueId, type)
- Memastikan nilai property
notifier
adalahR.string.msg_long_wait
setelah proses memuat data selama 7100ms - Memastikan terjadi perubahan nilai pada
notifier
LiveData
- Memanggil fungsi
- getEvents Past
-
LeagueEventSearchViewModelTest
- getEvents
- Memanggil fungsi
search(query)
- Memastikan nilai dari property
events
sesuai dengan data source - Memastikan terjadi perubahan nilai pada
events
LiveData
- Memanggil fungsi
- getLoading
- Memastikan property
loading
bernilaitrue
saat memuat data - Memastikan property
loading
bernilaifalse
saat data selesai dimuat
- Memastikan property
- getMessage
- Memanggil fungsi
search(query)
- Memastikan nilai property
message
adalahNo data!
- Memastikan terjadi perubahan nilai pada
message
LiveData
- Memanggil fungsi
- getEvents
-
DbHelperTest
- createColumns
- Memastikan nilai balik fungsi
createColumns<type>()
sama dengan nilai array yang ditulis manual
- Memastikan nilai balik fungsi
- contentValueOf
- Memastikan nilai balik fungsi
contentValueOf()
sama dengan nilai array yang ditulis manual
- Memastikan nilai balik fungsi
- createColumns
-
DefaultLeagueRepositoryTest
- fetchAllLeagues
- Memastikan fungsi mengembalikan objek
Success
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source
- Memastikan fungsi mengembalikan objek
- fetchLeagueById
- Memastikan fungsi mengembalikan objek
Success
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source - Memverifikasi fungsi
lookupLeague()
terpanggil dari data source
- Memastikan fungsi mengembalikan objek
- fetchEventsNextLeague
- Memastikan fungsi dengan nilai parameter
badge
adalahfalse
mengembalikan objekSuccess
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source - Memastikan fungsi dengan nilai parameter
badge
adalahtrue
mengembalikan objekSuccess
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source dan memiliki nilai pada propertyhomeBadgePath
danawayBadgePath
- Memverifikasi fungsi
eventsNextLeague(leagueId)
danlookupTeam(id)
terpanggil pada data source
- Memastikan fungsi dengan nilai parameter
- fetchEventsPastLeague
- Memastikan fungsi dengan nilai parameter
badge
adalahfalse
mengembalikan objekSuccess
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source - Memastikan fungsi dengan nilai parameter
badge
adalahtrue
mengembalikan objekSuccess
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source dan memiliki nilai pada propertyhomeBadgePath
danawayBadgePath
- Memverifikasi fungsi
eventsPastLeague(leagueId)
danlookupTeam(id)
terpanggil pada data source
- Memastikan fungsi dengan nilai parameter
- fetchEventById
- Memastikan fungsi dengan nilai parameter
badge
adalahfalse
mengembalikan objekSuccess
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source - Memastikan fungsi dengan nilai parameter
badge
adalahtrue
mengembalikan objekSuccess
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source dan memiliki nilai pada propertyhomeBadgePath
danawayBadgePath
- Memverifikasi fungsi
lookupEvent(id)
danlookupTeam(id)
terpanggil pada data source
- Memastikan fungsi dengan nilai parameter
- searchEvents
- Memastikan fungsi dengan parameter
query
mengembalikan objekSuccess
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source - Memverifikasi fungsi
searchEvents(query)
danlookupTeam(id)
terpanggil pada data source
- Memastikan fungsi dengan parameter
- getAllFavoriteEvents
- Memastikan fungsi mengembalikan objek
Success
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source - Memverifikasi fungsi
getAllFavorites()
terpanggil pada data source
- Memastikan fungsi mengembalikan objek
- getFavoriteEventById
- Memastikan fungsi mengembalikan objek
Success
- Memastikan nilai property
data
pada objekSuccess
sama dengan data source - Memverifikasi fungsi
getFavorite(id)
terpanggil pada data source
- Memastikan fungsi mengembalikan objek
- addEventToFavorite
- Memastikan fungsi mengembalikan objek
Success
- Memastikan nilai property
data
pada objekSuccess
adalahtrue
- Memverifikasi fungsi
addFavorite(event)
terpanggil pada data source
- Memastikan fungsi mengembalikan objek
- removeEventFromFavorite
- Memastikan fungsi mengembalikan objek
Success
- Memastikan nilai property
data
pada objekSuccess
adalahtrue
- Memverifikasi fungsi
removeFavorite(id)
terpanggil pada data source
- Memastikan fungsi mengembalikan objek
- fetchAllLeagues
Show instrumentation test case
-
LeagueFragmentTest
- loadLeagues
- Memastikan
RecyclerView
tampil - Memastikan jumlah data pada
RecyclverView
sesuai dengan data source
- Memastikan
- checkLeague
- Memastikan data pada indeks pertama terdapat pada
RecyclerView
- Memastikan data pada indeks pertama terdapat pada
- loadLeagues
-
LeagueDetailActivityTest
- loadLeague
- Memastikan gambar badge tampil
- Memastikan judul liga tampil
- Memastikan deskripsi lengkap liga tampil pada popup saat diklik
- Memastikan popup deskripsi lengkap menghilang saat klik OK
- Memastikan deskripsi liga tampil
- Melakukan aksi swipe up untuk melihat semua events
- memastikan next dan past event tampil
- loadLeague
-
LeagueEventDetailActivityTest
- loadEvent
- Memastikan gambar badge tim home tampil
- Memastikan nama tim home tampil dan dengan teks sesuai data
- Memastikan score pertandingan tampil dan dengan teks sesuai data
- Memastikan waktu pertandingan tampil dan sesuai dengan data
- Memastikan gambar badge tim away tampil
- Memastikan nama tim away tampil dan dengan teks sesuai data
- Memastikan nama pemain dan waktu goal home dan away tampil dan sesuai dengan data
- Memastikan nama pemain dengan kartu kuning tampil dan teks sesuai dengan data
- Melakukan aksi swipe up
- Memastikan home dan away team lineup tampil
- toggleFavorite
- Memastikan tampil dan memberi aksi klik pada menu icon favorite
- Memastikan tampil pesan
Added to favorite
atauRemoved from favorite!
- loadEvent
-
LeagueEventFavoriteFragmentTest
- loadFavorites
- Memastikan
RecyclerView
tampil dan jumlah data sesuai
- Memastikan
- loadFavorites
-
LeagueEventActivityTest
- loadEvents
- Memastikan
RecyclerView
tampil dan terdapat data sesuai id dan tipe liga
- Memastikan
- loadEvents
-
LeagueEventSearchActivityTest
- searchEvents
- Memastikan tampil dan memberi aksi klik pada
SearchView
- Memastikan element turunan
EditText
tampil dan mengetik karakterman
lalu menekan tombol enter atau search - Memastikan
RecyclerView
dan data hasil search tampil
- Memastikan tampil dan memberi aksi klik pada
- searchEvents
-
KadeSportTest
- app
- Memastikan jumlah tab dan judul pada masing-masing tab sesuai
- Memastikan
RecyclerView
tampil untuk daftar liga dan memberi aksi klik pada data pertama - Memastikan judul liga tampil pada layar detail liga
- Memastikan deskripsi lengkap liga tampil pada popup saat diklik
- Memastikan popup deskripsi lengkap menghilang saat klik OK
- Melakukan aksi swipe up untuk melihat semua events
- Memastikan tampil dan memberi aksi klik pada past event
- Memastikan
RecyclerView
events tampil dan terdapat data sesuai id dan tipe liga dan memberi aksi klik pada data pertama - Memastikan badge dan title tim home dan away tampil
- Memastikan tampil dan memberi aksi klik pada menu icon favorite
- Memastikan tampil pesan
Added to favorite
atauRemoved from favorite!
- Memberi aksi tombol back hingga kembali pada layar main
- Memberi aksi klik pada tab
Favorite event
- Memastikan data favorite events tampil dan memberi aksi klik pada data pertama lalu menekan tombol back
- Atau jika tidak ada data favorite maka memastikan pesan
No data!
tampil - Memberi aksi klik pada icon menu search
- Memastikan element turunan
EditText
tampil dan mengetik karakterman
lalu menekan tombol enter atau search - Memastikan
RecyclerView
dan data hasil search tampil
- app