Skip to content

Commit 3a50ae3

Browse files
authored
Merge pull request #46 from robinst/junit-5
Migrate from JUnit 4 to 5
2 parents 97a76ea + f9be7e6 commit 3a50ae3

File tree

8 files changed

+95
-95
lines changed

8 files changed

+95
-95
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020

2121
<dependencies>
2222
<dependency>
23-
<groupId>junit</groupId>
24-
<artifactId>junit</artifactId>
25-
<version>4.13.1</version>
23+
<groupId>org.junit.jupiter</groupId>
24+
<artifactId>junit-jupiter</artifactId>
25+
<version>5.13.0</version>
2626
<scope>test</scope>
2727
</dependency>
2828
<dependency>

src/test/java/org/nibor/autolink/AutolinkEmailTest.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
package org.nibor.autolink;
22

3-
import org.junit.Test;
4-
import org.junit.runner.RunWith;
5-
import org.junit.runners.Parameterized;
6-
import org.junit.runners.Parameterized.Parameter;
7-
import org.junit.runners.Parameterized.Parameters;
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.params.Parameter;
5+
import org.junit.jupiter.params.ParameterizedClass;
6+
import org.junit.jupiter.params.provider.Arguments;
7+
import org.junit.jupiter.params.provider.MethodSource;
88

9-
import java.util.Arrays;
109
import java.util.EnumSet;
10+
import java.util.Set;
11+
import java.util.stream.Stream;
1112

