88
99package org .opensearch .plugin .wlm .rest ;
1010
11+ import org .opensearch .action .support .master .AcknowledgedResponse ;
12+ import org .opensearch .client .node .NodeClient ;
13+ import org .opensearch .common .CheckedConsumer ;
14+ import org .opensearch .common .unit .TimeValue ;
15+ import org .opensearch .plugin .wlm .action .DeleteQueryGroupAction ;
16+ import org .opensearch .plugin .wlm .action .DeleteQueryGroupRequest ;
17+ import org .opensearch .rest .RestChannel ;
1118import org .opensearch .rest .RestHandler ;
19+ import org .opensearch .rest .RestRequest ;
20+ import org .opensearch .rest .action .RestToXContentListener ;
1221import org .opensearch .test .OpenSearchTestCase ;
22+ import org .opensearch .test .rest .FakeRestRequest ;
1323
1424import java .util .List ;
1525
26+ import org .mockito .ArgumentCaptor ;
27+
28+ import static org .opensearch .plugin .wlm .QueryGroupTestUtils .NAME_ONE ;
1629import static org .opensearch .rest .RestRequest .Method .DELETE ;
30+ import static org .mockito .ArgumentMatchers .any ;
31+ import static org .mockito .ArgumentMatchers .eq ;
32+ import static org .mockito .Mockito .doNothing ;
33+ import static org .mockito .Mockito .doReturn ;
34+ import static org .mockito .Mockito .mock ;
35+ import static org .mockito .Mockito .spy ;
36+ import static org .mockito .Mockito .verify ;
1737
1838public class RestDeleteQueryGroupActionTests extends OpenSearchTestCase {
19-
2039 /**
2140 * Test case to validate the construction for RestDeleteQueryGroupAction
2241 */
@@ -30,4 +49,37 @@ public void testConstruction() {
3049 assertEquals (DELETE , route .getMethod ());
3150 assertEquals ("_wlm/query_group/{name}" , route .getPath ());
3251 }
52+
53+ /**
54+ * Test case to validate the prepareRequest logic for RestDeleteQueryGroupAction
55+ */
56+ @ SuppressWarnings ("unchecked" )
57+ public void testPrepareRequest () throws Exception {
58+ RestDeleteQueryGroupAction restDeleteQueryGroupAction = new RestDeleteQueryGroupAction ();
59+ NodeClient nodeClient = mock (NodeClient .class );
60+ RestRequest realRequest = new FakeRestRequest ();
61+ realRequest .params ().put ("name" , NAME_ONE );
62+ ;
63+ RestRequest spyRequest = spy (realRequest );
64+
65+ doReturn (TimeValue .timeValueSeconds (30 )).when (spyRequest ).paramAsTime (eq ("cluster_manager_timeout" ), any (TimeValue .class ));
66+ doReturn (TimeValue .timeValueSeconds (60 )).when (spyRequest ).paramAsTime (eq ("timeout" ), any (TimeValue .class ));
67+
68+ CheckedConsumer <RestChannel , Exception > consumer = restDeleteQueryGroupAction .prepareRequest (spyRequest , nodeClient );
69+ assertNotNull (consumer );
70+ ArgumentCaptor <DeleteQueryGroupRequest > requestCaptor = ArgumentCaptor .forClass (DeleteQueryGroupRequest .class );
71+ ArgumentCaptor <RestToXContentListener <AcknowledgedResponse >> listenerCaptor = ArgumentCaptor .forClass (RestToXContentListener .class );
72+ doNothing ().when (nodeClient ).execute (eq (DeleteQueryGroupAction .INSTANCE ), requestCaptor .capture (), listenerCaptor .capture ());
73+
74+ consumer .accept (mock (RestChannel .class ));
75+ DeleteQueryGroupRequest capturedRequest = requestCaptor .getValue ();
76+ assertEquals (NAME_ONE , capturedRequest .getName ());
77+ assertEquals (TimeValue .timeValueSeconds (30 ), capturedRequest .clusterManagerNodeTimeout ());
78+ assertEquals (TimeValue .timeValueSeconds (60 ), capturedRequest .timeout ());
79+ verify (nodeClient ).execute (
80+ eq (DeleteQueryGroupAction .INSTANCE ),
81+ any (DeleteQueryGroupRequest .class ),
82+ any (RestToXContentListener .class )
83+ );
84+ }
3385}
0 commit comments