Skip to content

Commit 44b53fe

Browse files
committed
rename Jspecify classes and tests to JSpecify, update dependencies
1 parent ac0b839 commit 44b53fe

12 files changed

Lines changed: 54 additions & 54 deletions

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
<java.version>25</java.version>
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1414
<checkstyle.version>13.4.2</checkstyle.version>
15-
<junit.version>6.0.3</junit.version>
15+
<junit.version>6.1.0</junit.version>
1616
<errorprone.version>2.49.0</errorprone.version>
17-
<nullaway.version>0.13.2</nullaway.version>
17+
<nullaway.version>0.13.4</nullaway.version>
1818
</properties>
1919

2020
<dependencies>

src/main/java/it/aboutbits/checkstyle/JspecifyAnnotationOrderCheck.java renamed to src/main/java/it/aboutbits/checkstyle/JSpecifyAnnotationOrderCheck.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.util.Set;
1111

1212
@NullMarked
13-
public class JspecifyAnnotationOrderCheck extends AbstractCheck {
13+
public class JSpecifyAnnotationOrderCheck extends AbstractCheck {
1414

1515
public static final String MSG_KEY = "jspecify.order.notLast";
1616

src/main/java/it/aboutbits/checkstyle/JspecifyInlineTypeUseCheck.java renamed to src/main/java/it/aboutbits/checkstyle/JSpecifyInlineTypeUseCheck.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import java.util.Set;
1313

1414
@NullMarked
15-
public class JspecifyInlineTypeUseCheck extends AbstractCheck {
15+
public class JSpecifyInlineTypeUseCheck extends AbstractCheck {
1616

1717
public static final String MSG_KEY = "jspecify.inline.notInline";
1818

src/main/java/it/aboutbits/checkstyle/JspecifyMapStructMapperAnnotationCheck.java renamed to src/main/java/it/aboutbits/checkstyle/JSpecifyMapStructMapperAnnotationCheck.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.util.ArrayList;
1111

1212
@NullMarked
13-
public class JspecifyMapStructMapperAnnotationCheck extends AbstractCheck {
13+
public class JSpecifyMapStructMapperAnnotationCheck extends AbstractCheck {
1414

1515
public static final String MSG_KEY = "jspecify.mapstruct.annotation.invalid";
1616

src/main/java/it/aboutbits/checkstyle/JspecifyOnTopLevelTypesCheck.java renamed to src/main/java/it/aboutbits/checkstyle/JSpecifyOnTopLevelTypesCheck.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import java.util.Set;
1010

1111
@NullMarked
12-
public class JspecifyOnTopLevelTypesCheck extends AbstractCheck {
12+
public class JSpecifyOnTopLevelTypesCheck extends AbstractCheck {
1313

1414
public static final String MSG_KEY = "jspecify.toplevel.missing";
1515

src/main/resources/checkstyle.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,16 +163,16 @@
163163
<module name="RedundantModifier"/>
164164

165165
<!-- JSpecify enforcement (custom checks shipped in this jar) -->
166-
<module name="it.aboutbits.checkstyle.JspecifyOnTopLevelTypesCheck">
166+
<module name="it.aboutbits.checkstyle.JSpecifyOnTopLevelTypesCheck">
167167
<property name="id" value="JspecifyOnTopLevelTypes"/>
168168
</module>
169-
<module name="it.aboutbits.checkstyle.JspecifyAnnotationOrderCheck">
169+
<module name="it.aboutbits.checkstyle.JSpecifyAnnotationOrderCheck">
170170
<property name="id" value="JspecifyAnnotationOrder"/>
171171
</module>
172-
<module name="it.aboutbits.checkstyle.JspecifyInlineTypeUseCheck">
172+
<module name="it.aboutbits.checkstyle.JSpecifyInlineTypeUseCheck">
173173
<property name="id" value="JspecifyInlineTypeUse"/>
174174
</module>
175-
<module name="it.aboutbits.checkstyle.JspecifyMapStructMapperAnnotationCheck">
175+
<module name="it.aboutbits.checkstyle.JSpecifyMapStructMapperAnnotationCheck">
176176
<property name="id" value="JspecifyMapStructMapperAnnotation"/>
177177
</module>
178178

src/test/java/it/aboutbits/checkstyle/JspecifyAnnotationOrderCheckTest.java renamed to src/test/java/it/aboutbits/checkstyle/JSpecifyAnnotationOrderCheckTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,53 +10,53 @@
1010
import static org.junit.jupiter.api.Assertions.assertTrue;
1111

1212
@NullMarked
13-
class JspecifyAnnotationOrderCheckTest extends CheckTestSupport {
13+
class JSpecifyAnnotationOrderCheckTest extends CheckTestSupport {
1414

1515
private static final String BASE = "/it/aboutbits/checkstyle/jspecifyAnnotationOrder/";
1616

1717
@Test
1818
void jspecifyAnnotationAsLastPasses() throws Exception {
19-
var v = runCheck(JspecifyAnnotationOrderCheck.class, BASE + "GoodLast.java");
19+
var v = runCheck(JSpecifyAnnotationOrderCheck.class, BASE + "GoodLast.java");
2020
assertEquals(List.of(), v);
2121
}
2222

2323
@Test
2424
void jspecifyAnnotationFollowedByOtherFailsAndHighlightsCloseAnnotation() throws Exception {
25-
var v = runCheck(JspecifyAnnotationOrderCheck.class, BASE + "BadInMiddle.java");
25+
var v = runCheck(JSpecifyAnnotationOrderCheck.class, BASE + "BadInMiddle.java");
2626
assertEquals(1, v.size());
2727
assertTrue(v.getFirst().contains(NullMarked.class.getSimpleName()), v.toString());
2828
assertTrue(v.getFirst().startsWith("6:"), "violation should be reported on the @NullMarked line: " + v);
2929
}
3030

3131
@Test
3232
void jspecifyAnnotationAsFirstFailsAndHighlightsCloseAnnotation() throws Exception {
33-
var v = runCheck(JspecifyAnnotationOrderCheck.class, BASE + "BadFirst.java");
33+
var v = runCheck(JSpecifyAnnotationOrderCheck.class, BASE + "BadFirst.java");
3434
assertEquals(1, v.size());
3535
assertTrue(v.getFirst().startsWith("5:"), "violation should be reported on the @NullMarked line: " + v);
3636
}
3737

3838
@Test
3939
void noJspecifyAnnotationDoesNotFire() throws Exception {
40-
var v = runCheck(JspecifyAnnotationOrderCheck.class, BASE + "NoJspecify.java");
40+
var v = runCheck(JSpecifyAnnotationOrderCheck.class, BASE + "NoJspecify.java");
4141
assertEquals(List.of(), v);
4242
}
4343

4444
@Test
4545
void customCloseAnnotationsArePicked() throws Exception {
4646
var properties = Map.of("closeAnnotations", "Custom,AnotherClose");
4747

48-
var ok = runCheck(JspecifyAnnotationOrderCheck.class, BASE + "CustomCloseLast.java", properties);
48+
var ok = runCheck(JSpecifyAnnotationOrderCheck.class, BASE + "CustomCloseLast.java", properties);
4949
assertEquals(List.of(), ok);
5050

51-
var bad = runCheck(JspecifyAnnotationOrderCheck.class, BASE + "CustomCloseInMiddle.java", properties);
51+
var bad = runCheck(JSpecifyAnnotationOrderCheck.class, BASE + "CustomCloseInMiddle.java", properties);
5252
assertEquals(1, bad.size());
5353
assertTrue(bad.getFirst().contains("Custom"), bad.toString());
5454
}
5555

5656
@Test
5757
void closeAnnotationsAreTrimmed() throws Exception {
5858
var v = runCheck(
59-
JspecifyAnnotationOrderCheck.class,
59+
JSpecifyAnnotationOrderCheck.class,
6060
BASE + "GoodLast.java",
6161
Map.of("closeAnnotations", " NullMarked , NullUnmarked ")
6262
);

src/test/java/it/aboutbits/checkstyle/JspecifyInlineTypeUseCheckTest.java renamed to src/test/java/it/aboutbits/checkstyle/JSpecifyInlineTypeUseCheckTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,73 +8,73 @@
88
import static org.junit.jupiter.api.Assertions.assertEquals;
99

1010
@NullMarked
11-
class JspecifyInlineTypeUseCheckTest extends CheckTestSupport {
11+
class JSpecifyInlineTypeUseCheckTest extends CheckTestSupport {
1212

1313
private static final String BASE = "/it/aboutbits/checkstyle/jspecifyInlineTypeUse/";
1414

1515
@Test
1616
void inlineMethodReturnPasses() throws Exception {
17-
assertEquals(List.of(), runCheck(JspecifyInlineTypeUseCheck.class, BASE + "GoodInlineMethod.java"));
17+
assertEquals(List.of(), runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "GoodInlineMethod.java"));
1818
}
1919

2020
@Test
2121
void inlineFieldPasses() throws Exception {
22-
assertEquals(List.of(), runCheck(JspecifyInlineTypeUseCheck.class, BASE + "GoodInlineField.java"));
22+
assertEquals(List.of(), runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "GoodInlineField.java"));
2323
}
2424

2525
@Test
2626
void inlineParameterPasses() throws Exception {
27-
assertEquals(List.of(), runCheck(JspecifyInlineTypeUseCheck.class, BASE + "GoodInlineParameter.java"));
27+
assertEquals(List.of(), runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "GoodInlineParameter.java"));
2828
}
2929

3030
@Test
3131
void inlineLocalPasses() throws Exception {
32-
assertEquals(List.of(), runCheck(JspecifyInlineTypeUseCheck.class, BASE + "GoodInlineLocal.java"));
32+
assertEquals(List.of(), runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "GoodInlineLocal.java"));
3333
}
3434

3535
@Test
3636
void annotationOnLineAboveMethodFails() throws Exception {
37-
var v = runCheck(JspecifyInlineTypeUseCheck.class, BASE + "BadAboveMethod.java");
37+
var v = runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "BadAboveMethod.java");
3838
assertEquals(1, v.size(), v.toString());
3939
}
4040

4141
@Test
4242
void annotationOnLineAboveFieldFails() throws Exception {
43-
var v = runCheck(JspecifyInlineTypeUseCheck.class, BASE + "BadAboveField.java");
43+
var v = runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "BadAboveField.java");
4444
assertEquals(1, v.size(), v.toString());
4545
}
4646

4747
@Test
4848
void annotationOnLineAboveParameterFails() throws Exception {
49-
var v = runCheck(JspecifyInlineTypeUseCheck.class, BASE + "BadAboveParameter.java");
49+
var v = runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "BadAboveParameter.java");
5050
assertEquals(1, v.size(), v.toString());
5151
}
5252

5353
@Test
5454
void annotationOnLineAboveLocalFails() throws Exception {
55-
var v = runCheck(JspecifyInlineTypeUseCheck.class, BASE + "BadAboveLocal.java");
55+
var v = runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "BadAboveLocal.java");
5656
assertEquals(1, v.size(), v.toString());
5757
}
5858

5959
@Test
6060
void nonJspecifyNullableImportedFromElsewhereIsIgnored() throws Exception {
6161
assertEquals(
6262
List.of(),
63-
runCheck(JspecifyInlineTypeUseCheck.class, BASE + "NonJspecifyNullableAboveFieldIgnored.java")
63+
runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "NonJspecifyNullableAboveFieldIgnored.java")
6464
);
6565
}
6666

6767
@Test
6868
void nonJspecifyFullyQualifiedNullableIsIgnored() throws Exception {
6969
assertEquals(
7070
List.of(),
71-
runCheck(JspecifyInlineTypeUseCheck.class, BASE + "NonJspecifyFqnNullableAboveFieldIgnored.java")
71+
runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "NonJspecifyFqnNullableAboveFieldIgnored.java")
7272
);
7373
}
7474

7575
@Test
7676
void fullyQualifiedJspecifyNullableAboveFieldFails() throws Exception {
77-
var v = runCheck(JspecifyInlineTypeUseCheck.class, BASE + "JspecifyFqnAboveFieldFails.java");
77+
var v = runCheck(JSpecifyInlineTypeUseCheck.class, BASE + "JspecifyFqnAboveFieldFails.java");
7878
assertEquals(1, v.size(), v.toString());
7979
}
8080
}

src/test/java/it/aboutbits/checkstyle/JspecifyMapStructMapperAnnotationCheckTest.java renamed to src/test/java/it/aboutbits/checkstyle/JSpecifyMapStructMapperAnnotationCheckTest.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,58 +10,58 @@
1010
import static org.junit.jupiter.api.Assertions.assertTrue;
1111

1212
@NullMarked
13-
class JspecifyMapStructMapperAnnotationCheckTest extends CheckTestSupport {
13+
class JSpecifyMapStructMapperAnnotationCheckTest extends CheckTestSupport {
1414

1515
private static final String BASE = "/it/aboutbits/checkstyle/jspecifyMapStructMapperAnnotation/";
1616

1717
@Test
1818
void wellOrderedMapperPasses() throws Exception {
19-
assertEquals(List.of(), runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapper.java"));
19+
assertEquals(List.of(), runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapper.java"));
2020
}
2121

2222
@Test
2323
void mapperWithNamedValueArgumentPasses() throws Exception {
2424
assertEquals(
2525
List.of(),
26-
runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapperNamedValue.java")
26+
runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapperNamedValue.java")
2727
);
2828
}
2929

3030
@Test
3131
void swappedOrderFails() throws Exception {
32-
var v = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "BadOrderSwapped.java");
32+
var v = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "BadOrderSwapped.java");
3333
assertEquals(1, v.size());
3434
assertTrue(v.getFirst().contains("BadOrderSwapped"), v.toString());
3535
}
3636

3737
@Test
3838
void missingAnnotateWithFails() throws Exception {
39-
var v = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "BadMissingAnnotateWith.java");
39+
var v = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "BadMissingAnnotateWith.java");
4040
assertEquals(1, v.size());
4141
}
4242

4343
@Test
4444
void annotateWithWrongClassLiteralFails() throws Exception {
45-
var v = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "BadWrongClassLiteral.java");
45+
var v = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "BadWrongClassLiteral.java");
4646
assertEquals(1, v.size());
4747
}
4848

