Skip to content

Commit b6b1262

Browse files
committed
Start developing against AssertJ 4.x and make sure the library is a JPMS module.
1 parent 7dd6667 commit b6b1262

22 files changed

+158
-97
lines changed

pom.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.assertj</groupId>
77
<artifactId>assertj-parent</artifactId>
8-
<version>3.27.3</version>
8+
<version>4.0.0-M1</version>
99
</parent>
1010

1111
<artifactId>assertj-eclipse-collections</artifactId>
@@ -38,8 +38,8 @@
3838
</scm>
3939

4040
<properties>
41-
<assertj.version>3.27.3</assertj.version>
42-
<java.version>11</java.version>
41+
<assertj.version>4.0.0-M1</assertj.version>
42+
<java.version>17</java.version>
4343
<eclipse-collections.version>13.0.0</eclipse-collections.version>
4444
<!-- Dependency versions overriding -->
4545
<junit-jupiter.version>5.12.1</junit-jupiter.version>
@@ -85,6 +85,8 @@
8585
<link>https://javadoc.io/static/org.assertj/assertj-core/${assertj.version}/</link>
8686
<link>https://javadoc.io/static/org.eclipse.collections/eclipse-collections-api/${eclipse-collections.version}/</link>
8787
</links>
88+
<!-- https://bugs.openjdk.org/browse/JDK-8274639 -->
89+
<additionalOptions>--allow-script-in-comments --link-modularity-mismatch=info</additionalOptions>
8890
</configuration>
8991
</plugin>
9092
</plugins>

src/main/java/module-info.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
3+
* the License. You may obtain a copy of the License at
4+
*
5+
* http://www.apache.org/licenses/LICENSE-2.0
6+
*
7+
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
8+
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
9+
* specific language governing permissions and limitations under the License.
10+
*
11+
* Copyright 2025-2025 the original author or authors.
12+
*/
13+
14+
/**
15+
* Main AssertJ Eclipse Collections Module
16+
*/
17+
module org.assertj.eclipse.collections {
18+
exports org.assertj.eclipse.collections.api;
19+
exports org.assertj.eclipse.collections.api.multimap;
20+
exports org.assertj.eclipse.collections.error;
21+
22+
requires org.assertj.core;
23+
requires org.eclipse.collections.api;
24+
requires org.eclipse.collections.impl;
25+
}

src/main/java/org/assertj/eclipse/collections/api/SoftAssertions.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import org.assertj.core.api.AbstractSoftAssertions;
1616
import org.assertj.core.api.SoftAssertionsProvider;
17-
import org.opentest4j.MultipleFailuresError;
1817

1918
import java.util.function.Consumer;
2019

