2222import org .elasticsearch .xcontent .XContentParser ;
2323import org .elasticsearch .xcontent .XContentParserConfiguration ;
2424import org .elasticsearch .xcontent .XContentType ;
25+ import org .junit .Assert ;
2526
2627import java .io .IOException ;
2728import java .util .ArrayList ;
@@ -105,7 +106,9 @@ public void testContentParser() throws IOException {
105106 assertEquals ("request body is required" , e .getMessage ());
106107 e = expectThrows (ElasticsearchParseException .class , () -> contentRestRequest ("" , singletonMap ("source" , "{}" )).contentParser ());
107108 assertEquals ("request body is required" , e .getMessage ());
108- assertEquals (emptyMap (), contentRestRequest ("{}" , emptyMap ()).contentParser ().map ());
109+ try (XContentParser parser = contentRestRequest ("{}" , emptyMap ()).contentParser ()) {
110+ assertEquals (emptyMap (), parser .map ());
111+ }
109112 e = expectThrows (ElasticsearchParseException .class , () -> contentRestRequest ("" , emptyMap (), emptyMap ()).contentParser ());
110113 assertEquals ("request body is required" , e .getMessage ());
111114 }
@@ -170,29 +173,37 @@ public void testParamAsIntegerWithNonIntegerParameter() {
170173 assertThrows (IllegalArgumentException .class , () -> restRequest .paramAsInteger (parameterKey , defaultValue ));
171174 }
172175
173- public void testContentOrSourceParam () throws IOException {
176+ public void testContentOrSourceParam () {
174177 Exception e = expectThrows (ElasticsearchParseException .class , () -> contentRestRequest ("" , emptyMap ()).contentOrSourceParam ());
175178 assertEquals ("request body or source parameter is required" , e .getMessage ());
176- assertEquals (new BytesArray ("stuff" ), contentRestRequest ("stuff" , emptyMap ()).contentOrSourceParam ().v2 ());
177- assertEquals (
178- new BytesArray ("stuff" ),
179- contentRestRequest ("stuff" , Map .of ("source" , "stuff2" , "source_content_type" , "application/json" )).contentOrSourceParam ().v2 ()
180- );
181- assertEquals (
182- new BytesArray ("{\" foo\" : \" stuff\" }" ),
183- contentRestRequest ("" , Map .of ("source" , "{\" foo\" : \" stuff\" }" , "source_content_type" , "application/json" ))
184- .contentOrSourceParam ()
185- .v2 ()
186- );
179+ try (ReleasableBytesReference ref = contentRestRequest ("stuff" , emptyMap ()).contentOrSourceParam ().v2 ()) {
180+ assertEquals ("stuff" , ref .utf8ToString ());
181+ }
182+ try (
183+ ReleasableBytesReference ref = contentRestRequest (
184+ "stuff" ,
185+ Map .of ("source" , "stuff2" , "source_content_type" , "application/json" )
186+ ).contentOrSourceParam ().v2 ()
187+ ) {
188+ assertEquals ("stuff" , ref .utf8ToString ());
189+ }
190+ try (
191+ ReleasableBytesReference ref = contentRestRequest (
192+ "" ,
193+ Map .of ("source" , "{\" foo\" : \" stuff\" }" , "source_content_type" , "application/json" )
194+ ).contentOrSourceParam ().v2 ()
195+ ) {
196+ assertEquals ("{\" foo\" : \" stuff\" }" , ref .utf8ToString ());
197+ }
187198 e = expectThrows (ValidationException .class , () -> contentRestRequest ("" , Map .of ("source" , "stuff2" )).contentOrSourceParam ());
188199 assertThat (e .getMessage (), containsString ("source and source_content_type parameters are required" ));
189200 }
190201
191- public void testHasContentOrSourceParam () throws IOException {
192- assertEquals ( false , contentRestRequest ("" , emptyMap ()).hasContentOrSourceParam ());
193- assertEquals ( true , contentRestRequest ("stuff" , emptyMap ()).hasContentOrSourceParam ());
194- assertEquals ( true , contentRestRequest ("stuff" , singletonMap ("source" , "stuff2" )).hasContentOrSourceParam ());
195- assertEquals ( true , contentRestRequest ("" , singletonMap ("source" , "stuff" )).hasContentOrSourceParam ());
202+ public void testHasContentOrSourceParam () {
203+ assertFalse ( contentRestRequest ("" , emptyMap ()).hasContentOrSourceParam ());
204+ assertTrue ( contentRestRequest ("stuff" , emptyMap ()).hasContentOrSourceParam ());
205+ assertTrue ( contentRestRequest ("stuff" , singletonMap ("source" , "stuff2" )).hasContentOrSourceParam ());
206+ assertTrue ( contentRestRequest ("" , singletonMap ("source" , "stuff" )).hasContentOrSourceParam ());
196207 }
197208
198209 public void testContentOrSourceParamParser () throws IOException {
@@ -201,16 +212,25 @@ public void testContentOrSourceParamParser() throws IOException {
201212 () -> contentRestRequest ("" , emptyMap ()).contentOrSourceParamParser ()
202213 );
203214 assertEquals ("request body or source parameter is required" , e .getMessage ());
204- assertEquals (emptyMap (), contentRestRequest ("{}" , emptyMap ()).contentOrSourceParamParser ().map ());
205- assertEquals (emptyMap (), contentRestRequest ("{}" , singletonMap ("source" , "stuff2" )).contentOrSourceParamParser ().map ());
206- assertEquals (
207- emptyMap (),
208- contentRestRequest ("" , Map .of ("source" , "{}" , "source_content_type" , "application/json" )).contentOrSourceParamParser ().map ()
209- );
215+
216+ try (XContentParser parser = contentRestRequest ("{}" , emptyMap ()).contentOrSourceParamParser ()) {
217+ assertEquals (emptyMap (), parser .map ());
218+ }
219+
220+ try (XContentParser parser = contentRestRequest ("{}" , singletonMap ("source" , "stuff2" )).contentOrSourceParamParser ()) {
221+ assertEquals (emptyMap (), parser .map ());
222+ }
223+
224+ try (
225+ XContentParser parser = contentRestRequest ("" , Map .of ("source" , "{}" , "source_content_type" , "application/json" ))
226+ .contentOrSourceParamParser ()
227+ ) {
228+ assertEquals (emptyMap (), parser .map ());
229+ }
210230 }
211231
212232 public void testWithContentOrSourceParamParserOrNull () throws IOException {
213- contentRestRequest ("" , emptyMap ()).withContentOrSourceParamParserOrNull (parser -> assertNull ( parser ) );
233+ contentRestRequest ("" , emptyMap ()).withContentOrSourceParamParserOrNull (Assert :: assertNull );
214234 contentRestRequest ("{}" , emptyMap ()).withContentOrSourceParamParserOrNull (parser -> assertEquals (emptyMap (), parser .map ()));
215235 contentRestRequest ("{}" , singletonMap ("source" , "stuff2" )).withContentOrSourceParamParserOrNull (
216236 parser -> assertEquals (emptyMap (), parser .map ())
@@ -289,11 +309,17 @@ public void testMultipleContentTypeHeaders() {
289309 public void testRequiredContent () {
290310 Exception e = expectThrows (ElasticsearchParseException .class , () -> contentRestRequest ("" , emptyMap ()).requiredContent ());
291311 assertEquals ("request body is required" , e .getMessage ());
292- assertEquals (new BytesArray ("stuff" ), contentRestRequest ("stuff" , emptyMap ()).requiredContent ());
293- assertEquals (
294- new BytesArray ("stuff" ),
295- contentRestRequest ("stuff" , Map .of ("source" , "stuff2" , "source_content_type" , "application/json" )).requiredContent ()
296- );
312+ try (ReleasableBytesReference ref = contentRestRequest ("stuff" , emptyMap ()).requiredContent ()) {
313+ assertEquals ("stuff" , ref .utf8ToString ());
314+ }
315+ try (
316+ ReleasableBytesReference ref = contentRestRequest (
317+ "stuff" ,
318+ Map .of ("source" , "stuff2" , "source_content_type" , "application/json" )
319+ ).requiredContent ()
320+ ) {
321+ assertEquals ("stuff" , ref .utf8ToString ());
322+ }
297323 e = expectThrows (
298324 ElasticsearchParseException .class ,
299325 () -> contentRestRequest ("" , Map .of ("source" , "{\" foo\" : \" stuff\" }" , "source_content_type" , "application/json" ))
@@ -307,7 +333,7 @@ public void testRequiredContent() {
307333 public void testIsServerlessRequest () {
308334 RestRequest request1 = contentRestRequest ("content" , new HashMap <>());
309335 request1 .markAsServerlessRequest ();
310- assertEquals (request1 .param (SERVERLESS_REQUEST ), "true" );
336+ assertEquals ("true" , request1 .param (SERVERLESS_REQUEST ));
311337 assertTrue (request1 .isServerlessRequest ());
312338 IllegalArgumentException exception = expectThrows (IllegalArgumentException .class , request1 ::markAsServerlessRequest );
313339 assertThat (exception .getMessage (), is ("The parameter [" + SERVERLESS_REQUEST + "] is already defined." ));
@@ -320,7 +346,7 @@ public void testIsServerlessRequest() {
320346 public void testIsOperatorRequest () {
321347 RestRequest request1 = contentRestRequest ("content" , new HashMap <>());
322348 request1 .markAsOperatorRequest ();
323- assertEquals (request1 .param (OPERATOR_REQUEST ), "true" );
349+ assertEquals ("true" , request1 .param (OPERATOR_REQUEST ));
324350 assertTrue (request1 .isOperatorRequest ());
325351 IllegalArgumentException exception = expectThrows (IllegalArgumentException .class , request1 ::markAsOperatorRequest );
326352 assertThat (exception .getMessage (), is ("The parameter [" + OPERATOR_REQUEST + "] is already defined." ));
0 commit comments