|  | @@ -32,7 +32,6 @@ import java.io.UncheckedIOException;
 | 
	
		
			
				|  |  |  import java.util.Collections;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static java.util.Collections.emptyMap;
 | 
	
		
			
				|  |  | -import static java.util.Collections.singletonMap;
 | 
	
		
			
				|  |  |  import static org.hamcrest.Matchers.equalTo;
 | 
	
		
			
				|  |  |  import static org.hamcrest.Matchers.nullValue;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -41,152 +40,24 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |      public void testBasicAddDelete() {
 | 
	
		
			
				|  |  |          StoredScriptSource source = new StoredScriptSource("lang", "code", emptyMap());
 | 
	
		
			
				|  |  |          ScriptMetaData smd = ScriptMetaData.putStoredScript(null, "test", source);
 | 
	
		
			
				|  |  | +        assertThat(smd.getStoredScript("test"), equalTo(source));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test", null), equalTo(source));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test", "lang"), equalTo(source));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test", null);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test", "lang"), nullValue());
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    public void testDifferentMultiAddDelete() {
 | 
	
		
			
				|  |  | -        StoredScriptSource source0 = new StoredScriptSource("lang0", "code0", emptyMap());
 | 
	
		
			
				|  |  | -        StoredScriptSource source1 = new StoredScriptSource("lang0", "code1", emptyMap());
 | 
	
		
			
				|  |  | -        StoredScriptSource source2 = new StoredScriptSource("lang1", "code2",
 | 
	
		
			
				|  |  | -            singletonMap(Script.CONTENT_TYPE_OPTION, XContentType.JSON.mediaType()));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        ScriptMetaData smd = ScriptMetaData.putStoredScript(null, "test0", source0);
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.putStoredScript(smd, "test1", source1);
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.putStoredScript(smd, "test2", source2);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), equalTo(source0));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), equalTo(source0));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", null), equalTo(source1));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", "lang0"), equalTo(source1));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", null), equalTo(source2));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang1"), equalTo(source2));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test0", null);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", null), equalTo(source1));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", "lang0"), equalTo(source1));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", null), equalTo(source2));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang1"), equalTo(source2));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test2", "lang1");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", null), equalTo(source1));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", "lang0"), equalTo(source1));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test1", "lang0");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test1", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test2", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    public void testSameMultiAddDelete() {
 | 
	
		
			
				|  |  | -        StoredScriptSource source0 = new StoredScriptSource("lang0", "code0", emptyMap());
 | 
	
		
			
				|  |  | -        StoredScriptSource source1 = new StoredScriptSource("lang1", "code1", emptyMap());
 | 
	
		
			
				|  |  | -        StoredScriptSource source2 = new StoredScriptSource("lang2", "code1", emptyMap());
 | 
	
		
			
				|  |  | -        StoredScriptSource source3 = new StoredScriptSource("lang1", "code2",
 | 
	
		
			
				|  |  | -            singletonMap(Script.CONTENT_TYPE_OPTION, XContentType.JSON.mediaType()));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        ScriptMetaData smd = ScriptMetaData.putStoredScript(null, "test0", source0);
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.putStoredScript(smd, "test0", source1);
 | 
	
		
			
				|  |  | -        assertWarnings("stored script [test0] already exists using a different lang [lang0]," +
 | 
	
		
			
				|  |  | -            " the new namespace for stored scripts will only use (id) instead of (lang, id)");
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.putStoredScript(smd, "test3", source3);
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.putStoredScript(smd, "test0", source2);
 | 
	
		
			
				|  |  | -        assertWarnings("stored script [test0] already exists using a different lang [lang1]," +
 | 
	
		
			
				|  |  | -            " the new namespace for stored scripts will only use (id) instead of (lang, id)");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), equalTo(source2));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), equalTo(source0));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), equalTo(source1));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang2"), equalTo(source2));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), equalTo(source3));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", "lang1"), equalTo(source3));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test0", "lang1");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), equalTo(source2));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), equalTo(source0));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang2"), equalTo(source2));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), equalTo(source3));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", "lang1"), equalTo(source3));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test0", null);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), equalTo(source0));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang2"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), equalTo(source3));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", "lang1"), equalTo(source3));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test3", "lang1");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), equalTo(source0));
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang2"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        smd = ScriptMetaData.deleteStoredScript(smd, "test0", "lang0");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang0"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang1"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test0", "lang2"), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", null), nullValue());
 | 
	
		
			
				|  |  | -        assertThat(smd.getStoredScript("test3", "lang1"), nullValue());
 | 
	
		
			
				|  |  | +        smd = ScriptMetaData.deleteStoredScript(smd, "test");
 | 
	
		
			
				|  |  | +        assertThat(smd.getStoredScript("test"), nullValue());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public void testInvalidDelete() {
 | 
	
		
			
				|  |  |          ResourceNotFoundException rnfe =
 | 
	
		
			
				|  |  | -            expectThrows(ResourceNotFoundException.class, () -> ScriptMetaData.deleteStoredScript(null, "test", "lang"));
 | 
	
		
			
				|  |  | -        assertThat(rnfe.getMessage(), equalTo("stored script [test] using lang [lang] does not exist and cannot be deleted"));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        rnfe = expectThrows(ResourceNotFoundException.class, () -> ScriptMetaData.deleteStoredScript(null, "test", null));
 | 
	
		
			
				|  |  | +            expectThrows(ResourceNotFoundException.class, () -> ScriptMetaData.deleteStoredScript(null, "test"));
 | 
	
		
			
				|  |  |          assertThat(rnfe.getMessage(), equalTo("stored script [test] does not exist and cannot be deleted"));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public void testSourceParsing() throws Exception {
 | 
	
		
			
				|  |  |          // simple script value string
 | 
	
		
			
				|  |  |          try (XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)) {
 | 
	
		
			
				|  |  | -            builder.startObject().field("script", "code").endObject();
 | 
	
		
			
				|  |  | +            builder.startObject().startObject("script").field("lang", "lang").field("source", "code").endObject().endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse("lang", builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  |              StoredScriptSource source = new StoredScriptSource("lang", "code", Collections.emptyMap());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
	
		
			
				|  | @@ -196,8 +67,8 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |          try (XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)) {
 | 
	
		
			
				|  |  |              builder.startObject().field("template", "code").endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse("lang", builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | -            StoredScriptSource source = new StoredScriptSource("lang", "code", Collections.emptyMap());
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource source = new StoredScriptSource("mustache", "code", Collections.emptyMap());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -211,8 +82,8 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |                  code = cb.startObject().field("query", "code").endObject().string();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse("lang", builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | -            StoredScriptSource source = new StoredScriptSource("lang", code, Collections.emptyMap());
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource source = new StoredScriptSource("mustache", code, Collections.emptyMap());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -226,23 +97,26 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |                  code = cb.startObject().field("query", "code").endObject().string();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse("lang", builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | -            StoredScriptSource source = new StoredScriptSource("lang", code, Collections.emptyMap());
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource source = new StoredScriptSource("mustache", code, Collections.emptyMap());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // complex template using script as the field name
 | 
	
		
			
				|  |  |          try (XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)) {
 | 
	
		
			
				|  |  | -            builder.startObject().field("script").startObject().field("query", "code").endObject().endObject();
 | 
	
		
			
				|  |  | +            builder.startObject().startObject("script").field("lang", "mustache")
 | 
	
		
			
				|  |  | +                .startObject("source").field("query", "code").endObject()
 | 
	
		
			
				|  |  | +                .endObject().endObject();
 | 
	
		
			
				|  |  |              String code;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              try (XContentBuilder cb = XContentFactory.contentBuilder(builder.contentType())) {
 | 
	
		
			
				|  |  |                  code = cb.startObject().field("query", "code").endObject().string();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse("lang", builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | -            StoredScriptSource source = new StoredScriptSource("lang", code, Collections.emptyMap());
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource source = new StoredScriptSource("mustache", code,
 | 
	
		
			
				|  |  | +                Collections.singletonMap("content_type", "application/json; charset=UTF-8"));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -251,7 +125,7 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |          try (XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)) {
 | 
	
		
			
				|  |  |              builder.startObject().field("script").startObject().field("lang", "lang").field("source", "code").endObject().endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  |              StoredScriptSource source = new StoredScriptSource("lang", "code", Collections.emptyMap());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
	
		
			
				|  | @@ -261,7 +135,7 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |          try (XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)) {
 | 
	
		
			
				|  |  |              builder.startObject().field("script").startObject().field("lang", "lang").field("code", "code").endObject().endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  |              StoredScriptSource source = new StoredScriptSource("lang", "code", Collections.emptyMap());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
	
		
			
				|  | @@ -273,7 +147,7 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |              builder.startObject().field("script").startObject().field("lang", "lang").field("source", "code")
 | 
	
		
			
				|  |  |                  .field("options").startObject().endObject().endObject().endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  |              StoredScriptSource source = new StoredScriptSource("lang", "code", Collections.emptyMap());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              assertThat(parsed, equalTo(source));
 | 
	
	
		
			
				|  | @@ -289,7 +163,7 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |                  code = cb.startObject().field("query", "code").endObject().string();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            StoredScriptSource parsed = StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  | +            StoredScriptSource parsed = StoredScriptSource.parse(builder.bytes(), XContentType.JSON);
 | 
	
		
			
				|  |  |              StoredScriptSource source = new StoredScriptSource("lang", code,
 | 
	
		
			
				|  |  |                  Collections.singletonMap(Script.CONTENT_TYPE_OPTION, builder.contentType().mediaType()));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -298,21 +172,12 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public void testSourceParsingErrors() throws Exception {
 | 
	
		
			
				|  |  | -        // check for missing lang parameter when parsing a template
 | 
	
		
			
				|  |  | -        try (XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)) {
 | 
	
		
			
				|  |  | -            builder.startObject().field("template", "code").endObject();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
 | 
	
		
			
				|  |  | -                StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON));
 | 
	
		
			
				|  |  | -            assertThat(iae.getMessage(), equalTo("unexpected stored script format"));
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          // check for missing lang parameter when parsing a script
 | 
	
		
			
				|  |  |          try (XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)) {
 | 
	
		
			
				|  |  |              builder.startObject().field("script").startObject().field("source", "code").endObject().endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
 | 
	
		
			
				|  |  | -                StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON));
 | 
	
		
			
				|  |  | +                StoredScriptSource.parse(builder.bytes(), XContentType.JSON));
 | 
	
		
			
				|  |  |              assertThat(iae.getMessage(), equalTo("must specify lang for stored script"));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -321,7 +186,7 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |              builder.startObject().field("script").startObject().field("lang", "lang").endObject().endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
 | 
	
		
			
				|  |  | -                StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON));
 | 
	
		
			
				|  |  | +                StoredScriptSource.parse(builder.bytes(), XContentType.JSON));
 | 
	
		
			
				|  |  |              assertThat(iae.getMessage(), equalTo("must specify source for stored script"));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -331,7 +196,7 @@ public class StoredScriptTests extends AbstractSerializingTestCase<StoredScriptS
 | 
	
		
			
				|  |  |                  .startObject("options").field("option", "option").endObject().endObject().endObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () ->
 | 
	
		
			
				|  |  | -                StoredScriptSource.parse(null, builder.bytes(), XContentType.JSON));
 | 
	
		
			
				|  |  | +                StoredScriptSource.parse(builder.bytes(), XContentType.JSON));
 | 
	
		
			
				|  |  |              assertThat(iae.getMessage(), equalTo("illegal compiler options [{option=option}] specified"));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 |