Skip to content

Commit f3036a6

Browse files
committed
test: Use AssertJ
1 parent d019e9e commit f3036a6

12 files changed

Lines changed: 452 additions & 481 deletions

buildSrc/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ testing {
104104
@Suppress("UnstableApiUsage")
105105
suites {
106106
val test by getting(JvmTestSuite::class) {
107+
dependencies {
108+
implementation(libs.assertj.core)
109+
}
107110
targets.configureEach {
108111
testTask.configure {
109112
enabled = providers.systemProperty("runBuildSrcTests").isPresent or providers.systemProperty("idea.active").isPresent

buildSrc/src/test/kotlin/datadog/gradle/plugin/muzzle/MuzzleDirectiveTest.kt

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package datadog.gradle.plugin.muzzle
22

33
import org.eclipse.aether.repository.RemoteRepository
4-
import org.junit.jupiter.api.Assertions.assertEquals
5-
import org.junit.jupiter.api.Assertions.assertNull
6-
import org.junit.jupiter.api.Assertions.assertTrue
74
import org.junit.jupiter.api.Test
85
import org.junit.jupiter.params.ParameterizedTest
96
import org.junit.jupiter.params.provider.CsvSource
7+
import org.assertj.core.api.Assertions.assertThat
108

119
class MuzzleDirectiveTest {
1210

@@ -20,25 +18,25 @@ class MuzzleDirectiveTest {
2018
])
2119
fun `nameSlug replaces non-alphanumeric characters with dashes`(input: String, expected: String) {
2220
val directive = MuzzleDirective().apply { name = input }
23-
assertEquals(expected.trim(), directive.nameSlug)
21+
assertThat(directive.nameSlug).isEqualTo(expected.trim())
2422
}
2523

2624
@Test
2725
fun `nameSlug returns empty string for empty name`() {
2826
val directive = MuzzleDirective().apply { name = "" }
29-
assertEquals("", directive.nameSlug)
27+
assertThat(directive.nameSlug).isEmpty()
3028
}
3129

3230
@Test
3331
fun `nameSlug trims leading and trailing whitespace before replacing`() {
3432
val directive = MuzzleDirective().apply { name = " spaces " }
35-
assertEquals("spaces", directive.nameSlug)
33+
assertThat(directive.nameSlug).isEqualTo("spaces")
3634
}
3735

3836
@Test
3937
fun `nameSlug returns empty string when name is null`() {
4038
val directive = MuzzleDirective() // name defaults to null
41-
assertEquals("", directive.nameSlug)
39+
assertThat(directive.nameSlug).isEmpty()
4240
}
4341

4442
@Test
@@ -49,7 +47,7 @@ class MuzzleDirectiveTest {
4947
val repos = directive.getRepositories(defaults)
5048

5149
// Same reference — no copy is made when additionalRepositories is empty
52-
assertTrue(repos === defaults)
50+
assertThat(repos).isSameAs(defaults)
5351
}
5452

5553
@Test
@@ -65,28 +63,25 @@ class MuzzleDirectiveTest {
6563

6664
val repos = directive.getRepositories(defaults)
6765

68-
assertEquals(3, repos.size)
69-
assertEquals("central", repos[0].id)
70-
assertEquals("myrepo", repos[1].id)
71-
assertEquals("otherrepo", repos[2].id)
66+
assertThat(repos.map { it.id }).containsExactly("central", "myrepo", "otherrepo")
7267
}
7368

7469
@Test
7570
fun `coreJdk without version sets isCoreJdk true and javaVersion null`() {
7671
val directive = MuzzleDirective()
7772
directive.coreJdk()
7873

79-
assertTrue(directive.isCoreJdk)
80-
assertNull(directive.javaVersion)
74+
assertThat(directive.isCoreJdk).isTrue()
75+
assertThat(directive.javaVersion).isNull()
8176
}
8277

8378
@Test
8479
fun `coreJdk with version sets isCoreJdk true and javaVersion`() {
8580
val directive = MuzzleDirective()
8681
directive.coreJdk("17")
8782

88-
assertTrue(directive.isCoreJdk)
89-
assertEquals("17", directive.javaVersion)
83+
assertThat(directive.isCoreJdk).isTrue()
84+
assertThat(directive.javaVersion).isEqualTo("17")
9085
}
9186

9287
@ParameterizedTest(name = "[{index}] coreJdk={0}, assertPass={1} → {2}")
@@ -102,7 +97,7 @@ class MuzzleDirectiveTest {
10297
if (isCoreJdk) coreJdk()
10398
this.assertPass = assertPass
10499
}
105-
assertEquals(expected, directive.toString())
100+
assertThat(directive.toString()).isEqualTo(expected)
106101
}
107102

108103
@ParameterizedTest(name = "[{index}] assertPass={0} → prefix ''{1}''")
@@ -124,7 +119,7 @@ class MuzzleDirectiveTest {
124119
this.assertPass = assertPass
125120
}
126121

127-
assertEquals("$prefix com.example:mylib:[1.0,2.0)", directive.toString())
122+
assertThat(directive.toString()).isEqualTo("$prefix com.example:mylib:[1.0,2.0)")
128123
}
129124

130125
@Test
@@ -134,9 +129,11 @@ class MuzzleDirectiveTest {
134129
directive.extraDependency("com.example:dep2:2.0")
135130
directive.extraDependency("com.example:dep3:3.0")
136131

137-
assertEquals(
138-
listOf("com.example:dep1:1.0", "com.example:dep2:2.0", "com.example:dep3:3.0"),
139-
directive.additionalDependencies)
132+
assertThat(directive.additionalDependencies).containsExactly(
133+
"com.example:dep1:1.0",
134+
"com.example:dep2:2.0",
135+
"com.example:dep3:3.0"
136+
)
140137
}
141138

142139
@Test
@@ -145,8 +142,10 @@ class MuzzleDirectiveTest {
145142
directive.excludeDependency("com.example:excluded1")
146143
directive.excludeDependency("com.example:excluded2")
147144

148-
assertEquals(
149-
listOf("com.example:excluded1", "com.example:excluded2"), directive.excludedDependencies)
145+
assertThat(directive.excludedDependencies).containsExactly(
146+
"com.example:excluded1",
147+
"com.example:excluded2"
148+
)
150149
}
151150

152151
@Test
@@ -155,8 +154,9 @@ class MuzzleDirectiveTest {
155154
directive.extraRepository("repo1", "https://repo1.example.com")
156155
directive.extraRepository("repo2", "https://repo2.example.com", "p2")
157156

158-
assertEquals(2, directive.additionalRepositories.size)
159-
assertEquals(Triple("repo1", "default", "https://repo1.example.com"), directive.additionalRepositories[0])
160-
assertEquals(Triple("repo2", "p2", "https://repo2.example.com"), directive.additionalRepositories[1])
157+
assertThat(directive.additionalRepositories).containsExactly(
158+
Triple("repo1", "default", "https://repo1.example.com"),
159+
Triple("repo2", "p2", "https://repo2.example.com"),
160+
)
161161
}
162162
}

buildSrc/src/test/kotlin/datadog/gradle/plugin/muzzle/MuzzleMavenRepoUtilsTest.kt

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@ import org.eclipse.aether.resolution.VersionRangeRequest
77
import org.eclipse.aether.resolution.VersionRangeResult
88
import org.eclipse.aether.util.version.GenericVersionScheme
99
import org.gradle.api.GradleException
10-
import org.junit.jupiter.api.Assertions.assertEquals
11-
import org.junit.jupiter.api.Assertions.assertFalse
12-
import org.junit.jupiter.api.Assertions.assertTrue
1310
import org.junit.jupiter.api.Test
14-
import org.junit.jupiter.api.assertThrows
1511
import org.junit.jupiter.api.io.TempDir
1612
import org.junit.jupiter.params.ParameterizedTest
1713
import org.junit.jupiter.params.provider.CsvSource
1814
import java.io.File
15+
import org.assertj.core.api.Assertions.assertThat
16+
import org.assertj.core.api.Assertions.assertThatThrownBy
1917

2018
class MuzzleMavenRepoUtilsTest {
2119

@@ -38,7 +36,7 @@ class MuzzleMavenRepoUtilsTest {
3836
val result = MuzzleMavenRepoUtils.resolveVersionRange(directive, system, newSession(), listOf(repo))
3937

4038
val resolvedVersions = result.versions.map { it.toString() }
41-
assertEquals(listOf("1.0.0", "2.0.0", "3.0.0"), resolvedVersions)
39+
assertThat(resolvedVersions).containsExactly("1.0.0", "2.0.0", "3.0.0")
4240
}
4341

4442
@Test
@@ -53,7 +51,7 @@ class MuzzleMavenRepoUtilsTest {
5351
val result = MuzzleMavenRepoUtils.resolveVersionRange(directive, system, newSession(), listOf(repo))
5452

5553
val resolvedVersions = result.versions.map { it.toString() }
56-
assertEquals(listOf("2.0.0", "3.0.0"), resolvedVersions)
54+
assertThat(resolvedVersions).containsExactly("2.0.0", "3.0.0")
5755
}
5856

5957
@Test
@@ -65,9 +63,9 @@ class MuzzleMavenRepoUtilsTest {
6563
versions = "[1.0,)"
6664
}
6765

68-
assertThrows<IllegalStateException> {
66+
assertThatThrownBy {
6967
MuzzleMavenRepoUtils.resolveVersionRange(directive, system, newSession(), listOf(emptyRepo))
70-
}
68+
}.isInstanceOf(IllegalStateException::class.java)
7169
}
7270

7371
@Test
@@ -85,9 +83,9 @@ class MuzzleMavenRepoUtilsTest {
8583
val result = MuzzleMavenRepoUtils.resolveVersionRange(directive, system, newSession(), listOf(repoA))
8684

8785
val resolvedVersions = result.versions.map { it.toString() }
88-
assertTrue(resolvedVersions.containsAll(listOf("1.0.0", "2.0.0", "3.0.0"))) {
89-
"Expected all 3 versions from both repos, got: $resolvedVersions"
90-
}
86+
assertThat(resolvedVersions)
87+
.withFailMessage("Expected all 3 versions from both repos, got: $resolvedVersions")
88+
.containsAll(listOf("1.0.0", "2.0.0", "3.0.0"))
9189
}
9290

9391
@Test
@@ -107,22 +105,19 @@ class MuzzleMavenRepoUtilsTest {
107105

108106
val resultVersions = result.map { it.versions }.toSet()
109107
// Versions inside [2.0, 4.0) are 2.0.0 and 3.0.0 — they should NOT appear
110-
assertFalse(resultVersions.contains("2.0.0")) { "2.0.0 is inside range and must not appear in inverse" }
111-
assertFalse(resultVersions.contains("3.0.0")) { "3.0.0 is inside range and must not appear in inverse" }
108+
assertThat(resultVersions).doesNotContain("2.0.0", "3.0.0")
112109
// Versions outside range: 1.0.0, 4.0.0, 5.0.0
113-
assertTrue(resultVersions.containsAll(listOf("1.0.0", "4.0.0", "5.0.0"))) {
114-
"Expected versions outside [2.0,4.0), got: $resultVersions"
110+
assertThat(resultVersions).contains("1.0.0", "4.0.0", "5.0.0")
111+
112+
// assertPass must be inverted, and directive properties must be preserved
113+
assertThat(result).allSatisfy { directive ->
114+
assertThat(directive.assertPass).isFalse()
115+
assertThat(directive.name).isEqualTo("mytest")
116+
assertThat(directive.group).isEqualTo("com.example")
117+
assertThat(directive.module).isEqualTo("mylib")
118+
assertThat(directive.excludedDependencies).containsExactly("com.other:dep")
119+
assertThat(directive.includeSnapshots).isFalse()
115120
}
116-
117-
// assertPass must be inverted
118-
assertTrue(result.all { !it.assertPass }) { "All inverse directives must have assertPass=false" }
119-
120-
// Directive properties must be preserved
121-
assertTrue(result.all { it.name == "mytest" }) { "name must be preserved" }
122-
assertTrue(result.all { it.group == "com.example" }) { "group must be preserved" }
123-
assertTrue(result.all { it.module == "mylib" }) { "module must be preserved" }
124-
assertTrue(result.all { it.excludedDependencies == listOf("com.other:dep") }) { "excludedDependencies must be preserved" }
125-
assertTrue(result.all { !it.includeSnapshots }) { "includeSnapshots must be preserved" }
126121
}
127122

128123
@ParameterizedTest(name = "[{index}] highest({0}, {1}) == {2}")
@@ -135,7 +130,7 @@ class MuzzleMavenRepoUtilsTest {
135130
])
136131
fun `highest returns the greater version`(a: String, b: String, expected: String) {
137132
val result = MuzzleMavenRepoUtils.highest(version(a), version(b))
138-
assertEquals(version(expected), result)
133+
assertThat(result).isEqualTo(version(expected))
139134
}
140135

141136
@ParameterizedTest(name = "[{index}] lowest({0}, {1}) == {2}")
@@ -148,7 +143,7 @@ class MuzzleMavenRepoUtilsTest {
148143
])
149144
fun `lowest returns the lesser version`(a: String, b: String, expected: String) {
150145
val result = MuzzleMavenRepoUtils.lowest(version(a), version(b))
151-
assertEquals(version(expected), result)
146+
assertThat(result).isEqualTo(version(expected))
152147
}
153148

154149
@Test
@@ -162,9 +157,9 @@ class MuzzleMavenRepoUtilsTest {
162157
// All versions are pre-release; none survive filterAndLimitVersions
163158
val rangeResult = createVersionRangeResult("1.0.0-SNAPSHOT", "2.0.0-RC1")
164159

165-
assertThrows<GradleException> {
160+
assertThatThrownBy {
166161
MuzzleMavenRepoUtils.muzzleDirectiveToArtifacts(directive, rangeResult)
167-
}
162+
}.isInstanceOf(GradleException::class.java)
168163
}
169164

170165
@Test
@@ -181,12 +176,14 @@ class MuzzleMavenRepoUtilsTest {
181176

182177
val artifacts = MuzzleMavenRepoUtils.muzzleDirectiveToArtifacts(directive, rangeResult)
183178

184-
assertEquals(3, artifacts.size)
185-
assertTrue(artifacts.all { it.groupId == "com.example" }) { "All artifacts must have groupId 'com.example'" }
186-
assertTrue(artifacts.all { it.artifactId == "mylib" }) { "All artifacts must have artifactId 'mylib'" }
187-
assertTrue(artifacts.all { it.extension == "jar" }) { "All artifacts must have extension 'jar'" }
188-
assertTrue(artifacts.all { it.classifier == "" }) { "All artifacts must have empty classifier" }
189-
assertEquals(setOf("1.0.0", "2.0.0", "3.0.0"), artifacts.map { it.version }.toSet())
179+
assertThat(artifacts).hasSize(3)
180+
assertThat(artifacts).allSatisfy { artifact ->
181+
assertThat(artifact.groupId).isEqualTo("com.example")
182+
assertThat(artifact.artifactId).isEqualTo("mylib")
183+
assertThat(artifact.extension).isEqualTo("jar")
184+
assertThat(artifact.classifier).isEmpty()
185+
}
186+
assertThat(artifacts.map { it.version }).containsOnly("1.0.0", "2.0.0", "3.0.0")
190187
}
191188

192189
@Test
@@ -202,7 +199,7 @@ class MuzzleMavenRepoUtilsTest {
202199

203200
val artifacts = MuzzleMavenRepoUtils.muzzleDirectiveToArtifacts(directive, rangeResult)
204201

205-
assertTrue(artifacts.all { it.classifier == "tests" })
202+
assertThat(artifacts).allSatisfy { assertThat(it.classifier).isEqualTo("tests") }
206203
}
207204

208205
private fun newSession() = MuzzleMavenRepoUtils.newRepositorySystemSession(system)

0 commit comments

Comments
 (0)