4949
@Test
5050
void interfaceWithoutMapperIsIgnored() throws Exception {
5151
assertEquals(
5252
List.of(),
53-
runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "NonMapperInterfaceIgnored.java")
53+
runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "NonMapperInterfaceIgnored.java")
5454
);
5555
}
5656

5757
@Test
5858
void customMapperAnnotationNameIsHonored() throws Exception {
5959
var properties = Map.of("mapperAnnotationName", "MyMapper");
6060

61-
var ok = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "CustomMapperGood.java", properties);
61+
var ok = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "CustomMapperGood.java", properties);
6262
assertEquals(List.of(), ok);
6363

64-
var bad = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "CustomMapperBad.java", properties);
64+
var bad = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "CustomMapperBad.java", properties);
6565
assertEquals(1, bad.size());
6666
assertTrue(bad.getFirst().contains("CustomMapperBad"), bad.toString());
6767
}
@@ -70,35 +70,35 @@ void customMapperAnnotationNameIsHonored() throws Exception {
7070
void customAnnotateWithAnnotationNameIsHonored() throws Exception {
7171
var properties = Map.of("annotateWithAnnotationName", "MyAnnotateWith");
7272

73-
var ok = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "CustomAnnotateWithGood.java", properties);
73+
var ok = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "CustomAnnotateWithGood.java", properties);
7474
assertEquals(List.of(), ok);
7575

