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