-
-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathSpanIterableTest.java
More file actions
68 lines (57 loc) · 2.32 KB
/
SpanIterableTest.java
File metadata and controls
68 lines (57 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package org.nibor.autolink;
import org.junit.jupiter.api.Test;
import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
public class SpanIterableTest {
@Test
public void iteratorIsNew() {
Iterable<Span> iterable = extractSpans("test");
assertEquals(4, iterable.iterator().next().getEndIndex());
assertEquals(4, iterable.iterator().next().getEndIndex());
}
@Test
public void hasNextOnlyAdvancesOnce() {
Iterable<Span> iterable = extractSpans("test");
Iterator<Span> iterator = iterable.iterator();
assertTrue(iterator.hasNext());
assertTrue(iterator.hasNext());
assertNotNull(iterator.next());
assertFalse(iterator.hasNext());
assertFalse(iterator.hasNext());
}
@Test
public void spanAndLinkSequences() {
assertEquals(Arrays.asList("test"),
extractSpansAsText("test"));
assertEquals(Arrays.asList("http://example.org"),
extractSpansAsText("http://example.org"));
assertEquals(Arrays.asList("test ", "http://example.org"),
extractSpansAsText("test http://example.org"));
assertEquals(Arrays.asList("http://example.org", " test"),
extractSpansAsText("http://example.org test"));
assertEquals(Arrays.asList("http://example.org", " ", "https://example.com"),
extractSpansAsText("http://example.org https://example.com"));
}
@Test
public void nextThrowsNoSuchElementException() {
Iterable<Span> iterable = extractSpans("test");
Iterator<Span> iterator = iterable.iterator();
assertNotNull(iterator.next());
assertThrows(NoSuchElementException.class, iterator::next);
}
@Test
public void removeUnsupported() {
Iterable<Span> iterable = extractSpans("test");
assertThrows(UnsupportedOperationException.class, () -> iterable.iterator().remove());
}
private Iterable<Span> extractSpans(String input) {
return LinkExtractor.builder().build().extractSpans(input);
}
private List<String> extractSpansAsText(String input) {
List<String> text = new ArrayList<>();
for (Span span : extractSpans(input)) {
text.add(input.substring(span.getBeginIndex(), span.getEndIndex()));
}
return text;
}
}