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 javax.script.ScriptEngineManager;
27
28 import org.junit.jupiter.api.Test;
29
30
31
32
33 class ScriptStringLookupTest {
34
35 private static final String JS_NAME = "JavaScript";
36
37 @Test
38 void testBadEngineName() {
39 assertThrows(IllegalArgumentException.class, () -> ScriptStringLookup.INSTANCE.apply("BAD_ENGINE_NAME:\"Hello World!\""));
40 }
41
42 @Test
43 void testBadScript() {
44 assertThrows(IllegalArgumentException.class, () -> ScriptStringLookup.INSTANCE.apply(JS_NAME + ":X"));
45 }
46
47 @Test
48 void testNoScript() {
49 assertThrows(IllegalArgumentException.class, () -> ScriptStringLookup.INSTANCE.apply("ENGINE_NAME:"));
50 }
51
52 @Test
53 void testNull() {
54 assertNull(ScriptStringLookup.INSTANCE.apply(null));
55 }
56
57 @Test
58 void testOne() {
59 assertEquals("Hello World!", ScriptStringLookup.INSTANCE.apply(JS_NAME + ":\"Hello World!\""));
60 }
61
62 @Test
63 void testSanityCheck() {
64 assertNotNull(new ScriptEngineManager().getEngineByName(JS_NAME), JS_NAME);
65 }
66
67 @Test
68 void testScriptMissingColon() {
69 assertThrows(IllegalArgumentException.class, () -> ScriptStringLookup.INSTANCE.apply("JavaScript=\"test\""));
70 }
71
72 @Test
73 void testScriptUsingMultipleColons() {
74 assertEquals("It Works",
75 ScriptStringLookup.INSTANCE.apply(JS_NAME + ":true ? \"It Works\" : \"It Does Not Work\" "));
76 }
77
78 @Test
79 void testToString() {
80
81 assertFalse(ScriptStringLookup.INSTANCE.toString().isEmpty());
82 }
83
84 }