12-
@RunWith(Parameterized.class)
13+
import static org.junit.jupiter.params.provider.Arguments.arguments;
14+
15+
@ParameterizedClass
16+
@MethodSource("data")
1317
public class AutolinkEmailTest extends AutolinkTestCase {
1418

15-
@Parameters(name = "{2}")
16-
public static Iterable<Object[]> data() {
17-
return Arrays.asList(new Object[][]{
18-
{LinkExtractor.builder().linkTypes(EnumSet.of(LinkType.EMAIL)).build(), true, "email"},
19-
{LinkExtractor.builder().linkTypes(EnumSet.allOf(LinkType.class)).build(), true, "all"},
20-
{LinkExtractor.builder().emailDomainMustHaveDot(false).build(), false, "all, single part domain"}
21-
});
19+
public static Stream<Arguments> data() {
20+
return Stream.of(
21+
arguments(EnumSet.of(LinkType.EMAIL), true),
22+
arguments(EnumSet.allOf(LinkType.class), true),
23+
arguments(EnumSet.allOf(LinkType.class), false)
24+
);
2225
}
2326

2427
@Parameter(0)
25-
public LinkExtractor linkExtractor;
28+
public Set<LinkType> linkTypes;
2629

2730
@Parameter(1)
2831
public boolean domainMustHaveDot;
2932

30-
@Parameter(2)
31-
public String description;
32-
3333
@Test
3434
public void notLinked() {
3535
assertNotLinked("");
@@ -136,7 +136,7 @@ public void replyLevel() {
136136

137137
@Override
138138
protected LinkExtractor getLinkExtractor() {
139-
return linkExtractor;
139+
return LinkExtractor.builder().linkTypes(linkTypes).emailDomainMustHaveDot(domainMustHaveDot).build();
140140
}
141141

142142
private void assertLinked(String input, String expected) {

src/test/java/org/nibor/autolink/AutolinkTestCase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.nibor.autolink;
22

3-
import static org.junit.Assert.assertEquals;
3+
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
45

56
public abstract class AutolinkTestCase {
67

src/test/java/org/nibor/autolink/AutolinkUrlTest.java

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,31 @@
11
package org.nibor.autolink;
22

3-
import org.junit.Test;
4-
import org.junit.runner.RunWith;
5-
import org.junit.runners.Parameterized;
6-
import org.junit.runners.Parameterized.Parameter;
7-
import org.junit.runners.Parameterized.Parameters;
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.params.Parameter;
5+
import org.junit.jupiter.params.ParameterizedClass;
6+
import org.junit.jupiter.params.provider.Arguments;
7+
import org.junit.jupiter.params.provider.MethodSource;
88

9-
import java.util.Arrays;
109
import java.util.EnumSet;
10+
import java.util.Set;
11+
import java.util.stream.Stream;
1112

12-
import static org.junit.Assert.assertEquals;
13+
import static org.junit.jupiter.api.Assertions.assertEquals;
14+
import static org.junit.jupiter.params.provider.Arguments.arguments;
1315

14-
@RunWith(Parameterized.class)
16+
@ParameterizedClass
17+
@MethodSource("data")
1518
public class AutolinkUrlTest extends AutolinkTestCase {
1619

17-
@Parameters(name = "{1}")
18-
public static Iterable<Object[]> data() {
19-
return Arrays.asList(new Object[][]{
20-
{LinkExtractor.builder().linkTypes(EnumSet.of(LinkType.URL)).build(), "URL"},
21-
{LinkExtractor.builder().linkTypes(EnumSet.allOf(LinkType.class)).build(), "all"}
22-
});
20+
public static Stream<Arguments> data() {
21+
return Stream.of(
22+
arguments(EnumSet.of(LinkType.URL)),
23+
arguments(EnumSet.allOf(LinkType.class))
24+
);
2325
}
2426

25-
@Parameter(0)
26-
public LinkExtractor linkExtractor;
27-
28-
@Parameter(1)
29-
public String description;
27+
@Parameter
28+
public Set<LinkType> linkTypes;
3029

3130
@Test
3231
public void notLinked() {
@@ -197,24 +196,24 @@ public void international() {
197196

198197
@Test
199198
public void unicodeWhitespace() {
200-
char[] whitespace = new char[] {
201-
'\u00A0', // no-break space
202-
'\u2000', // en quad
203-
'\u2001', // em quad
204-
'\u2002', // en space
205-
'\u2003', // em space
206-
'\u2004', // three-per-em space
207-
'\u2005', // four-per-em space
208-
'\u2006', // six-per-em space
209-
'\u2007', // figure space
210-
'\u2008', // punctuation space
211-
'\u2009', // thin space
212-
'\u200A', // hair space
213-
'\u2028', // line separator
214-
'\u2029', // paragraph separator
215-
'\u202F', // narrow no-break space
216-
'\u205F', // medium mathematical space
217-
'\u3000', // ideographic space
199+
char[] whitespace = new char[]{
200+
'\u00A0', // no-break space
201+
'\u2000', // en quad
202+
'\u2001', // em quad
203+
'\u2002', // en space
204+
'\u2003', // em space
205+
'\u2004', // three-per-em space
206+
'\u2005', // four-per-em space
207+
'\u2006', // six-per-em space
208+
'\u2007', // figure space
209+
'\u2008', // punctuation space
210+
'\u2009', // thin space
211+
'\u200A', // hair space
212+
'\u2028', // line separator
213+
'\u2029', // paragraph separator
214+
'\u202F', // narrow no-break space
215+
'\u205F', // medium mathematical space
216+
'\u3000', // ideographic space
218217
};
219218

220219
for (char c : whitespace) {
@@ -242,7 +241,7 @@ public void linkToString() {
242241

243242
@Override
244243
protected LinkExtractor getLinkExtractor() {
245-
return linkExtractor;
244+
return LinkExtractor.builder().linkTypes(linkTypes).build();
246245
}
247246

248247
protected void assertLinked(String input, String expected) {

src/test/java/org/nibor/autolink/AutolinkWwwTest.java

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
11
package org.nibor.autolink;
22

3-
import org.junit.Test;
4-
import org.junit.runner.RunWith;
5-
import org.junit.runners.Parameterized;
6-
import org.junit.runners.Parameterized.Parameter;
7-
import org.junit.runners.Parameterized.Parameters;
83

9-
import java.util.Arrays;
4+
import org.junit.jupiter.api.Test;
5+
import org.junit.jupiter.params.Parameter;
6+
import org.junit.jupiter.params.ParameterizedClass;
7+
import org.junit.jupiter.params.provider.Arguments;
8+
import org.junit.jupiter.params.provider.MethodSource;
9+
1010
import java.util.EnumSet;
11+
import java.util.Set;
12+
import java.util.stream.Stream;
13+
14+
import static org.junit.jupiter.params.provider.Arguments.arguments;
1115

12-
@RunWith(Parameterized.class)
16+
@ParameterizedClass
17+
@MethodSource("data")
1318
public class AutolinkWwwTest extends AutolinkTestCase {
1419

15-
@Parameters(name = "{1}")
16-
public static Iterable<Object[]> data() {
17-
return Arrays.asList(new Object[][]{
18-
{LinkExtractor.builder().linkTypes(EnumSet.of(LinkType.WWW)).build(), "WWW"},
19-
{LinkExtractor.builder().linkTypes(EnumSet.allOf(LinkType.class)).build(), "all"}
20-
});
20+
public static Stream<Arguments> data() {
21+
return Stream.of(
22+
arguments(EnumSet.of(LinkType.WWW)),
23+
arguments(EnumSet.allOf(LinkType.class))
24+
);
2125
}
2226

23-
@Parameter(0)
24-
public LinkExtractor linkExtractor;
25-
26-
@Parameter(1)
27-
public String description;
27+
@Parameter
28+
public Set<LinkType> linkTypes;
2829

2930
@Test
3031
public void notLinked() {
@@ -82,7 +83,7 @@ public void replyLevel() {
8283

8384
@Override
8485
protected LinkExtractor getLinkExtractor() {
85-
return linkExtractor;
86+
return LinkExtractor.builder().linkTypes(linkTypes).build();
8687
}
8788

8889
private void assertLinked(String input, String expected) {

src/test/java/org/nibor/autolink/LinkIterableTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package org.nibor.autolink;
22

3-
import org.junit.Test;
3+
import org.junit.jupiter.api.Test;
44

55
import java.util.Iterator;
66
import java.util.NoSuchElementException;
77

8-
import static org.junit.Assert.*;
8+
import static org.junit.jupiter.api.Assertions.*;
99

1010
public class LinkIterableTest {
1111

@@ -27,18 +27,18 @@ public void hasNextOnlyAdvancesOnce() {
2727
assertFalse(iterator.hasNext());
2828
}
2929

30-
@Test(expected = NoSuchElementException.class)
30+
@Test
3131
public void nextThrowsNoSuchElementException() {
3232
Iterable<LinkSpan> iterable = getSingleLinkIterable();
3333
Iterator<LinkSpan> iterator = iterable.iterator();
3434
assertNotNull(iterator.next());
35-
iterator.next();
35+
assertThrows(NoSuchElementException.class, iterator::next);
3636
}
3737

38-
@Test(expected = UnsupportedOperationException.class)
38+
@Test
3939
public void removeUnsupported() {
4040
Iterable<LinkSpan> iterable = getSingleLinkIterable();
41-
iterable.iterator().remove();
41+
assertThrows(UnsupportedOperationException.class, () -> iterable.iterator().remove());
4242
}
4343

4444
private Iterable<LinkSpan> getSingleLinkIterable() {

src/test/java/org/nibor/autolink/SpanIterableTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.nibor.autolink;
22

3-
import org.junit.Test;
3+
import org.junit.jupiter.api.Test;
44

55
import java.util.*;
66

7-
import static org.junit.Assert.*;
7+
import static org.junit.jupiter.api.Assertions.*;
88

99
public class SpanIterableTest {
1010

@@ -40,18 +40,18 @@ public void spanAndLinkSequences() {
4040
extractSpansAsText("http://example.org https://example.com"));
4141
}
4242

43-
@Test(expected = NoSuchElementException.class)
43+
@Test
4444
public void nextThrowsNoSuchElementException() {
4545
Iterable<Span> iterable = extractSpans("test");
4646
Iterator<Span> iterator = iterable.iterator();
4747
assertNotNull(iterator.next());
48-
iterator.next();
48+
assertThrows(NoSuchElementException.class, iterator::next);
4949
}
5050

51-
@Test(expected = UnsupportedOperationException.class)
51+
@Test
5252
public void removeUnsupported() {
5353
Iterable<Span> iterable = extractSpans("test");
54-
iterable.iterator().remove();
54+
assertThrows(UnsupportedOperationException.class, () -> iterable.iterator().remove());
5555
}
5656

5757
private Iterable<Span> extractSpans(String input) {

src/test/java/org/nibor/autolink/UsageExampleTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package org.nibor.autolink;
22

3-
import org.junit.Test;
3+
import org.junit.jupiter.api.Test;
44

55
import java.util.ArrayList;
66
import java.util.EnumSet;
77
import java.util.List;
8-
import java.util.stream.Stream;
98

10-
import static org.junit.Assert.assertEquals;
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
1110

1211
public class UsageExampleTest {
1312

0 commit comments

Comments
 (0)