1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.text.lookup;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertFalse;
22 import static org.junit.jupiter.api.Assertions.assertNotNull;
23 import static org.junit.jupiter.api.Assertions.assertNull;
24 import static org.junit.jupiter.api.Assertions.assertThrows;
25
26 import java.net.URI;
27 import java.nio.charset.StandardCharsets;
28 import java.nio.file.Files;
29 import java.nio.file.Path;
30 import java.nio.file.Paths;
31
32 import org.junit.jupiter.api.Test;
33
34
35
36
37 class UrlStringLookupTest {
38
39 @Test
40 void testBadCharsetName() {
41 assertThrows(IllegalArgumentException.class, () -> UrlStringLookup.INSTANCE.apply("BAD_CHARSET_NAME:BAD_URL"));
42 }
43
44 @Test
45 void testBadEncoding() {
46 assertThrows(IllegalArgumentException.class, () -> UrlStringLookup.INSTANCE.apply("FOO:https://www.google.com"));
47 }
48
49 @Test
50 void testBadUrl() {
51 assertThrows(IllegalArgumentException.class, () -> UrlStringLookup.INSTANCE.apply("UTF-8:BAD_URL"));
52 }
53
54 @Test
55 void testFileScheme() throws Exception {
56 final Path path = Paths.get("src/test/resources/org/apache/commons/text/document.properties");
57 final URI uri = path.toUri();
58
59 final byte[] expectedBytes = Files.readAllBytes(path);
60 final String expectedString = new String(expectedBytes, StandardCharsets.UTF_8);
61 assertEquals(expectedString, UrlStringLookup.INSTANCE.apply("UTF-8:" + uri.toString()));
62 }
63
64 @Test
65 void testHttpScheme() {
66 assertNotNull(UrlStringLookup.INSTANCE.apply("UTF-8:https://www.apache.org"));
67 assertNotNull(UrlStringLookup.INSTANCE.apply("UTF-8:https://www.google.com"));
68 }
69
70 @Test
71 void testMissingUrl() {
72 assertThrows(IllegalArgumentException.class, () -> UrlStringLookup.INSTANCE.apply("UTF-8"));
73 }
74
75 @Test
76 void testNull() {
77 assertNull(UrlStringLookup.INSTANCE.apply(null));
78 }
79
80 @Test
81 void testToString() {
82
83 assertFalse(UrlStringLookup.INSTANCE.toString().isEmpty());
84 }
85
86 }