76-
var bad = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapper.java", properties);
76+
var bad = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapper.java", properties);
7777
assertEquals(1, bad.size(), bad.toString());
7878
}
7979

8080
@Test
8181
void customNullUnmarkedAnnotationNameIsHonored() throws Exception {
8282
var properties = Map.of("nullUnmarkedAnnotationName", "MyUnmarked");
8383

84-
var ok = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "CustomNullUnmarkedGood.java", properties);
84+
var ok = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "CustomNullUnmarkedGood.java", properties);
8585
assertEquals(List.of(), ok);
8686

87-
var bad = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapper.java", properties);
87+
var bad = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "GoodMapper.java", properties);
8888
assertEquals(1, bad.size(), bad.toString());
8989
}
9090

9191
@Test
9292
void wellOrderedAbstractClassMapperPasses() throws Exception {
9393
assertEquals(
9494
List.of(),
95-
runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "GoodAbstractMapper.java")
95+
runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "GoodAbstractMapper.java")
9696
);
9797
}
9898

9999
@Test
100100
void abstractClassMapperWithSwappedOrderFails() throws Exception {
101-
var v = runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "BadAbstractMapperOrderSwapped.java");
101+
var v = runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "BadAbstractMapperOrderSwapped.java");
102102
assertEquals(1, v.size());
103103
assertTrue(v.getFirst().contains("BadAbstractMapperOrderSwapped"), v.toString());
104104
}
@@ -107,7 +107,7 @@ void abstractClassMapperWithSwappedOrderFails() throws Exception {
107107
void nonAbstractClassWithMapperAnnotationIsIgnored() throws Exception {
108108
assertEquals(
109109
List.of(),
110-
runCheck(JspecifyMapStructMapperAnnotationCheck.class, BASE + "NonAbstractClassWithMapperAnnotationIgnored.java")
110+
runCheck(JSpecifyMapStructMapperAnnotationCheck.class, BASE + "NonAbstractClassWithMapperAnnotationIgnored.java")
111111
);
112112
}
113113
}