@@ -35,8 +34,8 @@ public SoftAssertions() {
3534
*
3635
* @param softly the Consumer containing the code that will make the soft assertions.
3736
* Takes one parameter (the SoftAssertions instance used to make the assertions).
38-
* @throws MultipleFailuresError if possible or SoftAssertionError if any proxied assertion objects threw an {@link
39-
* AssertionError}
37+
* @throws org.opentest4j.MultipleFailuresError MultipleFailuresError if possible or SoftAssertionError if any proxied
38+
* assertion objects threw an {@link AssertionError}
4039
*/
4140
public static void assertSoftly(Consumer<SoftAssertions> softly) {
4241
SoftAssertionsProvider.assertSoftly(SoftAssertions.class, softly);

src/test/java/module-info.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
3+
* the License. You may obtain a copy of the License at
4+
*
5+
* http://www.apache.org/licenses/LICENSE-2.0
6+
*
7+
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
8+
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
9+
* specific language governing permissions and limitations under the License.
10+
*
11+
* Copyright 2025-2025 the original author or authors.
12+
*/
13+
14+
/**
15+
* Test module for AssertJ Eclipse Collections
16+
*/
17+
open module org.assertj.eclipse.collections.test {
18+
exports org.assertj.eclipse.collections.test.api.multimap;
19+
20+
requires org.assertj.eclipse.collections;
21+
requires org.assertj.core;
22+
requires org.eclipse.collections.api;
23+
requires org.eclipse.collections.impl;
24+
requires org.junit.jupiter.api;
25+
requires org.junit.jupiter.params;
26+
}

src/test/java/org/assertj/eclipse/collections/api/multimap/MultimapAssert_ContainsEntry_Test.java renamed to src/test/java/org/assertj/eclipse/collections/test/api/multimap/MultimapAssert_ContainsEntry_Test.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,28 @@
1010
*
1111
* Copyright 2025-2025 the original author or authors.
1212
*/
13-
package org.assertj.eclipse.collections.api.multimap;
13+
package org.assertj.eclipse.collections.test.api.multimap;
1414

1515
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
1616
import static org.assertj.core.api.Assertions.assertThatNoException;
17-
import static org.eclipse.collections.impl.tuple.Tuples.pair;
1817

1918
import org.assertj.eclipse.collections.api.SoftAssertions;
19+
import org.assertj.eclipse.collections.api.multimap.MultimapAssert;
2020
import org.eclipse.collections.api.multimap.Multimap;
21-
import org.eclipse.collections.api.tuple.Pair;
22-
import org.eclipse.collections.impl.factory.Multimaps;
2321
import org.junit.jupiter.api.Test;
2422
import org.junit.jupiter.params.ParameterizedTest;
2523
import org.junit.jupiter.params.provider.MethodSource;
2624

2725
class MultimapAssert_ContainsEntry_Test {
2826

2927
@ParameterizedTest
30-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
28+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
3129
void passes(Multimap<String, String> actual) {
3230
assertThatNoException().isThrownBy(() -> new MultimapAssert<>(actual).containsEntry("ENT", "Reed"));
3331
}
3432

3533
@ParameterizedTest
36-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#emptyMultimaps")
34+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#emptyMultimaps")
3735
void failsEmpty(Multimap<String, String> actual) {
3836
assertThatExceptionOfType(AssertionError.class)
3937
.isThrownBy(() -> new MultimapAssert<>(actual).containsEntry("ENT", "Reed"))
@@ -50,7 +48,7 @@ void failsNullMultimap() {
5048
}
5149

5250
@ParameterizedTest
53-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
51+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
5452
void failsMissingEntry(Multimap<String, String> actual) {
5553
assertThatExceptionOfType(AssertionError.class)
5654
.isThrownBy(() -> new MultimapAssert<>(actual).containsEntry("VOY", "Kes"))
@@ -60,7 +58,7 @@ void failsMissingEntry(Multimap<String, String> actual) {
6058
}
6159

6260
@ParameterizedTest
63-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
61+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
6462
void softAssertionPasses(Multimap<String, String> actual) {
6563
SoftAssertions.assertSoftly(softly -> softly.assertThat(actual).containsEntry("ENT", "Reed"));
6664
}

src/test/java/org/assertj/eclipse/collections/api/multimap/MultimapAssert_ContainsKeys_Test.java renamed to src/test/java/org/assertj/eclipse/collections/test/api/multimap/MultimapAssert_ContainsKeys_Test.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010
*
1111
* Copyright 2025-2025 the original author or authors.
1212
*/
13-
package org.assertj.eclipse.collections.api.multimap;
13+
package org.assertj.eclipse.collections.test.api.multimap;
1414

1515
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
1616
import static org.assertj.core.api.Assertions.assertThatNoException;
1717

1818
import org.assertj.eclipse.collections.api.SoftAssertions;
19+
import org.assertj.eclipse.collections.api.multimap.MultimapAssert;
1920
import org.eclipse.collections.api.multimap.Multimap;
2021
import org.junit.jupiter.api.Test;
2122
import org.junit.jupiter.params.ParameterizedTest;
@@ -24,13 +25,13 @@
2425
class MultimapAssert_ContainsKeys_Test {
2526

2627
@ParameterizedTest
27-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
28+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
2829
void passes(Multimap<String, String> actual) {
2930
assertThatNoException().isThrownBy(() -> new MultimapAssert<>(actual).containsKeys("TOS", "TNG", "DS9"));
3031
}
3132

3233
@ParameterizedTest
33-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#emptyMultimaps")
34+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#emptyMultimaps")
3435
void failsEmpty(Multimap<String, String> actual) {
3536
assertThatExceptionOfType(AssertionError.class)
3637
.isThrownBy(() -> new MultimapAssert<>(actual).containsKeys("TOS", "TNG", "DS9"))
@@ -40,7 +41,7 @@ void failsEmpty(Multimap<String, String> actual) {
4041
}
4142

4243
@ParameterizedTest
43-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
44+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
4445
void failsMissingKey(Multimap<String, String> actual) {
4546
assertThatExceptionOfType(AssertionError.class)
4647
.isThrownBy(() -> new MultimapAssert<>(actual).containsKeys("DIS"))
@@ -57,7 +58,7 @@ void failsNullMultimap() {
5758
}
5859

5960
@ParameterizedTest
60-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
61+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
6162
void softAssertionPasses(Multimap<String, String> actual) {
6263
SoftAssertions.assertSoftly(softly -> softly.assertThat(actual).containsKeys("TOS", "TNG", "DS9"));
6364
}

src/test/java/org/assertj/eclipse/collections/api/multimap/MultimapAssert_ContainsOnly_Test.java renamed to src/test/java/org/assertj/eclipse/collections/test/api/multimap/MultimapAssert_ContainsOnly_Test.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* Copyright 2025-2025 the original author or authors.
1212
*/
13-
package org.assertj.eclipse.collections.api.multimap;
13+
package org.assertj.eclipse.collections.test.api.multimap;
1414

1515
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
1616
import static org.assertj.core.api.Assertions.assertThatNoException;
@@ -19,6 +19,7 @@
1919
import java.util.Map;
2020

2121
import org.assertj.eclipse.collections.api.SoftAssertions;
22+
import org.assertj.eclipse.collections.api.multimap.MultimapAssert;
2223
import org.eclipse.collections.api.multimap.Multimap;
2324
import org.eclipse.collections.api.tuple.Pair;
2425
import org.junit.jupiter.api.Test;
@@ -28,7 +29,7 @@
2829
class MultimapAssert_ContainsOnly_Test {
2930

3031
@ParameterizedTest
31-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
32+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
3233
void passesWithPairs(Multimap<String, String> actual) {
3334
Pair<String, String>[] exactMatchPairs = new Pair[]{
3435
pair("TNG", "Enterprise"),
@@ -40,7 +41,7 @@ void passesWithPairs(Multimap<String, String> actual) {
4041
}
4142

4243
@ParameterizedTest
43-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
44+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
4445
void passesWithEntries(Multimap<String, String> actual) {
4546
Map.Entry<String, String>[] exactMatchEntries = new Map.Entry[]{
4647
pair("TNG", "Enterprise").toEntry(),
@@ -52,7 +53,7 @@ void passesWithEntries(Multimap<String, String> actual) {
5253
}
5354

5455
@ParameterizedTest
55-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
56+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
5657
void failsWhenAdditionalKeysOrValuesExistWithPair(Multimap<String, String> actual) {
5758
Pair<String, String>[] partialMatchMissingPairs = new Pair[]{
5859
pair("TNG", "Enterprise"),
@@ -66,7 +67,7 @@ void failsWhenAdditionalKeysOrValuesExistWithPair(Multimap<String, String> actua
6667
}
6768

6869
@ParameterizedTest
69-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
70+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
7071
void failsWhenAdditionalKeysOrValuesExistWithEntry(Multimap<String, String> actual) {
7172
Map.Entry<String, String>[] partialMatchMissingEntries = new Map.Entry[]{
7273
pair("TNG", "Enterprise").toEntry(),
@@ -80,7 +81,7 @@ void failsWhenAdditionalKeysOrValuesExistWithEntry(Multimap<String, String> actu
8081
}
8182

8283
@ParameterizedTest
83-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
84+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
8485
void failsWhenEntryIsMissingWithPair(Multimap<String, String> actual) {
8586
Pair<String, String>[] partialMatchExtraPairs = new Pair[]{
8687
pair("TOS", "Enterprise"),
@@ -96,7 +97,7 @@ void failsWhenEntryIsMissingWithPair(Multimap<String, String> actual) {
9697
}
9798

9899
@ParameterizedTest
99-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
100+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
100101
void failsWhenEntryIsMissingWithEntry(Multimap<String, String> actual) {
101102
Map.Entry<String, String>[] partialMatchExtraEntries = new Map.Entry[]{
102103
pair("TOS", "Enterprise").toEntry(),
@@ -112,7 +113,7 @@ void failsWhenEntryIsMissingWithEntry(Multimap<String, String> actual) {
112113
}
113114

114115
@ParameterizedTest
115-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#emptyMultimaps")
116+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#emptyMultimaps")
116117
void failsForEmptyMultimapWithPair(Multimap<String, String> actual) {
117118
Pair<String, String>[] exactMatchPairs = new Pair[]{
118119
pair("TNG", "Enterprise"),
@@ -125,7 +126,7 @@ void failsForEmptyMultimapWithPair(Multimap<String, String> actual) {
125126
}
126127

127128
@ParameterizedTest
128-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#emptyMultimaps")
129+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#emptyMultimaps")
129130
void failsForEmptyMultimapWithEntry(Multimap<String, String> actual) {
130131
Map.Entry<String, String>[] exactMatchEntries = new Map.Entry[]{
131132
pair("TNG", "Enterprise").toEntry(),
@@ -160,7 +161,7 @@ void failsForNullMultimapWithEntry() {
160161
}
161162

162163
@ParameterizedTest
163-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
164+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
164165
void softAssertionPassesWithPairs(Multimap<String, String> actual) {
165166
Pair<String, String>[] exactMatchPairs = new Pair[]{
166167
pair("TNG", "Enterprise"),
@@ -172,7 +173,7 @@ void softAssertionPassesWithPairs(Multimap<String, String> actual) {
172173
}
173174

174175
@ParameterizedTest
175-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#shipMultimaps")
176+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#shipMultimaps")
176177
void softAssertionPassesWithEntries(Multimap<String, String> actual) {
177178
Map.Entry<String, String>[] exactMatchEntries = new Map.Entry[]{
178179
pair("TNG", "Enterprise").toEntry(),

src/test/java/org/assertj/eclipse/collections/api/multimap/MultimapAssert_ContainsValues_Test.java renamed to src/test/java/org/assertj/eclipse/collections/test/api/multimap/MultimapAssert_ContainsValues_Test.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010
*
1111
* Copyright 2025-2025 the original author or authors.
1212
*/
13-
package org.assertj.eclipse.collections.api.multimap;
13+
package org.assertj.eclipse.collections.test.api.multimap;
1414

1515
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
1616
import static org.assertj.core.api.Assertions.assertThatNoException;
1717

1818
import org.assertj.eclipse.collections.api.SoftAssertions;
19+
import org.assertj.eclipse.collections.api.multimap.MultimapAssert;
1920
import org.eclipse.collections.api.multimap.Multimap;
2021
import org.junit.jupiter.api.Test;
2122
import org.junit.jupiter.params.ParameterizedTest;
@@ -24,13 +25,13 @@
2425
class MultimapAssert_ContainsValues_Test {
2526

2627
@ParameterizedTest
27-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
28+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
2829
void passes(Multimap<String, String> actual) {
2930
assertThatNoException().isThrownBy(() -> new MultimapAssert<>(actual).containsValues("Kirk", "Picard", "Sisko", "Janeway", "Archer"));
3031
}
3132

3233
@ParameterizedTest
33-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#emptyMultimaps")
34+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#emptyMultimaps")
3435
void failsEmpty(Multimap<String, String> actual) {
3536
assertThatExceptionOfType(AssertionError.class)
3637
.isThrownBy(() -> new MultimapAssert<>(actual).containsValues("Kirk", "Picard", "Sisko", "Janeway", "Archer"))
@@ -40,7 +41,7 @@ void failsEmpty(Multimap<String, String> actual) {
4041
}
4142

4243
@ParameterizedTest
43-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
44+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
4445
void failsMissingValue(Multimap<String, String> actual) {
4546
assertThatExceptionOfType(AssertionError.class)
4647
.isThrownBy(() -> new MultimapAssert<>(actual).containsValues("Kes"))
@@ -57,7 +58,7 @@ void failsNullMultimap() {
5758
}
5859

5960
@ParameterizedTest
60-
@MethodSource("org.assertj.eclipse.collections.api.multimap.MultimapTestData#nonEmptyMultimaps")
61+
@MethodSource("org.assertj.eclipse.collections.test.api.multimap.MultimapTestData#nonEmptyMultimaps")
6162
void softAssertionPasses(Multimap<String, String> actual) {
6263
SoftAssertions.assertSoftly(softly -> softly.assertThat(actual).containsValues("Kirk", "Picard", "Sisko", "Janeway", "Archer"));
6364
}

src/test/java/org/assertj/eclipse/collections/api/multimap/MultimapAssert_Contains_Test.java renamed to src/test/java/org/assertj/eclipse/collections/test/api/multimap/MultimapAssert_Contains_Test.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
* Copyright 2025-2025 the original author or authors.
1212
*/
13-
package org.assertj.eclipse.collections.api.multimap;
13+
package org.assertj.eclipse.collections.test.api.multimap;
1414

1515
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
1616
import static org.assertj.core.api.Assertions.assertThatNoException;
@@ -21,6 +21,7 @@
2121
import java.util.stream.Stream;
2222

2323
import org.assertj.eclipse.collections.api.SoftAssertions;
24+
import org.assertj.eclipse.collections.api.multimap.MultimapAssert;
2425
import org.eclipse.collections.api.multimap.Multimap;
2526
import org.eclipse.collections.api.tuple.Pair;
2627
import org.eclipse.collections.impl.tuple.Tuples;

0 commit comments

Comments
 (0)