Skip to content

Commit

Permalink
Added some more test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
myofficework000 committed Jun 29, 2024
1 parent 983823c commit 1f006e4
Show file tree
Hide file tree
Showing 9 changed files with 122 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@ import com.abhishek.pathak.kotlin.android.githubcompose.data.GithubRepositoryImp
import org.koin.dsl.module

val repositoryModule = module {

factory<GithubRepository> {
GithubRepositoryImpl(
githubApi = get()
)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,4 @@ abstract class BaseViewModel<Event: ViewEvent, UiState: ViewState, Effect: ViewS
val effectValue = builder()
viewModelScope.launch { _effect.send(effectValue) }
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,4 @@ class ReposContract {
object Back : Navigation()
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ class ReposViewModel(
private val githubRepository: GithubRepository
) : BaseViewModel<ReposContract.Event, ReposContract.State, ReposContract.Effect>() {

init { getAll() }
init {
getAll()
}

override fun setInitialState() = ReposContract.State(
user = null,
Expand All @@ -25,6 +27,7 @@ class ReposViewModel(
ReposContract.Event.BackButtonClicked -> {
setEffect { ReposContract.Effect.Navigation.Back }
}

ReposContract.Event.Retry -> getAll()
}
}
Expand Down Expand Up @@ -57,5 +60,4 @@ class ReposViewModel(
setState { copy(isError = true, isReposLoading = false) }
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ fun AppNavigation() {
) { backStackEntry ->
val userId = requireNotNull(backStackEntry.arguments?.getString(USER_ID)) { "User id is required as an argument" }
ReposScreenDestination(
UserId = userId,
userId = userId,
navController = navController
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import org.koin.androidx.compose.getViewModel
import org.koin.core.parameter.parametersOf

@Composable
fun ReposScreenDestination(UserId: String, navController: NavController) {
val viewModel = getViewModel<ReposViewModel> { parametersOf(UserId) }
fun ReposScreenDestination(userId: String, navController: NavController) {
val viewModel = getViewModel<ReposViewModel> { parametersOf(userId) }
ReposScreen(
state = viewModel.viewState.value,
effectFlow = viewModel.effect,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,18 @@ class GithubApiTest {
val expected = listOf(
User(
userId = "myofficework000",
avatarUrl = "https://avatars.githubusercontent.com/myofficework000",
avatarUrl = "https://avatars.githubusercontent.com/u/51234843?v=4",
htmlUrl = "https://github.com/myofficework000",
),
User(
userId = "defunkt",
avatarUrl = "https://avatars.githubusercontent.com/u/2?v=4",
htmlUrl = "https://github.com/defunkt",
userId = "AGLPHO3NIX",
avatarUrl = "https://avatars.githubusercontent.com/u/51234844?v=4",
htmlUrl = "https://github.com/AGLPHO3NIX",
),
User(
userId = "pjhyett",
avatarUrl = "https://avatars.githubusercontent.com/u/3?v=4",
htmlUrl = "https://github.com/pjhyett",
userId = "gulamyakkaspace",
avatarUrl = "https://avatars.githubusercontent.com/u/51234845?v=4",
htmlUrl = "https://github.com/gulamyakkaspace",
),
)

Expand All @@ -65,7 +65,7 @@ class GithubApiTest {

// Then
assertEquals(expected, actual)
assertEquals("/users", request.path)
assertEquals("/users?since=51234842", request.path)
}

@Test
Expand Down
62 changes: 62 additions & 0 deletions app/src/test/resources/api-response/user_since.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[
{
"login": "myofficework000",
"id": 51234843,
"node_id": "MDQ6VXNlcjUxMjM0ODQz",
"avatar_url": "https://avatars.githubusercontent.com/u/51234843?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/myofficework000",
"html_url": "https://github.com/myofficework000",
"followers_url": "https://api.github.com/users/myofficework000/followers",
"following_url": "https://api.github.com/users/myofficework000/following{/other_user}",
"gists_url": "https://api.github.com/users/myofficework000/gists{/gist_id}",
"starred_url": "https://api.github.com/users/myofficework000/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/myofficework000/subscriptions",
"organizations_url": "https://api.github.com/users/myofficework000/orgs",
"repos_url": "https://api.github.com/users/myofficework000/repos",
"events_url": "https://api.github.com/users/myofficework000/events{/privacy}",
"received_events_url": "https://api.github.com/users/myofficework000/received_events",
"type": "User",
"site_admin": false
},
{
"login": "AGLPHO3NIX",
"id": 51234844,
"node_id": "MDQ6VXNlcjUxMjM0ODQ0",
"avatar_url": "https://avatars.githubusercontent.com/u/51234844?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/AGLPHO3NIX",
"html_url": "https://github.com/AGLPHO3NIX",
"followers_url": "https://api.github.com/users/AGLPHO3NIX/followers",
"following_url": "https://api.github.com/users/AGLPHO3NIX/following{/other_user}",
"gists_url": "https://api.github.com/users/AGLPHO3NIX/gists{/gist_id}",
"starred_url": "https://api.github.com/users/AGLPHO3NIX/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/AGLPHO3NIX/subscriptions",
"organizations_url": "https://api.github.com/users/AGLPHO3NIX/orgs",
"repos_url": "https://api.github.com/users/AGLPHO3NIX/repos",
"events_url": "https://api.github.com/users/AGLPHO3NIX/events{/privacy}",
"received_events_url": "https://api.github.com/users/AGLPHO3NIX/received_events",
"type": "User",
"site_admin": false
},
{
"login": "gulamyakkaspace",
"id": 51234845,
"node_id": "MDQ6VXNlcjUxMjM0ODQ1",
"avatar_url": "https://avatars.githubusercontent.com/u/51234845?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/gulamyakkaspace",
"html_url": "https://github.com/gulamyakkaspace",
"followers_url": "https://api.github.com/users/gulamyakkaspace/followers",
"following_url": "https://api.github.com/users/gulamyakkaspace/following{/other_user}",
"gists_url": "https://api.github.com/users/gulamyakkaspace/gists{/gist_id}",
"starred_url": "https://api.github.com/users/gulamyakkaspace/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/gulamyakkaspace/subscriptions",
"organizations_url": "https://api.github.com/users/gulamyakkaspace/orgs",
"repos_url": "https://api.github.com/users/gulamyakkaspace/repos",
"events_url": "https://api.github.com/users/gulamyakkaspace/events{/privacy}",
"received_events_url": "https://api.github.com/users/gulamyakkaspace/received_events",
"type": "User",
"site_admin": false
}
]
90 changes: 45 additions & 45 deletions app/src/test/resources/api-response/users.json
Original file line number Diff line number Diff line change
@@ -1,61 +1,61 @@
[
{
"login": "mojombo",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://avatars.githubusercontent.com/u/1?v=4",
"login": "myofficework000",
"id": 51234843,
"node_id": "MDQ6VXNlcjUxMjM0ODQz",
"avatar_url": "https://avatars.githubusercontent.com/u/51234843?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mojombo",
"html_url": "https://github.com/mojombo",
"followers_url": "https://api.github.com/users/mojombo/followers",
"following_url": "https://api.github.com/users/mojombo/following{/other_user}",
"gists_url": "https://api.github.com/users/mojombo/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mojombo/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mojombo/subscriptions",
"organizations_url": "https://api.github.com/users/mojombo/orgs",
"repos_url": "https://api.github.com/users/mojombo/repos",
"events_url": "https://api.github.com/users/mojombo/events{/privacy}",
"received_events_url": "https://api.github.com/users/mojombo/received_events",
"url": "https://api.github.com/users/myofficework000",
"html_url": "https://github.com/myofficework000",
"followers_url": "https://api.github.com/users/myofficework000/followers",
"following_url": "https://api.github.com/users/myofficework000/following{/other_user}",
"gists_url": "https://api.github.com/users/myofficework000/gists{/gist_id}",
"starred_url": "https://api.github.com/users/myofficework000/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/myofficework000/subscriptions",
"organizations_url": "https://api.github.com/users/myofficework000/orgs",
"repos_url": "https://api.github.com/users/myofficework000/repos",
"events_url": "https://api.github.com/users/myofficework000/events{/privacy}",
"received_events_url": "https://api.github.com/users/myofficework000/received_events",
"type": "User",
"site_admin": false
},
{
"login": "defunkt",
"id": 2,
"node_id": "MDQ6VXNlcjI=",
"avatar_url": "https://avatars.githubusercontent.com/u/2?v=4",
"login": "AGLPHO3NIX",
"id": 51234844,
"node_id": "MDQ6VXNlcjUxMjM0ODQ0",
"avatar_url": "https://avatars.githubusercontent.com/u/51234844?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/defunkt",
"html_url": "https://github.com/defunkt",
"followers_url": "https://api.github.com/users/defunkt/followers",
"following_url": "https://api.github.com/users/defunkt/following{/other_user}",
"gists_url": "https://api.github.com/users/defunkt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/defunkt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/defunkt/subscriptions",
"organizations_url": "https://api.github.com/users/defunkt/orgs",
"repos_url": "https://api.github.com/users/defunkt/repos",
"events_url": "https://api.github.com/users/defunkt/events{/privacy}",
"received_events_url": "https://api.github.com/users/defunkt/received_events",
"url": "https://api.github.com/users/AGLPHO3NIX",
"html_url": "https://github.com/AGLPHO3NIX",
"followers_url": "https://api.github.com/users/AGLPHO3NIX/followers",
"following_url": "https://api.github.com/users/AGLPHO3NIX/following{/other_user}",
"gists_url": "https://api.github.com/users/AGLPHO3NIX/gists{/gist_id}",
"starred_url": "https://api.github.com/users/AGLPHO3NIX/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/AGLPHO3NIX/subscriptions",
"organizations_url": "https://api.github.com/users/AGLPHO3NIX/orgs",
"repos_url": "https://api.github.com/users/AGLPHO3NIX/repos",
"events_url": "https://api.github.com/users/AGLPHO3NIX/events{/privacy}",
"received_events_url": "https://api.github.com/users/AGLPHO3NIX/received_events",
"type": "User",
"site_admin": false
},
{
"login": "pjhyett",
"id": 3,
"node_id": "MDQ6VXNlcjM=",
"avatar_url": "https://avatars.githubusercontent.com/u/3?v=4",
"login": "gulamyakkaspace",
"id": 51234845,
"node_id": "MDQ6VXNlcjUxMjM0ODQ1",
"avatar_url": "https://avatars.githubusercontent.com/u/51234845?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/pjhyett",
"html_url": "https://github.com/pjhyett",
"followers_url": "https://api.github.com/users/pjhyett/followers",
"following_url": "https://api.github.com/users/pjhyett/following{/other_user}",
"gists_url": "https://api.github.com/users/pjhyett/gists{/gist_id}",
"starred_url": "https://api.github.com/users/pjhyett/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/pjhyett/subscriptions",
"organizations_url": "https://api.github.com/users/pjhyett/orgs",
"repos_url": "https://api.github.com/users/pjhyett/repos",
"events_url": "https://api.github.com/users/pjhyett/events{/privacy}",
"received_events_url": "https://api.github.com/users/pjhyett/received_events",
"url": "https://api.github.com/users/gulamyakkaspace",
"html_url": "https://github.com/gulamyakkaspace",
"followers_url": "https://api.github.com/users/gulamyakkaspace/followers",
"following_url": "https://api.github.com/users/gulamyakkaspace/following{/other_user}",
"gists_url": "https://api.github.com/users/gulamyakkaspace/gists{/gist_id}",
"starred_url": "https://api.github.com/users/gulamyakkaspace/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/gulamyakkaspace/subscriptions",
"organizations_url": "https://api.github.com/users/gulamyakkaspace/orgs",
"repos_url": "https://api.github.com/users/gulamyakkaspace/repos",
"events_url": "https://api.github.com/users/gulamyakkaspace/events{/privacy}",
"received_events_url": "https://api.github.com/users/gulamyakkaspace/received_events",
"type": "User",
"site_admin": false
}
Expand Down

0 comments on commit 1f006e4

Please sign in to comment.