Skip to content

Commit 06dac23

Browse files
authored
Merge pull request #420 from SimonMarquis/patch/kotlin-test
Migrate from JUnit assertions to Kotlin's test framework
2 parents 5286920 + 671a048 commit 06dac23

File tree

31 files changed

+101
-89
lines changed

31 files changed

+101
-89
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ dependencies {
9898
androidTestImplementation(project(":core:data-test"))
9999
androidTestImplementation(project(":core:network"))
100100
androidTestImplementation(libs.androidx.navigation.testing)
101+
androidTestImplementation(kotlin("test"))
101102
debugImplementation(libs.androidx.compose.ui.testManifest)
102103

103104
implementation(libs.accompanist.systemuicontroller)

app/src/androidTest/java/com/google/samples/apps/nowinandroid/ui/NiaAppStateTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ import androidx.navigation.compose.composable
3131
import androidx.navigation.createGraph
3232
import androidx.navigation.testing.TestNavHostController
3333
import com.google.samples.apps.nowinandroid.core.testing.util.TestNetworkMonitor
34+
import kotlin.test.assertEquals
35+
import kotlin.test.assertFalse
36+
import kotlin.test.assertTrue
3437
import kotlinx.coroutines.flow.collect
3538
import kotlinx.coroutines.launch
3639
import kotlinx.coroutines.test.UnconfinedTestDispatcher
3740
import kotlinx.coroutines.test.runTest
38-
import org.junit.Assert.assertEquals
39-
import org.junit.Assert.assertFalse
40-
import org.junit.Assert.assertTrue
4141
import org.junit.Rule
4242
import org.junit.Test
4343

build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.gradle.api.artifacts.VersionCatalogsExtension
2121
import org.gradle.kotlin.dsl.configure
2222
import org.gradle.kotlin.dsl.dependencies
2323
import org.gradle.kotlin.dsl.getByType
24+
import org.gradle.kotlin.dsl.kotlin
2425

2526
class AndroidFeatureConventionPlugin : Plugin<Project> {
2627
override fun apply(target: Project) {
@@ -46,7 +47,9 @@ class AndroidFeatureConventionPlugin : Plugin<Project> {
4647
add("implementation", project(":core:common"))
4748
add("implementation", project(":core:domain"))
4849

50+
add("testImplementation", kotlin("test"))
4951
add("testImplementation", project(":core:testing"))
52+
add("androidTestImplementation", kotlin("test"))
5053
add("androidTestImplementation", project(":core:testing"))
5154

5255
add("implementation", libs.findLibrary("coil.kt").get())

build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.gradle.api.artifacts.VersionCatalogsExtension
2626
import org.gradle.kotlin.dsl.configure
2727
import org.gradle.kotlin.dsl.dependencies
2828
import org.gradle.kotlin.dsl.getByType
29+
import org.gradle.kotlin.dsl.kotlin
2930

3031
class AndroidLibraryConventionPlugin : Plugin<Project> {
3132
override fun apply(target: Project) {
@@ -51,6 +52,10 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
5152
force("org.objenesis:objenesis:2.6")
5253
}
5354
}
55+
dependencies {
56+
add("androidTestImplementation", kotlin("test"))
57+
add("testImplementation", kotlin("test"))
58+
}
5459
}
5560
}
5661
}

core/common/src/test/java/com/google/samples/apps/nowinandroid/core/result/ResultKtTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
package com.google.samples.apps.nowinandroid.core.result
1818

1919
import app.cash.turbine.test
20+
import kotlin.test.assertEquals
2021
import kotlinx.coroutines.flow.flow
2122
import kotlinx.coroutines.test.runTest
22-
import org.junit.Assert.assertEquals
2323
import org.junit.Test
2424

2525
class ResultKtTest {

core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/model/NetworkEntityKtTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import com.google.samples.apps.nowinandroid.core.network.model.NetworkAuthor
2121
import com.google.samples.apps.nowinandroid.core.network.model.NetworkNewsResource
2222
import com.google.samples.apps.nowinandroid.core.network.model.NetworkNewsResourceExpanded
2323
import com.google.samples.apps.nowinandroid.core.network.model.NetworkTopic
24+
import kotlin.test.assertEquals
2425
import kotlinx.datetime.Instant
25-
import org.junit.Assert.assertEquals
2626
import org.junit.Test
2727

2828
class NetworkEntityKtTest {

core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepositoryTest.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ import com.google.samples.apps.nowinandroid.core.datastore.test.testUserPreferen
2929
import com.google.samples.apps.nowinandroid.core.model.data.Author
3030
import com.google.samples.apps.nowinandroid.core.network.model.NetworkAuthor
3131
import com.google.samples.apps.nowinandroid.core.network.model.NetworkChangeList
32+
import kotlin.test.assertEquals
3233
import kotlinx.coroutines.flow.first
3334
import kotlinx.coroutines.test.runTest
34-
import org.junit.Assert
3535
import org.junit.Before
3636
import org.junit.Rule
3737
import org.junit.Test
@@ -68,7 +68,7 @@ class OfflineFirstAuthorsRepositoryTest {
6868
@Test
6969
fun offlineFirstAuthorsRepository_Authors_stream_is_backed_by_Authors_dao() =
7070
runTest {
71-
Assert.assertEquals(
71+
assertEquals(
7272
authorDao.getAuthorEntitiesStream()
7373
.first()
7474
.map(AuthorEntity::asExternalModel),
@@ -88,13 +88,13 @@ class OfflineFirstAuthorsRepositoryTest {
8888
val dbAuthors = authorDao.getAuthorEntitiesStream()
8989
.first()
9090

91-
Assert.assertEquals(
91+
assertEquals(
9292
networkAuthors.map(AuthorEntity::id),
9393
dbAuthors.map(AuthorEntity::id)
9494
)
9595

9696
// After sync version should be updated
97-
Assert.assertEquals(
97+
assertEquals(
9898
network.latestChangeListVersion(CollectionType.Authors),
9999
synchronizer.getChangeListVersions().authorVersion
100100
)
@@ -125,13 +125,13 @@ class OfflineFirstAuthorsRepositoryTest {
125125
val db = authorDao.getAuthorEntitiesStream()
126126
.first()
127127

128-
Assert.assertEquals(
128+
assertEquals(
129129
network.map(AuthorEntity::id),
130130
db.map(AuthorEntity::id)
131131
)
132132

133133
// After sync version should be updated
134-
Assert.assertEquals(
134+
assertEquals(
135135
changeList.last().changeListVersion,
136136
synchronizer.getChangeListVersions().authorVersion
137137
)
@@ -166,13 +166,13 @@ class OfflineFirstAuthorsRepositoryTest {
166166
.map(AuthorEntity::asExternalModel)
167167

168168
// Assert that items marked deleted on the network have been deleted locally
169-
Assert.assertEquals(
169+
assertEquals(
170170
networkAuthors.map(Author::id) - deletedItems,
171171
dbAuthors.map(Author::id)
172172
)
173173

174174
// After sync version should be updated
175-
Assert.assertEquals(
175+
assertEquals(
176176
network.latestChangeListVersion(CollectionType.Authors),
177177
synchronizer.getChangeListVersions().authorVersion
178178
)

core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepositoryTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ import com.google.samples.apps.nowinandroid.core.datastore.test.testUserPreferen
3939
import com.google.samples.apps.nowinandroid.core.model.data.NewsResource
4040
import com.google.samples.apps.nowinandroid.core.network.model.NetworkChangeList
4141
import com.google.samples.apps.nowinandroid.core.network.model.NetworkNewsResource
42+
import kotlin.test.assertEquals
4243
import kotlinx.coroutines.flow.first
4344
import kotlinx.coroutines.test.runTest
44-
import org.junit.Assert.assertEquals
4545
import org.junit.Before
4646
import org.junit.Rule
4747
import org.junit.Test
@@ -112,7 +112,7 @@ class OfflineFirstNewsRepositoryTest {
112112
)
113113

114114
assertEquals(
115-
emptyList<NewsResource>(),
115+
emptyList(),
116116
subject.getNewsResourcesStream(
117117
filterTopicIds = nonPresentInterestsIds,
118118
)
@@ -136,7 +136,7 @@ class OfflineFirstNewsRepositoryTest {
136136
)
137137

138138
assertEquals(
139-
emptyList<NewsResource>(),
139+
emptyList(),
140140
subject.getNewsResourcesStream(
141141
filterAuthorIds = nonPresentInterestsIds
142142
)

core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepositoryTest.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ import com.google.samples.apps.nowinandroid.core.datastore.NiaPreferencesDataSou
2828
import com.google.samples.apps.nowinandroid.core.datastore.test.testUserPreferencesDataStore
2929
import com.google.samples.apps.nowinandroid.core.model.data.Topic
3030
import com.google.samples.apps.nowinandroid.core.network.model.NetworkTopic
31+
import kotlin.test.assertEquals
3132
import kotlinx.coroutines.flow.first
3233
import kotlinx.coroutines.test.runTest
33-
import org.junit.Assert
3434
import org.junit.Before
3535
import org.junit.Rule
3636
import org.junit.Test
@@ -69,7 +69,7 @@ class OfflineFirstTopicsRepositoryTest {
6969
@Test
7070
fun offlineFirstTopicsRepository_topics_stream_is_backed_by_topics_dao() =
7171
runTest {
72-
Assert.assertEquals(
72+
assertEquals(
7373
topicDao.getTopicEntitiesStream()
7474
.first()
7575
.map(TopicEntity::asExternalModel),
@@ -89,13 +89,13 @@ class OfflineFirstTopicsRepositoryTest {
8989
val dbTopics = topicDao.getTopicEntitiesStream()
9090
.first()
9191

92-
Assert.assertEquals(
92+
assertEquals(
9393
networkTopics.map(TopicEntity::id),
9494
dbTopics.map(TopicEntity::id)
9595
)
9696

9797
// After sync version should be updated
98-
Assert.assertEquals(
98+
assertEquals(
9999
network.latestChangeListVersion(CollectionType.Topics),
100100
synchronizer.getChangeListVersions().topicVersion
101101
)
@@ -119,13 +119,13 @@ class OfflineFirstTopicsRepositoryTest {
119119
val dbTopics = topicDao.getTopicEntitiesStream()
120120
.first()
121121

122-
Assert.assertEquals(
122+
assertEquals(
123123
networkTopics.map(TopicEntity::id),
124124
dbTopics.map(TopicEntity::id)
125125
)
126126

127127
// After sync version should be updated
128-
Assert.assertEquals(
128+
assertEquals(
129129
network.latestChangeListVersion(CollectionType.Topics),
130130
synchronizer.getChangeListVersions().topicVersion
131131
)
@@ -160,13 +160,13 @@ class OfflineFirstTopicsRepositoryTest {
160160
.map(TopicEntity::asExternalModel)
161161

162162
// Assert that items marked deleted on the network have been deleted locally
163-
Assert.assertEquals(
163+
assertEquals(
164164
networkTopics.map(Topic::id) - deletedItems,
165165
dbTopics.map(Topic::id)
166166
)
167167

168168
// After sync version should be updated
169-
Assert.assertEquals(
169+
assertEquals(
170170
network.latestChangeListVersion(CollectionType.Topics),
171171
synchronizer.getChangeListVersions().topicVersion
172172
)

core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ import com.google.samples.apps.nowinandroid.core.datastore.test.testUserPreferen
2121
import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig
2222
import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand
2323
import com.google.samples.apps.nowinandroid.core.model.data.UserData
24+
import kotlin.test.assertEquals
25+
import kotlin.test.assertFalse
26+
import kotlin.test.assertTrue
2427
import kotlinx.coroutines.flow.first
2528
import kotlinx.coroutines.flow.map
2629
import kotlinx.coroutines.test.runTest
27-
import org.junit.Assert.assertEquals
2830
import org.junit.Before
2931
import org.junit.Rule
3032
import org.junit.Test
@@ -194,9 +196,9 @@ class OfflineFirstUserDataRepositoryTest {
194196
runTest {
195197
subject.setFollowedTopicIds(setOf("1"))
196198
subject.setShouldHideOnboarding(true)
197-
assertEquals(true, subject.userDataStream.first().shouldHideOnboarding)
199+
assertTrue(subject.userDataStream.first().shouldHideOnboarding)
198200

199201
subject.setFollowedTopicIds(emptySet())
200-
assertEquals(false, subject.userDataStream.first().shouldHideOnboarding)
202+
assertFalse(subject.userDataStream.first().shouldHideOnboarding)
201203
}
202204
}

0 commit comments

Comments
 (0)