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