Skip to content

Commit 2683053

Browse files
committed
NetworkRepository -> GithubRepository 네이밍 변경
1 parent 3445cd1 commit 2683053

File tree

12 files changed

+56
-59
lines changed

12 files changed

+56
-59
lines changed

app/src/main/java/camp/nextstep/edu/github/GithubViewModel.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ package camp.nextstep.edu.github
77

88
import androidx.lifecycle.ViewModel
99
import androidx.lifecycle.viewModelScope
10-
import camp.nextstep.edu.github.domain.model.GithubRepository
11-
import camp.nextstep.edu.github.domain.repository.NetworkRepository
10+
import camp.nextstep.edu.github.domain.model.RepositoryItem
11+
import camp.nextstep.edu.github.domain.repository.GithubRepository
1212
import dagger.hilt.android.lifecycle.HiltViewModel
1313
import kotlinx.coroutines.channels.Channel
14-
import kotlinx.coroutines.delay
1514
import kotlinx.coroutines.flow.MutableStateFlow
1615
import kotlinx.coroutines.flow.StateFlow
1716
import kotlinx.coroutines.flow.asStateFlow
@@ -21,7 +20,7 @@ import javax.inject.Inject
2120

2221
@HiltViewModel
2322
class GithubViewModel @Inject constructor(
24-
private val networkRepository: NetworkRepository
23+
private val githubRepository: GithubRepository
2524
) : ViewModel() {
2625

2726
private val _uiState = MutableStateFlow<UiState>(UiState.Loading)
@@ -36,7 +35,7 @@ class GithubViewModel @Inject constructor(
3635

3736
private fun getGithubRepositories() {
3837
viewModelScope.launch {
39-
networkRepository.getRepositories()
38+
githubRepository.getRepositories()
4039
.onSuccess { result ->
4140
_uiState.value = UiState.Success(result)
4241
}.onFailure {
@@ -49,7 +48,7 @@ class GithubViewModel @Inject constructor(
4948

5049
sealed interface UiState {
5150
object Loading : UiState
52-
data class Success(val repositories: List<GithubRepository>) : UiState
51+
data class Success(val repositories: List<RepositoryItem>) : UiState
5352
data class Error(val message: String) : UiState
5453
}
5554

app/src/main/java/camp/nextstep/edu/github/ui/HomeScreen.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ import androidx.compose.runtime.Composable
1919
import androidx.compose.ui.Modifier
2020
import androidx.compose.ui.text.style.TextOverflow
2121
import androidx.compose.ui.unit.dp
22-
import camp.nextstep.edu.github.domain.model.GithubRepository
22+
import camp.nextstep.edu.github.domain.model.RepositoryItem
2323

2424
@Composable
2525
fun HomeScreen(
2626
modifier: Modifier = Modifier,
27-
repositories: List<GithubRepository>,
27+
repositories: List<RepositoryItem>,
2828
) {
2929
LazyColumn(
3030
modifier = modifier,
@@ -35,7 +35,7 @@ fun HomeScreen(
3535
}
3636

3737
fun LazyListScope.repositoryList(
38-
repositories: List<GithubRepository>
38+
repositories: List<RepositoryItem>
3939
) {
4040
itemsIndexed(repositories) { index, repository ->
4141
RepositoryItem(repository = repository,)
@@ -47,7 +47,7 @@ fun LazyListScope.repositoryList(
4747

4848
@Composable
4949
fun RepositoryItem(
50-
repository: GithubRepository
50+
repository: RepositoryItem
5151
) {
5252
Column(
5353
modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp),

app/src/test/java/camp/nextstep/edu/github/GithubViewModelTest.kt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
package camp.nextstep.edu.github
77

88
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
9-
import camp.nextstep.edu.github.domain.model.GithubRepository
10-
import camp.nextstep.edu.github.domain.repository.NetworkRepository
9+
import camp.nextstep.edu.github.domain.model.RepositoryItem
10+
import camp.nextstep.edu.github.domain.repository.GithubRepository
1111
import com.google.common.truth.Truth.assertThat
1212
import io.mockk.coEvery
1313
import io.mockk.coVerify
@@ -26,29 +26,29 @@ class GithubViewModelTest {
2626
val instantExecutorRule = InstantTaskExecutorRule()
2727

2828
private lateinit var viewModel: GithubViewModel
29-
private val networkRepository: NetworkRepository = mockk(relaxed = true)
29+
private val githubRepository: GithubRepository = mockk(relaxed = true)
3030

3131
@Test
3232
fun `GithubViewModel이 생성되면, 정상적으로 통신할 경우 GithubRepository를 가져온다`() {
3333
// given
34-
coEvery { networkRepository.getRepositories() } returns Result.success(
34+
coEvery { githubRepository.getRepositories() } returns Result.success(
3535
listOf(
36-
GithubRepository(
36+
RepositoryItem(
3737
fullName = "KwonDae",
3838
description = "KwonDae's repository",
3939
)
4040
)
4141
)
4242

4343
// when
44-
viewModel = GithubViewModel(networkRepository)
44+
viewModel = GithubViewModel(githubRepository)
4545

4646
// then
47-
coVerify { networkRepository.getRepositories() }
47+
coVerify { githubRepository.getRepositories() }
4848
assertThat(viewModel.uiState.value).isEqualTo(
4949
UiState.Success(
5050
listOf(
51-
GithubRepository(
51+
RepositoryItem(
5252
fullName = "KwonDae",
5353
description = "KwonDae's repository",
5454
)
@@ -60,13 +60,13 @@ class GithubViewModelTest {
6060
@Test
6161
fun `GithubViewModel이 생성되고, 정상적으로 통신했으나 빈값인 경우, 빈화면이 노출되어야 한다`() {
6262
// given
63-
coEvery { networkRepository.getRepositories() } returns Result.success(emptyList())
63+
coEvery { githubRepository.getRepositories() } returns Result.success(emptyList())
6464

6565
// when
66-
viewModel = GithubViewModel(networkRepository)
66+
viewModel = GithubViewModel(githubRepository)
6767

6868
// then
69-
coVerify { networkRepository.getRepositories() }
69+
coVerify { githubRepository.getRepositories() }
7070
assertThat(viewModel.uiState.value).isEqualTo(
7171
UiState.Success(emptyList())
7272
)
@@ -76,15 +76,15 @@ class GithubViewModelTest {
7676
fun `GithubViewModel이 생성되고, 통신이 실패하면, 에러메시지를 가져온다`() {
7777
// given
7878
val errorMessage = "통신에 실패하였습니다."
79-
coEvery { networkRepository.getRepositories() } returns Result.failure(
79+
coEvery { githubRepository.getRepositories() } returns Result.failure(
8080
Throwable(errorMessage)
8181
)
8282

8383
// when
84-
viewModel = GithubViewModel(networkRepository)
84+
viewModel = GithubViewModel(githubRepository)
8585

8686
// then
87-
coVerify { networkRepository.getRepositories() }
87+
coVerify { githubRepository.getRepositories() }
8888
assertThat(viewModel.uiState.value).isEqualTo(
8989
UiState.Error(errorMessage)
9090
)

data/src/main/java/camp/nextstep/edu/github/data/Mapper.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
package camp.nextstep.edu.github.data
77

8-
import camp.nextstep.edu.github.data.response.GithubRepositoryResponse
9-
import camp.nextstep.edu.github.domain.model.GithubRepository
8+
import camp.nextstep.edu.github.data.response.RepositoryItemResponse
9+
import camp.nextstep.edu.github.domain.model.RepositoryItem
1010

11-
internal fun List<GithubRepositoryResponse>.toDomainModels(): List<GithubRepository> {
11+
internal fun List<RepositoryItemResponse>.toDomainModels(): List<RepositoryItem> {
1212
return this.map { it.toDomainModel() }
1313
}
1414

15-
internal fun GithubRepositoryResponse.toDomainModel(): GithubRepository {
16-
return GithubRepository(
15+
internal fun RepositoryItemResponse.toDomainModel(): RepositoryItem {
16+
return RepositoryItem(
1717
fullName = fullName,
1818
description = description
1919
)

data/src/main/java/camp/nextstep/edu/github/data/di/DataModule.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
package camp.nextstep.edu.github.data.di
77

8-
import camp.nextstep.edu.github.data.network.DefaultNetworkRepository
9-
import camp.nextstep.edu.github.domain.repository.NetworkRepository
8+
import camp.nextstep.edu.github.data.network.DefaultGithubRepository
9+
import camp.nextstep.edu.github.domain.repository.GithubRepository
1010
import dagger.Binds
1111
import dagger.Module
1212
import dagger.hilt.InstallIn
@@ -20,6 +20,6 @@ internal interface DataModule {
2020
@Singleton
2121
@Binds
2222
fun bindNetworkRepository(
23-
networkRepositoryImpl: DefaultNetworkRepository
24-
): NetworkRepository
23+
networkRepositoryImpl: DefaultGithubRepository
24+
): GithubRepository
2525
}

data/src/main/java/camp/nextstep/edu/github/data/network/DefaultNetworkRepository.kt renamed to data/src/main/java/camp/nextstep/edu/github/data/network/DefaultGithubRepository.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ package camp.nextstep.edu.github.data.network
77

88
import camp.nextstep.edu.github.data.retrofit.GithubService
99
import camp.nextstep.edu.github.data.toDomainModels
10-
import camp.nextstep.edu.github.domain.model.GithubRepository
11-
import camp.nextstep.edu.github.domain.repository.NetworkRepository
10+
import camp.nextstep.edu.github.domain.model.RepositoryItem
11+
import camp.nextstep.edu.github.domain.repository.GithubRepository
1212
import javax.inject.Inject
1313

14-
internal class DefaultNetworkRepository @Inject constructor(
14+
internal class DefaultGithubRepository @Inject constructor(
1515
private val githubService: GithubService
16-
) : NetworkRepository {
17-
override suspend fun getRepositories(): Result<List<GithubRepository>> =
16+
) : GithubRepository {
17+
override suspend fun getRepositories(): Result<List<RepositoryItem>> =
1818
runCatching { githubService.getRepositories().toDomainModels() }
1919

2020
}

data/src/main/java/camp/nextstep/edu/github/data/response/GithubRepositoryResponse.kt renamed to data/src/main/java/camp/nextstep/edu/github/data/response/RepositoryItemResponse.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package camp.nextstep.edu.github.data.response
22

33
import com.squareup.moshi.Json
44

5-
internal data class GithubRepositoryResponse(
5+
internal data class RepositoryItemResponse(
66
@Json(name = "full_name")
77
val fullName: String,
88
@Json(name = "description")

data/src/main/java/camp/nextstep/edu/github/data/retrofit/GithubService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
package camp.nextstep.edu.github.data.retrofit
77

8-
import camp.nextstep.edu.github.data.response.GithubRepositoryResponse
8+
import camp.nextstep.edu.github.data.response.RepositoryItemResponse
99
import retrofit2.http.GET
1010

1111

1212
internal interface GithubService {
1313
@GET("repositories")
14-
suspend fun getRepositories(): List<GithubRepositoryResponse>
14+
suspend fun getRepositories(): List<RepositoryItemResponse>
1515
}

data/src/test/kotlin/camp/nextstep/edu/github/data/GithubServiceTest.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
package camp.nextstep.edu.github.data
77

8-
import camp.nextstep.edu.github.data.di.NetworkProvider
9-
import camp.nextstep.edu.github.data.response.GithubRepositoryResponse
8+
import camp.nextstep.edu.github.data.response.RepositoryItemResponse
109
import camp.nextstep.edu.github.data.retrofit.GithubNetwork
1110
import camp.nextstep.edu.github.data.retrofit.GithubService
1211
import com.google.common.truth.Truth.assertThat
@@ -15,7 +14,6 @@ import okhttp3.mockwebserver.MockResponse
1514
import okhttp3.mockwebserver.MockWebServer
1615
import org.junit.Before
1716
import org.junit.Test
18-
import retrofit2.create
1917
import java.io.File
2018

2119

@@ -42,7 +40,7 @@ class GithubServiceTest {
4240
val actual = githubService.getRepositories()
4341

4442
// then
45-
val expected = GithubRepositoryResponse(
43+
val expected = RepositoryItemResponse(
4644
fullName = "mojombo/grit",
4745
description = "**Grit is no longer maintained. Check out libgit2/rugged.** Grit gives you object oriented read/write access to Git repositories via Ruby."
4846
)
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package camp.nextstep.edu.github.domain.model
22

3-
data class GithubRepository(
3+
data class RepositoryItem(
44
val fullName: String,
55
val description: String?
66
)

0 commit comments

Comments
 (0)