Skip to content

Commit 1a70698

Browse files
committed
Update AssertJ to 3.26.0
1 parent e1b0ce8 commit 1a70698

File tree

33 files changed

+129
-87
lines changed

33 files changed

+129
-87
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[versions]
22
apache-commons-collections = "4.4"
33
apache-commons-io = "2.16.0"
4-
assertJ = "3.20.2" # Upgrading leads to SAM errors: https://youtrack.jetbrains.com/issue/KT-17765
4+
assertJ = "3.26.0"
55
# match with <root>/settings.gradle.kts
66
awsSdk = "2.25.33"
77
commonmark = "0.17.1"

plugins/core/core/tst/software/aws/toolkits/core/utils/test/AssertJAsserts.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,27 @@
33

44
package software.aws.toolkits.core.utils.test
55

6-
import org.assertj.core.api.IterableAssert
6+
import org.assertj.core.api.AbstractIterableAssert
7+
import org.assertj.core.api.Assertions.assertThat
78
import org.assertj.core.api.ListAssert
89
import org.assertj.core.api.ObjectAssert
10+
import java.nio.file.Files
11+
import java.nio.file.Path
12+
import java.nio.file.attribute.PosixFilePermissions
913

1014
@Suppress("UNCHECKED_CAST")
1115
val <T : Any> ObjectAssert<T?>.notNull: ObjectAssert<T>
1216
get() = this.isNotNull as ObjectAssert<T>
1317

1418
@Suppress("UNCHECKED_CAST")
15-
inline fun <reified SubType : Any> IterableAssert<*>.hasOnlyElementsOfType(): IterableAssert<SubType> =
16-
hasOnlyElementsOfType(SubType::class.java) as IterableAssert<SubType>
19+
inline fun <reified SubType : Any> AbstractIterableAssert<*, *, *, *>.hasOnlyElementsOfTypeKt() =
20+
hasOnlyElementsOfType(SubType::class.java) as AbstractIterableAssert<*, Iterable<SubType>, SubType, *>
1721