src/test/java/it/aboutbits/checkstyle/JspecifyOnTopLevelTypesCheckTest.java renamed to src/test/java/it/aboutbits/checkstyle/JSpecifyOnTopLevelTypesCheckTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,50 +9,50 @@
99
import static org.junit.jupiter.api.Assertions.assertTrue;
1010

1111
@NullMarked
12-
class JspecifyOnTopLevelTypesCheckTest extends CheckTestSupport {
12+
class JSpecifyOnTopLevelTypesCheckTest extends CheckTestSupport {
1313

1414
private static final String BASE = "/it/aboutbits/checkstyle/jspecifyOnTopLevelTypes/";
1515

1616
@Test
1717
void classMarkedWithNullMarkedPasses() throws Exception {
18-
var v = runCheck(JspecifyOnTopLevelTypesCheck.class, BASE + "GoodMarked.java");
18+
var v = runCheck(JSpecifyOnTopLevelTypesCheck.class, BASE + "GoodMarked.java");
1919
assertEquals(List.of(), v);
2020
}
2121

2222
@Test
2323
void classMarkedWithNullUnmarkedPasses() throws Exception {
24-
var v = runCheck(JspecifyOnTopLevelTypesCheck.class, BASE + "GoodUnmarked.java");
24+
var v = runCheck(JSpecifyOnTopLevelTypesCheck.class, BASE + "GoodUnmarked.java");
2525
assertEquals(List.of(), v);
2626
}
2727

2828
@Test
2929
void fullyQualifiedJspecifyAnnotationPasses() throws Exception {
30-
var v = runCheck(JspecifyOnTopLevelTypesCheck.class, BASE + "GoodFullyQualified.java");
30+
var v = runCheck(JSpecifyOnTopLevelTypesCheck.class, BASE + "GoodFullyQualified.java");
3131
assertEquals(List.of(), v);
3232
}
3333

3434
@Test
3535
void classWithoutJspecifyAnnotationFails() throws Exception {
36-
var v = runCheck(JspecifyOnTopLevelTypesCheck.class, BASE + "BadMissing.java");
36+
var v = runCheck(JSpecifyOnTopLevelTypesCheck.class, BASE + "BadMissing.java");
3737
assertEquals(1, v.size());
3838
assertTrue(v.getFirst().contains("BadMissing"), v.toString());
3939
}
4040

4141
@Test
4242
void annotationDeclarationIsExempt() throws Exception {
43-
var v = runCheck(JspecifyOnTopLevelTypesCheck.class, BASE + "AnnotationDefExempt.java");
43+
var v = runCheck(JSpecifyOnTopLevelTypesCheck.class, BASE + "AnnotationDefExempt.java");
4444
assertEquals(List.of(), v);
4545
}
4646

4747
@Test
4848
void nestedClassIsNotChecked() throws Exception {
49-
var v = runCheck(JspecifyOnTopLevelTypesCheck.class, BASE + "NestedClassOnly.java");
49+
var v = runCheck(JSpecifyOnTopLevelTypesCheck.class, BASE + "NestedClassOnly.java");
5050
assertEquals(List.of(), v);
5151
}
5252

5353
@Test
5454
void recordWithoutJspecifyFails() throws Exception {
55-
var v = runCheck(JspecifyOnTopLevelTypesCheck.class, BASE + "BadRecord.java");
55+
var v = runCheck(JSpecifyOnTopLevelTypesCheck.class, BASE + "BadRecord.java");
5656
assertEquals(1, v.size());
5757
assertTrue(v.getFirst().contains("BadRecord"), v.toString());
5858
}

0 commit comments

Comments
 (0)