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.assertNull;
23 import static org.junit.jupiter.api.Assertions.assertThrows;
24 import static org.mockito.Mockito.spy;
25 import static org.mockito.Mockito.when;
26
27 import java.io.UnsupportedEncodingException;
28 import java.nio.charset.StandardCharsets;
29
30 import org.junit.jupiter.api.Test;
31
32
33
34
35 class UrlDecoderStringLookupTest {
36
37 private static final String DATA = "Hello World!";
38
39 @Test
40 void testAllPercent() {
41 assertEquals(DATA, UrlDecoderStringLookup.INSTANCE.apply("Hello%20World%21"));
42 }
43
44 @Test
45 void testExceptionGettingString() throws UnsupportedEncodingException {
46 final UrlDecoderStringLookup mockLookup = spy(UrlDecoderStringLookup.class);
47 when(mockLookup.decode(DATA, StandardCharsets.UTF_8.displayName()))
48 .thenThrow(UnsupportedEncodingException.class);
49 assertThrows(IllegalArgumentException.class, () -> mockLookup.apply(DATA));
50 }
51
52 @Test
53 void testExclamation() {
54 assertEquals(DATA, UrlDecoderStringLookup.INSTANCE.apply("Hello%20World!"));
55 }
56
57 @Test
58 void testNull() {
59 assertNull(UrlDecoderStringLookup.INSTANCE.apply(null));
60 }
61
62 @Test
63 void testPlus() {
64 assertEquals(DATA, UrlDecoderStringLookup.INSTANCE.apply("Hello+World!"));
65 }
66
67 @Test
68 void testToString() {
69
70 assertFalse(UrlDecoderStringLookup.INSTANCE.toString().isEmpty());
71 }
72
73 }