1822
@Suppress("UNCHECKED_CAST")
1923
inline fun <reified SubType : Any> ListAssert<*>.hasOnlyOneElementOfType(): ObjectAssert<SubType> =
2024
(hasOnlyElementsOfType(SubType::class.java) as ListAssert<SubType>).singleElement()
25+
26+
fun assertPosixPermissions(path: Path, expected: String) {
27+
val perms = PosixFilePermissions.toString(Files.getPosixFilePermissions(path))
28+
assertThat(perms).isEqualTo(expected)
29+
}

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/credentials/DefaultAwsConnectionManagerTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import software.aws.toolkits.jetbrains.core.region.getDefaultRegion
2626
import software.aws.toolkits.jetbrains.services.sts.StsResources
2727
import software.aws.toolkits.jetbrains.utils.deserializeState
2828
import software.aws.toolkits.jetbrains.utils.rules.HeavyJavaCodeInsightTestFixtureRule
29+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
2930
import software.aws.toolkits.jetbrains.utils.serializeState
3031
import java.nio.file.Files
3132
import java.util.concurrent.CompletableFuture
@@ -89,7 +90,7 @@ class DefaultAwsConnectionManagerTest {
8990
manager.noStateLoaded()
9091
manager.waitUntilConnectionStateIsStable()
9192

92-
assertThat(manager.selectedCredentialIdentifier).notNull.satisfies {
93+
assertThat(manager.selectedCredentialIdentifier).notNull.satisfiesKt {
9394
assertThat(it.id).isEqualTo(credentials.id)
9495
}
9596
}
@@ -112,7 +113,7 @@ class DefaultAwsConnectionManagerTest {
112113

113114
manager.waitUntilConnectionStateIsStable()
114115

115-
assertThat(manager.selectedRegion).notNull.satisfies {
116+
assertThat(manager.selectedRegion).notNull.satisfiesKt {
116117
assertThat(it.id).isEqualTo("us-west-2")
117118
}
118119
}

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/credentials/DefaultConfigFilesFacadeTest.kt

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,16 @@
44
package software.aws.toolkits.jetbrains.core.credentials
55

66
import org.assertj.core.api.Assertions.assertThat
7-
import org.assertj.core.api.IterableAssert
87
import org.junit.Assume
98
import org.junit.Rule
109
import org.junit.Test
1110
import org.junit.rules.TemporaryFolder
1211
import software.amazon.awssdk.profiles.Profile
1312
import software.aws.toolkits.core.utils.createParentDirectories
13+
import software.aws.toolkits.core.utils.test.assertPosixPermissions
1414
import software.aws.toolkits.core.utils.writeText
15-
import java.nio.file.Files
15+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
1616
import java.nio.file.Paths
17-
import java.nio.file.attribute.PosixFilePermission
18-
import java.nio.file.attribute.PosixFilePermissions
1917

2018
class DefaultConfigFilesFacadeTest {
2119

@@ -33,8 +31,8 @@ class DefaultConfigFilesFacadeTest {
3331
assertThat(file).exists().hasContent(DefaultConfigFilesFacade.TEMPLATE)
3432

3533
assumeNoException<UnsupportedOperationException> {
36-
assertThat(Files.getPosixFilePermissions(file)).matches("rw-------")
37-
assertThat(Files.getPosixFilePermissions(file.parent)).matches("rwxr-xr-x")
34+
assertPosixPermissions(file, "rw-------")
35+
assertPosixPermissions(file.parent, "rwxr-xr-x")
3836
}
3937
}
4038

@@ -50,8 +48,8 @@ class DefaultConfigFilesFacadeTest {
5048
sut.createConfigFile()
5149

5250
assumeNoException<UnsupportedOperationException> {
53-
assertThat(Files.getPosixFilePermissions(file)).matches("rw-------")
54-
assertThat(Files.getPosixFilePermissions(file.parent)).matches("rwxrwxrwx")
51+
assertPosixPermissions(file, "rw-------")
52+
assertPosixPermissions(file.parent, "rwxrwxrwx")
5553
}
5654
}
5755

@@ -106,7 +104,7 @@ class DefaultConfigFilesFacadeTest {
106104

107105
assertThat(sut.readAllProfiles())
108106
.hasSize(1)
109-
.satisfies {
107+
.satisfiesKt {
110108
val entry = it.entries.first()
111109
assertThat(entry.key).isEqualTo("profileName")
112110
assertThat(entry.value).isEqualTo(
@@ -596,10 +594,6 @@ class DefaultConfigFilesFacadeTest {
596594
)
597595
}
598596

599-
private fun IterableAssert<PosixFilePermission>.matches(permissionString: String) {
600-
containsOnly(*PosixFilePermissions.fromString(permissionString).toTypedArray())
601-
}
602-
603597
private inline fun <reified T> assumeNoException(block: () -> Unit) {
604598
try {
605599
block()

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/credentials/DefaultToolkitAuthManagerTest.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.InteractiveBe
3131
import software.aws.toolkits.jetbrains.core.region.MockRegionProviderRule
3232
import software.aws.toolkits.jetbrains.utils.isInstanceOf
3333
import software.aws.toolkits.jetbrains.utils.isInstanceOfSatisfying
34+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
3435

3536
class DefaultToolkitAuthManagerTest {
3637
@JvmField
@@ -90,7 +91,7 @@ class DefaultToolkitAuthManagerTest {
9091
)
9192
sut.createConnection(profile)
9293

93-
assertThat(sut.state?.ssoProfiles).satisfies { profiles ->
94+
assertThat(sut.state?.ssoProfiles).satisfiesKt { profiles ->
9495
assertThat(profiles).isNotNull()
9596
assertThat(profiles).singleElement().isEqualTo(profile)
9697
}
@@ -110,7 +111,7 @@ class DefaultToolkitAuthManagerTest {
110111
)
111112
)
112113

113-
assertThat(sut.listConnections()).singleElement().satisfies {
114+
assertThat(sut.listConnections()).singleElement().satisfiesKt {
114115
assertThat(it).isInstanceOfSatisfying<ManagedBearerSsoConnection> { connection ->
115116
assertThat(connection.sessionName).isEqualTo("")
116117
assertThat(connection.region).isEqualTo(profile.ssoRegion)
@@ -138,7 +139,7 @@ class DefaultToolkitAuthManagerTest {
138139
)
139140
)
140141

141-
assertThat(sut.listConnections()).singleElement().satisfies {
142+
assertThat(sut.listConnections()).singleElement().satisfiesKt {
142143
assertThat(it).isInstanceOfSatisfying<ManagedBearerSsoConnection> { connection ->
143144
assertThat(connection.sessionName).isEqualTo("")
144145
assertThat(connection.region).isEqualTo(profile.ssoRegion)
@@ -164,7 +165,7 @@ class DefaultToolkitAuthManagerTest {
164165
)
165166
)
166167

167-
assertThat(sut.listConnections()).singleElement().satisfies {
168+
assertThat(sut.listConnections()).singleElement().satisfiesKt {
168169
assertThat(it).isInstanceOfSatisfying<ManagedBearerSsoConnection> { connection ->
169170
assertThat(connection.sessionName).isEqualTo("add")
170171
assertThat(connection.region).isEqualTo("us-east-1")
@@ -182,7 +183,7 @@ class DefaultToolkitAuthManagerTest {
182183
)
183184
)
184185

185-
assertThat(sut.listConnections()).singleElement().satisfies {
186+
assertThat(sut.listConnections()).singleElement().satisfiesKt {
186187
assertThat(it).isInstanceOfSatisfying<ManagedBearerSsoConnection> { connection ->
187188
assertThat(connection.sessionName).isEqualTo("add")
188189
assertThat(connection.region).isEqualTo("us-east-1")
@@ -332,7 +333,7 @@ class DefaultToolkitAuthManagerTest {
332333
val newScopes = listOf("existing1", "new1")
333334
loginSso(projectRule.project, "foo", "us-east-1", newScopes)
334335

335-
assertThat(connectionManager.activeConnection() as AwsBearerTokenConnection).satisfies { connection ->
336+
assertThat(connectionManager.activeConnection() as AwsBearerTokenConnection).satisfiesKt { connection ->
336337
assertThat(connection.scopes.toSet()).isEqualTo(setOf("existing1", "existing2", "existing3", "new1"))
337338
}
338339
assertThat(sut.listConnections()).singleElement().isInstanceOfSatisfying<AwsBearerTokenConnection> { connection ->

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/credentials/sso/DiskCacheTest.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.junit.jupiter.api.condition.DisabledOnOs
1212
import org.junit.jupiter.api.condition.OS
1313
import org.junit.jupiter.api.io.TempDir
1414
import software.aws.toolkits.core.utils.readText
15+
import software.aws.toolkits.core.utils.test.assertPosixPermissions
1516
import software.aws.toolkits.core.utils.writeText
1617
import java.nio.file.Files
1718
import java.nio.file.Path
@@ -709,9 +710,4 @@ class DiskCacheTest {
709710
.usingRecursiveComparison()
710711
.isEqualTo(sut.loadAccessToken(key2))
711712
}
712-
713-
private fun assertPosixPermissions(path: Path, expected: String) {
714-
val perms = PosixFilePermissions.toString(Files.getPosixFilePermissions(path))
715-
assertThat(perms).isEqualTo(expected)
716-
}
717713
}

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/gettingstarted/IdcRolePopupTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import software.aws.toolkits.core.utils.test.aString
2121
import software.aws.toolkits.jetbrains.core.MockClientManagerExtension
2222
import software.aws.toolkits.jetbrains.core.credentials.ConfigFilesFacade
2323
import software.aws.toolkits.jetbrains.core.region.MockRegionProviderExtension
24+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
2425
import software.aws.toolkits.resources.message
2526

2627
@ExtendWith(MockKExtension::class)
@@ -53,7 +54,7 @@ class IdcRolePopupTest {
5354
}
5455
}
5556

56-
assertThat(validation).singleElement().satisfies {
57+
assertThat(validation).singleElement().satisfiesKt {
5758
assertThat(it.okEnabled).isFalse()
5859
assertThat(it.message).contains(message("gettingstarted.setup.error.not_selected"))
5960
}

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/gettingstarted/SetupAuthenticationDialogTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_REGION
3737
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_URL
3838
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.SourceOfEntry
3939
import software.aws.toolkits.jetbrains.core.region.MockRegionProviderExtension
40+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
4041
import software.aws.toolkits.resources.message
4142
import software.aws.toolkits.telemetry.FeatureId
4243

@@ -212,7 +213,7 @@ class SetupAuthenticationDialogTest {
212213
}
213214
}
214215

215-
assertThat(validation).satisfies {
216+
assertThat(validation).satisfiesKt {
216217
assertThat(it).hasSize(2)
217218
assertThat(it).allSatisfy { error ->
218219
assertThat(error.message).contains("Must not be empty")
@@ -266,7 +267,7 @@ class SetupAuthenticationDialogTest {
266267
}
267268
}
268269

269-
assertThat(validation).satisfies {
270+
assertThat(validation).satisfiesKt {
270271
assertThat(it).hasSize(3)
271272
assertThat(it).allSatisfy { error ->
272273
assertThat(error.message).contains("Must not be empty")

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/telemetry/TelemetryServiceTest.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import software.aws.toolkits.jetbrains.core.credentials.waitUntilConnectionState
3737
import software.aws.toolkits.jetbrains.core.region.MockRegionProviderRule
3838
import software.aws.toolkits.jetbrains.services.sts.StsResources
3939
import software.aws.toolkits.jetbrains.settings.AwsSettings
40+
import software.aws.toolkits.jetbrains.utils.isInstanceOfSatisfying
4041
import java.util.concurrent.CountDownLatch
4142
import java.util.concurrent.TimeUnit
4243

@@ -267,9 +268,11 @@ class TelemetryServiceTest {
267268
private fun assertMetricEventsContains(events: Collection<MetricEvent>, eventName: String, awsAccount: String, awsRegion: String) {
268269
assertThat(events).filteredOn { event ->
269270
event.data.any { it.name == eventName }
270-
}.anySatisfy {
271-
assertThat(it.awsAccount).isEqualTo(awsAccount)
272-
assertThat(it.awsRegion).isEqualTo(awsRegion)
271+
}.anySatisfy { element ->
272+
assertThat(element).isInstanceOfSatisfying<MetricEvent> {
273+
assertThat(it.awsAccount).isEqualTo(awsAccount)
274+
assertThat(it.awsRegion).isEqualTo(awsRegion)
275+
}
273276
}
274277
}
275278
}

plugins/core/jetbrains-community/tstFixtures/software/aws/toolkits/jetbrains/utils/AssertJMatchers.kt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package software.aws.toolkits.jetbrains.utils
55

66
import org.assertj.core.api.AbstractAssert
7+
import org.assertj.core.api.AbstractIterableAssert
78
import org.assertj.core.api.AbstractThrowableAssert
89
import org.assertj.core.api.Assertions.assertThat
910
import org.assertj.core.api.CompletableFutureAssert
@@ -31,10 +32,23 @@ val <T> CompletionStage<T>.value get() = toCompletableFuture().get(TIMEOUT.toMil
3132

3233
val <T> CompletableFutureAssert<T>.hasException get() = this.wait().isCompletedExceptionally
3334

35+
// https://github.com/assertj/assertj/issues/2357
36+
@Suppress("UNCHECKED_CAST")
37+
fun <E : Any?, I : Iterable<E>> AbstractIterableAssert<*, I, E, *>.allSatisfyKt(requirements: Consumer<E>) =
38+
allSatisfy(requirements) as AbstractIterableAssert<*, I, E, *>
39+
40+
@Suppress("UNCHECKED_CAST")
41+
fun <E : Any?, I : Iterable<E>> AbstractIterableAssert<*, I, E, *>.anySatisfyKt(requirements: Consumer<E>) =
42+
anySatisfy(requirements) as AbstractIterableAssert<*, I, E, *>
43+
44+
@Suppress("UNCHECKED_CAST")
45+
fun <T : Any?> AbstractAssert<*, T>.satisfiesKt(requirements: Consumer<T>) =
46+
satisfies(requirements) as AbstractAssert<*, T>
47+
3448
fun <SELF : AbstractThrowableAssert<SELF, ACTUAL>, ACTUAL : Throwable> AbstractThrowableAssert<SELF, ACTUAL>.hasCauseWithMessage(
3549
message: String
3650
): AbstractThrowableAssert<SELF, ACTUAL> {
37-
satisfies { parentThrowable ->
51+
satisfiesKt { parentThrowable ->
3852
assertThat(parentThrowable.cause).isNotNull.hasMessage(message)
3953
}
4054
return this

plugins/toolkit/jetbrains-core/it/software/aws/toolkits/jetbrains/core/credentials/sso/bearer/InteractiveBearerTokenProviderIntegrationTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import software.aws.toolkits.jetbrains.core.credentials.sso.DeviceGrantAccessTok
2121
import software.aws.toolkits.jetbrains.core.credentials.sso.DiskCache
2222
import software.aws.toolkits.jetbrains.utils.extensions.SsoLogin
2323
import software.aws.toolkits.jetbrains.utils.extensions.SsoLoginExtension
24+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
2425
import java.nio.file.Path
2526
import java.time.Instant
2627

@@ -74,7 +75,7 @@ class InteractiveBearerTokenProviderIntegrationTest {
7475
id = "test"
7576
)
7677

77-
assertThat(sut.resolveToken()).satisfies {
78+
assertThat(sut.resolveToken()).satisfiesKt {
7879
assertThat(it).isNotNull()
7980
assertThat(it).isNotEqualTo(initialToken)
8081
}

plugins/toolkit/jetbrains-core/tst/software/aws/toolkits/jetbrains/core/credentials/ConnectionSettingsMenuBuilderTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import software.aws.toolkits.jetbrains.core.credentials.ConnectionSettingsMenuBu
2222
import software.aws.toolkits.jetbrains.core.credentials.MockAwsConnectionManager.ProjectAccountSettingsManagerRule
2323
import software.aws.toolkits.jetbrains.core.region.AwsRegionProvider
2424
import software.aws.toolkits.jetbrains.core.region.MockRegionProviderRule
25+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
2526
import software.aws.toolkits.resources.message
2627

2728
class ConnectionSettingsMenuBuilderTest {
@@ -87,7 +88,7 @@ class ConnectionSettingsMenuBuilderTest {
8788
.build()
8889
val actions = group.getChildren().filterIsInstance<ActionGroup>()
8990

90-
assertThat(actions).singleElement().satisfies {
91+
assertThat(actions).singleElement().satisfiesKt {
9192
assertThat(it.isPopup).isTrue
9293
assertThat(it.templatePresentation.text).isEqualTo(message("settings.partitions"))
9394
assertThat(it.getChildren()).hasSize(otherPartitions.size)

plugins/toolkit/jetbrains-core/tst/software/aws/toolkits/jetbrains/core/credentials/metadataservice/ContainerCredentialProviderFactoryTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import software.aws.toolkits.core.credentials.CredentialType
2323
import software.aws.toolkits.core.credentials.CredentialsChangeEvent
2424
import software.aws.toolkits.core.credentials.CredentialsChangeListener
2525
import software.aws.toolkits.core.rules.SystemPropertyHelper
26+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
2627
import java.time.Duration
2728
import java.time.Instant
2829
import java.time.format.DateTimeFormatter
@@ -66,7 +67,7 @@ class ContainerCredentialProviderFactoryTest {
6667
sut.setUp(profileLoadCallback)
6768

6869
assertThat(credentialChangeEvent.allValues.size).isEqualTo(1)
69-
assertThat(credentialChangeEvent.firstValue).satisfies {
70+
assertThat(credentialChangeEvent.firstValue).satisfiesKt {
7071
assertThat(it.modified).isEmpty()
7172
assertThat(it.removed).isEmpty()
7273
assertThat(it.added).hasSize(1)
@@ -80,7 +81,7 @@ class ContainerCredentialProviderFactoryTest {
8081
sut.setUp(profileLoadCallback)
8182

8283
assertThat(credentialChangeEvent.allValues.size).isEqualTo(1)
83-
assertThat(credentialChangeEvent.firstValue).satisfies {
84+
assertThat(credentialChangeEvent.firstValue).satisfiesKt {
8485
assertThat(it.modified).isEmpty()
8586
assertThat(it.removed).isEmpty()
8687
assertThat(it.added).hasSize(1)

plugins/toolkit/jetbrains-core/tst/software/aws/toolkits/jetbrains/core/credentials/metadataservice/InstanceRoleCredentialProviderFactoryTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import software.aws.toolkits.core.credentials.CredentialType
2626
import software.aws.toolkits.core.credentials.CredentialsChangeEvent
2727
import software.aws.toolkits.core.credentials.CredentialsChangeListener
2828
import software.aws.toolkits.core.rules.SystemPropertyHelper
29+
import software.aws.toolkits.jetbrains.utils.satisfiesKt
2930
import java.time.Duration
3031
import java.time.Instant
3132
import java.time.format.DateTimeFormatter
@@ -99,7 +100,7 @@ class InstanceRoleCredentialProviderFactoryTest {
99100
sut.setUp(profileLoadCallback)
100101

101102
assertThat(credentialChangeEvent.allValues.size).isEqualTo(1)
102-
assertThat(credentialChangeEvent.firstValue).satisfies {
103+
assertThat(credentialChangeEvent.firstValue).satisfiesKt {
103104
assertThat(it.modified).isEmpty()
104105
assertThat(it.removed).isEmpty()
105106
assertThat(it.added).hasSize(1)

0 commit comments

Comments
 (0)