Skip to content
Footbal app: Submission project for KADE at Dicoding academy
Kotlin
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
app
gradle/wrapper
images
.gitignore
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

Kade Sport

Kade Sport is Android apps for lookup football league events using TheSportDB API.

Endpoints

Unit Tests

Show unit test case

  • LeagueViewModelTest

    • getLeagues
      • Memastikan nilai leagues diproses dan sesuai dengan data source
      • Memastikan terjadi perubahan nilai pada leagues LiveData
    • getLoading
      • Memastikan property loading bernilai true saat memuat data
      • Memastikan property loading bernilai false saat data selesai dimuat
  • LeagueDetailViewModelTest

    • getLeagueState Loading
      • Memastikan nilai awal property leagueState adalah Loading saat fungsi loadLeague(id) dipanggil
      • Memastikan nilai property leagueState tidak sama dengan Loading setelah proses loadLeague(id)
    • getLeagueState Success
      • Memanggil fungsi loadLeague(id)
      • Memastikan nilai property leagueState adalah Success
      • Memastikan terjadi perubahan nilai pada leagueState LiveData
    • getLeagueState Error NoData
      • Memanggil fungsi loadLeague(id)
      • Memastikan nilai property leagueState adalah Error dan berisi message No data!
      • Memastikan terjadi perubahan nilai pada leagueState LiveData
    • getLeagueState Error FetchFailed
      • Memanggil fungsi loadLeague(id)
      • Memastikan nilai property leagueState adalah Error dan berisi message Failed to fetch data!
      • Memastikan terjadi perubahan nilai pada leagueState LiveData
    • getPastEvents
      • Memanggil fungsi loadPastEvent(id)
      • Memastikan property pastEvents bernilai sesuai dengan data source
      • Memastikan terjadi perubahan nilai pada pastEvents LiveData
    • getNextEvents
      • Memanggil fungsi loadNextEvent(id)
      • Memastikan property nextEvents bernilai sesuai dengan data source
      • Memastikan terjadi perubahan nilai pada nextEvents LiveData
    • getPastEvents Error
      • Memanggil fungsi loadPastEvent(id)
      • Memastikan property pastEventError bernilai No data!
      • Memastikan terjadi perubahan nilai pada pastEventError LiveData
    • getNextEvents Error
      • Memanggil fungsi loadNextEvent(id)
      • Memastikan property nextEventError bernilai No data!
      • Memastikan terjadi perubahan nilai pada nextEventError LiveData
  • LeagueEventDetailViewModelTest

    • getEventState Loading
      • Memastikan nilai awal property eventState adalah Loading saat fungsi loadEvent(id) dipanggil
      • Memastikan nilai property eventState tidak sama dengan Loading setelah proses loadEvent(id)
    • getEventState Success
      • Memanggil fungsi loadEvent(id)
      • Memastikan nilai property eventState adalah Success
      • Memastikan terjadi perubahan nilai pada eventState LiveData
    • getEventState Error
      • Memanggil fungsi loadEvent(id)
      • Memastikan nilai dari property eventState adalah Error
      • Memastikan terjadi perubahan nilai pada eventState LiveData
    • getFavoriteMessage
      • Memanggil fungsi toggleFavorite()
      • Memastikan nilai favoriteMessage adalah Please 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 adalah Added to favorite
      • Memanggil fungsi toggleFavorite()
      • Memastikan nilai favoriteMessage adalah Removed from favorite
      • Memastikan terjadi perubahan nilai pada favoriteMessage LiveData
    • getFavoriteIcon InFavorite
      • Memanggil fungsi loadEvent()
      • Memastikan nilai favoriteIcon adalah R.drawable.ic_favorite_added
      • Memastikan terjadi perubahan nilai pada favoriteIcon LiveData
    • getFavoriteIcon NotInFavorite
      • Memanggil fungsi loadEvent()
      • Memastikan nilai favoriteIcon adalah R.drawable.ic_favorite_removed
      • Memastikan terjadi perubahan nilai pada favoriteIcon LiveData
  • LeagueEventFavoriteViewModelTest

    • getFavoriteEvents
      • Memanggil fungsi loadEvents()
      • Memastikan nilai dari property favoriteEvents sesuai dengan data source
      • Memastikan terjadi perubahan nilai pada favoriteEvents LiveData
    • getLoading
      • Memastikan property loading bernilai true saat memuat data
      • Memastikan property loading bernilai false saat data selesai dimuat
    • getMessage
      • Memanggil fungsi loadEvents()
      • Memastikan terjadi perubahan nilai pada message LiveData
  • LeagueEventViewModelTest

    • getEvents Past
      • Memanggil fungsi loadEvents(leagueId, type)
      • Memastikan nilai propery events sesuai dengan data source
      • Memastikan terjadi perubahan nilai pada events LiveData
    • getEvents Next
      • Memanggil fungsi loadEvents(leagueId, type)
      • Memastikan nilai propery events sesuai dengan data source
      • Memastikan terjadi perubahan nilai pada events LiveData
    • getLoading
      • Memastikan property loading bernilai true saat memuat data
      • Memastikan property loading bernilai false saat data selesai dimuat
    • getMessage
      • Memanggil fungsi loadEvents(leagueId, type)
      • Memastikan nilai property message adalah Failed to fetch data!
      • Memastikan terjadi perubahan nilai pada message LiveData
    • getNotifier
      • Memanggil fungsi loadEvents(leagueId, type)
      • Memastikan nilai property notifier adalah R.string.msg_long_wait setelah proses memuat data selama 7100ms
      • Memastikan terjadi perubahan nilai pada notifier LiveData
  • LeagueEventSearchViewModelTest

    • getEvents
      • Memanggil fungsi search(query)
      • Memastikan nilai dari property events sesuai dengan data source
      • Memastikan terjadi perubahan nilai pada events LiveData
    • getLoading
      • Memastikan property loading bernilai true saat memuat data
      • Memastikan property loading bernilai false saat data selesai dimuat
    • getMessage
      • Memanggil fungsi search(query)
      • Memastikan nilai property message adalah No data!
      • Memastikan terjadi perubahan nilai pada message LiveData
  • DbHelperTest

    • createColumns
      • Memastikan nilai balik fungsi createColumns<type>() sama dengan nilai array yang ditulis manual
    • contentValueOf
      • Memastikan nilai balik fungsi contentValueOf() sama dengan nilai array yang ditulis manual
  • DefaultLeagueRepositoryTest

    • fetchAllLeagues
      • Memastikan fungsi mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
    • fetchLeagueById
      • Memastikan fungsi mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
      • Memverifikasi fungsi lookupLeague() terpanggil dari data source
    • fetchEventsNextLeague
      • Memastikan fungsi dengan nilai parameter badge adalah false mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
      • Memastikan fungsi dengan nilai parameter badge adalah true mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source dan memiliki nilai pada property homeBadgePath dan awayBadgePath
      • Memverifikasi fungsi eventsNextLeague(leagueId) dan lookupTeam(id) terpanggil pada data source
    • fetchEventsPastLeague
      • Memastikan fungsi dengan nilai parameter badge adalah false mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
      • Memastikan fungsi dengan nilai parameter badge adalah true mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source dan memiliki nilai pada property homeBadgePath dan awayBadgePath
      • Memverifikasi fungsi eventsPastLeague(leagueId) dan lookupTeam(id) terpanggil pada data source
    • fetchEventById
      • Memastikan fungsi dengan nilai parameter badge adalah false mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
      • Memastikan fungsi dengan nilai parameter badge adalah true mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source dan memiliki nilai pada property homeBadgePath dan awayBadgePath
      • Memverifikasi fungsi lookupEvent(id) dan lookupTeam(id) terpanggil pada data source
    • searchEvents
      • Memastikan fungsi dengan parameter query mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
      • Memverifikasi fungsi searchEvents(query) dan lookupTeam(id) terpanggil pada data source
    • getAllFavoriteEvents
      • Memastikan fungsi mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
      • Memverifikasi fungsi getAllFavorites() terpanggil pada data source
    • getFavoriteEventById
      • Memastikan fungsi mengembalikan objek Success
      • Memastikan nilai property data pada objek Success sama dengan data source
      • Memverifikasi fungsi getFavorite(id) terpanggil pada data source
    • addEventToFavorite
      • Memastikan fungsi mengembalikan objek Success
      • Memastikan nilai property data pada objek Success adalah true
      • Memverifikasi fungsi addFavorite(event) terpanggil pada data source
    • removeEventFromFavorite
      • Memastikan fungsi mengembalikan objek Success
      • Memastikan nilai property data pada objek Success adalah true
      • Memverifikasi fungsi removeFavorite(id) terpanggil pada data source

Instrumentation Tests

Show instrumentation test case

  • LeagueFragmentTest

    • loadLeagues
      • Memastikan RecyclerView tampil
      • Memastikan jumlah data pada RecyclverView sesuai dengan data source
    • checkLeague
      • Memastikan data pada indeks pertama terdapat pada RecyclerView
  • 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
  • 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 atau Removed from favorite!
  • LeagueEventFavoriteFragmentTest

    • loadFavorites
      • Memastikan RecyclerView tampil dan jumlah data sesuai
  • LeagueEventActivityTest

    • loadEvents
      • Memastikan RecyclerView tampil dan terdapat data sesuai id dan tipe liga
  • LeagueEventSearchActivityTest

    • searchEvents
      • Memastikan tampil dan memberi aksi klik pada SearchView
      • Memastikan element turunan EditText tampil dan mengetik karakter man lalu menekan tombol enter atau search
      • Memastikan RecyclerView dan data hasil search tampil
  • 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 atau Removed 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 karakter man lalu menekan tombol enter atau search
      • Memastikan RecyclerView dan data hasil search tampil

Warning!

You must be familiar with image bellow, right?

Dicoding plagiarism notice

You can’t perform that action at this time.