|
@@ -18,6 +18,15 @@
|
|
|
*/
|
|
|
package org.elasticsearch.script.mustache;
|
|
|
|
|
|
+import org.elasticsearch.common.bytes.BytesReference;
|
|
|
+import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
|
+import org.elasticsearch.common.xcontent.XContentHelper;
|
|
|
+import org.elasticsearch.script.ScriptEngine;
|
|
|
+import org.elasticsearch.script.ScriptException;
|
|
|
+import org.elasticsearch.script.TemplateScript;
|
|
|
+import org.elasticsearch.test.ESTestCase;
|
|
|
+import org.hamcrest.Matcher;
|
|
|
+
|
|
|
import java.net.URLEncoder;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.util.Arrays;
|
|
@@ -29,15 +38,6 @@ import java.util.Locale;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
|
|
|
-import com.github.mustachejava.MustacheException;
|
|
|
-import org.elasticsearch.common.bytes.BytesReference;
|
|
|
-import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
|
-import org.elasticsearch.common.xcontent.XContentHelper;
|
|
|
-import org.elasticsearch.script.ScriptEngine;
|
|
|
-import org.elasticsearch.script.TemplateScript;
|
|
|
-import org.elasticsearch.test.ESTestCase;
|
|
|
-import org.hamcrest.Matcher;
|
|
|
-
|
|
|
import static java.util.Collections.singleton;
|
|
|
import static java.util.Collections.singletonMap;
|
|
|
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
|
@@ -225,11 +225,17 @@ public class MustacheTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
public void testsUnsupportedTagsToJson() {
|
|
|
- MustacheException e = expectThrows(MustacheException.class, () -> compile("{{#toJson}}{{foo}}{{bar}}{{/toJson}}"));
|
|
|
+ final String script = "{{#toJson}}{{foo}}{{bar}}{{/toJson}}";
|
|
|
+ ScriptException e = expectThrows(ScriptException.class, () -> compile(script));
|
|
|
assertThat(e.getMessage(), containsString("Mustache function [toJson] must contain one and only one identifier"));
|
|
|
+ assertEquals(MustacheScriptEngine.NAME, e.getLang());
|
|
|
+ assertEquals(script, e.getScript());
|
|
|
|
|
|
- e = expectThrows(MustacheException.class, () -> compile("{{#toJson}}{{/toJson}}"));
|
|
|
+ final String script2 = "{{#toJson}}{{/toJson}}";
|
|
|
+ e = expectThrows(ScriptException.class, () -> compile(script2));
|
|
|
assertThat(e.getMessage(), containsString("Mustache function [toJson] must contain one and only one identifier"));
|
|
|
+ assertEquals(MustacheScriptEngine.NAME, e.getLang());
|
|
|
+ assertEquals(script2, e.getScript());
|
|
|
}
|
|
|
|
|
|
public void testEmbeddedToJSON() throws Exception {
|
|
@@ -312,11 +318,17 @@ public class MustacheTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
public void testsUnsupportedTagsJoin() {
|
|
|
- MustacheException e = expectThrows(MustacheException.class, () -> compile("{{#join}}{{/join}}"));
|
|
|
+ final String script = "{{#join}}{{/join}}";
|
|
|
+ ScriptException e = expectThrows(ScriptException.class, () -> compile(script));
|
|
|
assertThat(e.getMessage(), containsString("Mustache function [join] must contain one and only one identifier"));
|
|
|
+ assertEquals(MustacheScriptEngine.NAME, e.getLang());
|
|
|
+ assertEquals(script, e.getScript());
|
|
|
|
|
|
- e = expectThrows(MustacheException.class, () -> compile("{{#join delimiter='a'}}{{/join delimiter='b'}}"));
|
|
|
+ final String script2 = "{{#join delimiter='a'}}{{/join delimiter='b'}}";
|
|
|
+ e = expectThrows(ScriptException.class, () -> compile(script2));
|
|
|
assertThat(e.getMessage(), containsString("Mismatched start/end tags"));
|
|
|
+ assertEquals(MustacheScriptEngine.NAME, e.getLang());
|
|
|
+ assertEquals(script2, e.getScript());
|
|
|
}
|
|
|
|
|
|
public void testJoinWithCustomDelimiter() {
|