From 927350423fe2e731c52a2a96fb0ea0192912b50b Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Wed, 10 Sep 2025 15:30:44 -0400 Subject: [PATCH] Migrate to AssertK --- gradle/libs.versions.toml | 2 +- plugin/build.gradle.kts | 2 +- .../plugin/ArgumentTypeResolverTest.kt | 3 ++- .../plugin/PublicResourceParserTest.kt | 3 ++- .../paraphrase/plugin/ResourceMergerTest.kt | 6 +++++- .../paraphrase/plugin/ResourceParserTest.kt | 3 ++- .../plugin/ResourceTokenizerTest.kt | 3 ++- .../paraphrase/plugin/ResourceWriterTest.kt | 3 ++- runtime/build.gradle.kts | 2 +- .../cash/paraphrase/FormattedResourceTest.kt | 6 +++++- tests/build.gradle.kts | 2 +- .../app/cash/paraphrase/tests/LocalesTest.kt | 3 ++- .../app/cash/paraphrase/tests/NamedTest.kt | 11 +++++----- .../app/cash/paraphrase/tests/NumberedTest.kt | 20 +++++++++---------- .../app/cash/paraphrase/tests/TypesTest.kt | 3 ++- 15 files changed, 43 insertions(+), 29 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cc87834d..723d4fe2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,7 @@ icu4j = "com.ibm.icu:icu4j:77.1" junit = "junit:junit:4.13.2" kotlinPoet = "com.squareup:kotlinpoet:2.2.0" testParameterInjector = "com.google.testparameterinjector:test-parameter-injector:1.18" -truth = "com.google.truth:truth:1.4.4" +assertk = "com.willowtreeapps.assertk:assertk:0.28.1" coreLibraryDesugaring = "com.android.tools:desugar_jdk_libs:2.1.5" [plugins] diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 45ebda13..cb4c2152 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -45,5 +45,5 @@ dependencies { implementation(libs.kotlinPoet) testImplementation(libs.junit) - testImplementation(libs.truth) + testImplementation(libs.assertk) } diff --git a/plugin/src/test/java/app/cash/paraphrase/plugin/ArgumentTypeResolverTest.kt b/plugin/src/test/java/app/cash/paraphrase/plugin/ArgumentTypeResolverTest.kt index 0905e640..c13f602d 100644 --- a/plugin/src/test/java/app/cash/paraphrase/plugin/ArgumentTypeResolverTest.kt +++ b/plugin/src/test/java/app/cash/paraphrase/plugin/ArgumentTypeResolverTest.kt @@ -32,7 +32,8 @@ import app.cash.paraphrase.plugin.TokenType.SelectOrdinal import app.cash.paraphrase.plugin.TokenType.SpellOut import app.cash.paraphrase.plugin.TokenType.Time import app.cash.paraphrase.plugin.TokenType.TimeWithOffset -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.isEqualTo import java.time.LocalDate import java.time.LocalDateTime import java.time.LocalTime diff --git a/plugin/src/test/java/app/cash/paraphrase/plugin/PublicResourceParserTest.kt b/plugin/src/test/java/app/cash/paraphrase/plugin/PublicResourceParserTest.kt index 5445cdbe..0c2b6e74 100644 --- a/plugin/src/test/java/app/cash/paraphrase/plugin/PublicResourceParserTest.kt +++ b/plugin/src/test/java/app/cash/paraphrase/plugin/PublicResourceParserTest.kt @@ -17,7 +17,8 @@ package app.cash.paraphrase.plugin import app.cash.paraphrase.plugin.model.PublicResource import app.cash.paraphrase.plugin.model.ResourceName -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.containsExactly import org.junit.Assert.assertThrows import org.junit.Test diff --git a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceMergerTest.kt b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceMergerTest.kt index 598bfe0a..9fcedd97 100644 --- a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceMergerTest.kt +++ b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceMergerTest.kt @@ -28,7 +28,11 @@ import app.cash.paraphrase.plugin.model.ResourceName import app.cash.paraphrase.plugin.model.TokenizedResource import app.cash.paraphrase.plugin.model.TokenizedResource.Token.NamedToken import app.cash.paraphrase.plugin.model.TokenizedResource.Token.NumberedToken -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.contains +import assertk.assertions.containsExactly +import assertk.assertions.isEmpty +import assertk.assertions.isEqualTo import java.time.LocalDateTime import org.junit.Test diff --git a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceParserTest.kt b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceParserTest.kt index 1ab7c041..5322df5c 100644 --- a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceParserTest.kt +++ b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceParserTest.kt @@ -17,7 +17,8 @@ package app.cash.paraphrase.plugin import app.cash.paraphrase.plugin.model.ResourceName import app.cash.paraphrase.plugin.model.StringResource -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.containsExactly import org.junit.Test class ResourceParserTest { diff --git a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceTokenizerTest.kt b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceTokenizerTest.kt index 22245db6..78b4e554 100644 --- a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceTokenizerTest.kt +++ b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceTokenizerTest.kt @@ -34,7 +34,8 @@ import app.cash.paraphrase.plugin.model.TokenizedResource import app.cash.paraphrase.plugin.model.TokenizedResource.Token import app.cash.paraphrase.plugin.model.TokenizedResource.Token.NamedToken import app.cash.paraphrase.plugin.model.TokenizedResource.Token.NumberedToken -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.isEqualTo import org.junit.Test class ResourceTokenizerTest { diff --git a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceWriterTest.kt b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceWriterTest.kt index d4f1bd64..108d123c 100644 --- a/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceWriterTest.kt +++ b/plugin/src/test/java/app/cash/paraphrase/plugin/ResourceWriterTest.kt @@ -18,7 +18,8 @@ package app.cash.paraphrase.plugin import app.cash.paraphrase.plugin.model.MergedResource import app.cash.paraphrase.plugin.model.MergedResource.Deprecation import app.cash.paraphrase.plugin.model.ResourceName -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.contains import com.squareup.kotlinpoet.AnnotationSpec import com.squareup.kotlinpoet.FileSpec import com.squareup.kotlinpoet.KModifier diff --git a/runtime/build.gradle.kts b/runtime/build.gradle.kts index c73d2403..f61273ca 100644 --- a/runtime/build.gradle.kts +++ b/runtime/build.gradle.kts @@ -20,5 +20,5 @@ dependencies { api(libs.androidAnnotation) testImplementation(libs.junit) - testImplementation(libs.truth) + testImplementation(libs.assertk) } diff --git a/runtime/src/test/java/app/cash/paraphrase/FormattedResourceTest.kt b/runtime/src/test/java/app/cash/paraphrase/FormattedResourceTest.kt index 3f0d8b53..2735db92 100644 --- a/runtime/src/test/java/app/cash/paraphrase/FormattedResourceTest.kt +++ b/runtime/src/test/java/app/cash/paraphrase/FormattedResourceTest.kt @@ -15,7 +15,11 @@ */ package app.cash.paraphrase -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.isEqualTo +import assertk.assertions.isFalse +import assertk.assertions.isNotEqualTo +import assertk.assertions.isTrue import org.junit.Test class FormattedResourceTest { diff --git a/tests/build.gradle.kts b/tests/build.gradle.kts index 743ca14f..166ec025 100644 --- a/tests/build.gradle.kts +++ b/tests/build.gradle.kts @@ -28,7 +28,7 @@ android { dependencies { implementation(libs.junit) - implementation(libs.truth) + implementation(libs.assertk) implementation(libs.androidTestRunner) implementation(libs.testParameterInjector) diff --git a/tests/src/main/kotlin/app/cash/paraphrase/tests/LocalesTest.kt b/tests/src/main/kotlin/app/cash/paraphrase/tests/LocalesTest.kt index fce850e4..c30b2687 100644 --- a/tests/src/main/kotlin/app/cash/paraphrase/tests/LocalesTest.kt +++ b/tests/src/main/kotlin/app/cash/paraphrase/tests/LocalesTest.kt @@ -21,7 +21,8 @@ import app.cash.paraphrase.FormattedResource import app.cash.paraphrase.getString import app.cash.paraphrase.tests.LocalesTest.TestLocale.en_IL_ca_hebrew import app.cash.paraphrase.tests.LocalesTest.TestLocale.en_US -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.isEqualTo import com.google.testing.junit.testparameterinjector.TestParameter import com.google.testing.junit.testparameterinjector.TestParameterInjector import java.time.LocalDate diff --git a/tests/src/main/kotlin/app/cash/paraphrase/tests/NamedTest.kt b/tests/src/main/kotlin/app/cash/paraphrase/tests/NamedTest.kt index 62b3850d..f934f7d9 100644 --- a/tests/src/main/kotlin/app/cash/paraphrase/tests/NamedTest.kt +++ b/tests/src/main/kotlin/app/cash/paraphrase/tests/NamedTest.kt @@ -17,7 +17,8 @@ package app.cash.paraphrase.tests import androidx.test.platform.app.InstrumentationRegistry import app.cash.paraphrase.getString -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.isEqualTo import org.junit.Test class NamedTest { @@ -25,8 +26,8 @@ class NamedTest { @Test fun numberedSparseOne() { val formattedResource = FormattedResources.named_one("Z") - assertThat(formattedResource.arguments as? Map) - .containsExactly("one", "Z") + assertThat(formattedResource.arguments as Map) + .isEqualTo(mapOf("one" to "Z")) val formatted = context.getString(formattedResource) assertThat(formatted).isEqualTo("A Z B") @@ -34,8 +35,8 @@ class NamedTest { @Test fun numberedSparseThree() { val formattedResource = FormattedResources.named_three("Z", "Y", "X") - assertThat(formattedResource.arguments as? Map) - .containsExactly("one", "Z", "two", "Y", "three", "X") + assertThat(formattedResource.arguments as Map) + .isEqualTo(mapOf("one" to "Z", "two" to "Y", "three" to "X")) val formatted = context.getString(formattedResource) assertThat(formatted).isEqualTo("A Z B Y C X D") diff --git a/tests/src/main/kotlin/app/cash/paraphrase/tests/NumberedTest.kt b/tests/src/main/kotlin/app/cash/paraphrase/tests/NumberedTest.kt index 634ab4b3..94dd6f50 100644 --- a/tests/src/main/kotlin/app/cash/paraphrase/tests/NumberedTest.kt +++ b/tests/src/main/kotlin/app/cash/paraphrase/tests/NumberedTest.kt @@ -17,7 +17,9 @@ package app.cash.paraphrase.tests import androidx.test.platform.app.InstrumentationRegistry import app.cash.paraphrase.getString -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.containsExactly +import assertk.assertions.isEqualTo import org.junit.Test class NumberedTest { @@ -25,10 +27,8 @@ class NumberedTest { @Test fun numberedContiguousOne() { val formattedResource = FormattedResources.numbered_contiguous_one("Z") - assertThat(formattedResource.arguments as? Array) - .asList() + assertThat(formattedResource.arguments as Array) .containsExactly("Z") - .inOrder() val formatted = context.getString(formattedResource) assertThat(formatted).isEqualTo("A Z B") @@ -36,10 +36,8 @@ class NumberedTest { @Test fun numberedContiguousThree() { val formattedResource = FormattedResources.numbered_contiguous_three("Z", "Y", "X") - assertThat(formattedResource.arguments as? Array) - .asList() + assertThat(formattedResource.arguments as Array) .containsExactly("Z", "Y", "X") - .inOrder() val formatted = context.getString(formattedResource) assertThat(formatted).isEqualTo("A Z B Y C X D") @@ -47,8 +45,8 @@ class NumberedTest { @Test fun numberedSparseOne() { val formattedResource = FormattedResources.numbered_sparse_one("Z") - assertThat(formattedResource.arguments as? Map) - .containsExactly("1", "Z") + assertThat(formattedResource.arguments as Map) + .isEqualTo(mapOf("1" to "Z")) val formatted = context.getString(formattedResource) assertThat(formatted).isEqualTo("A Z B") @@ -56,8 +54,8 @@ class NumberedTest { @Test fun numberedSparseThree() { val formattedResource = FormattedResources.numbered_sparse_three("Z", "Y", "X") - assertThat(formattedResource.arguments as? Map) - .containsExactly("1", "Z", "3", "Y", "5", "X") + assertThat(formattedResource.arguments as Map) + .isEqualTo(mapOf("1" to "Z", "3" to "Y", "5" to "X")) val formatted = context.getString(formattedResource) assertThat(formatted).isEqualTo("A Z B Y C X D") diff --git a/tests/src/main/kotlin/app/cash/paraphrase/tests/TypesTest.kt b/tests/src/main/kotlin/app/cash/paraphrase/tests/TypesTest.kt index c11c8f48..816f645c 100644 --- a/tests/src/main/kotlin/app/cash/paraphrase/tests/TypesTest.kt +++ b/tests/src/main/kotlin/app/cash/paraphrase/tests/TypesTest.kt @@ -18,7 +18,8 @@ package app.cash.paraphrase.tests import android.os.Build import androidx.test.platform.app.InstrumentationRegistry import app.cash.paraphrase.getString -import com.google.common.truth.Truth.assertThat +import assertk.assertThat +import assertk.assertions.isEqualTo import java.time.LocalDate import java.time.LocalTime import java.time.Month