1919
2020package org .elasticsearch .ingest .common ;
2121
22+ import org .elasticsearch .action .ActionListener ;
23+ import org .elasticsearch .action .support .ActionFilters ;
2224import org .elasticsearch .common .bytes .BytesReference ;
2325import org .elasticsearch .common .io .stream .BytesStreamOutput ;
2426import org .elasticsearch .common .io .stream .StreamInput ;
2729import org .elasticsearch .common .xcontent .XContentHelper ;
2830import org .elasticsearch .common .xcontent .json .JsonXContent ;
2931import org .elasticsearch .test .ESTestCase ;
32+ import org .elasticsearch .transport .TransportService ;
3033
34+ import java .util .ArrayList ;
3135import java .util .Collections ;
36+ import java .util .List ;
3237import java .util .Map ;
3338
39+ import static org .hamcrest .CoreMatchers .not ;
3440import static org .hamcrest .Matchers .equalTo ;
41+ import static org .hamcrest .Matchers .sameInstance ;
42+ import static org .hamcrest .core .IsNull .notNullValue ;
3543import static org .hamcrest .core .IsNull .nullValue ;
44+ import static org .mockito .Mockito .mock ;
3645
3746public class GrokProcessorGetActionTests extends ESTestCase {
38- private static final Map <String , String > TEST_PATTERNS = Collections . singletonMap ( "PATTERN " , "foo " );
47+ private static final Map <String , String > TEST_PATTERNS = Map . of ( "PATTERN2 " , "foo2" , "PATTERN1" , "foo1 " );
3948
4049 public void testRequest () throws Exception {
41- GrokProcessorGetAction .Request request = new GrokProcessorGetAction .Request ();
50+ GrokProcessorGetAction .Request request = new GrokProcessorGetAction .Request (false );
4251 BytesStreamOutput out = new BytesStreamOutput ();
4352 request .writeTo (out );
4453 StreamInput streamInput = out .bytes ().streamInput ();
@@ -56,15 +65,53 @@ public void testResponseSerialization() throws Exception {
5665 assertThat (response .getGrokPatterns (), equalTo (otherResponse .getGrokPatterns ()));
5766 }
5867
68+ public void testResponseSorting () {
69+ List <String > sortedKeys = new ArrayList <>(TEST_PATTERNS .keySet ());
70+ Collections .sort (sortedKeys );
71+ GrokProcessorGetAction .TransportAction transportAction =
72+ new GrokProcessorGetAction .TransportAction (mock (TransportService .class ), mock (ActionFilters .class ), TEST_PATTERNS );
73+ GrokProcessorGetAction .Response [] receivedResponse = new GrokProcessorGetAction .Response [1 ];
74+ transportAction .doExecute (null , new GrokProcessorGetAction .Request (true ), new ActionListener <>() {
75+ @ Override
76+ public void onResponse (GrokProcessorGetAction .Response response ) {
77+ receivedResponse [0 ] = response ;
78+ }
79+
80+ @ Override
81+ public void onFailure (Exception e ) {
82+ fail ();
83+ }
84+ });
85+ assertThat (receivedResponse [0 ], notNullValue ());
86+ assertThat (receivedResponse [0 ].getGrokPatterns ().keySet ().toArray (), equalTo (sortedKeys .toArray ()));
87+
88+ GrokProcessorGetAction .Response firstResponse = receivedResponse [0 ];
89+ transportAction .doExecute (null , new GrokProcessorGetAction .Request (true ), new ActionListener <>() {
90+ @ Override
91+ public void onResponse (GrokProcessorGetAction .Response response ) {
92+ receivedResponse [0 ] = response ;
93+ }
94+
95+ @ Override
96+ public void onFailure (Exception e ) {
97+ fail ();
98+ }
99+ });
100+ assertThat (receivedResponse [0 ], notNullValue ());
101+ assertThat (receivedResponse [0 ], not (sameInstance (firstResponse )));
102+ assertThat (receivedResponse [0 ].getGrokPatterns (), sameInstance (firstResponse .getGrokPatterns ()));
103+ }
104+
59105 @ SuppressWarnings ("unchecked" )
60106 public void testResponseToXContent () throws Exception {
61107 GrokProcessorGetAction .Response response = new GrokProcessorGetAction .Response (TEST_PATTERNS );
62108 try (XContentBuilder builder = JsonXContent .contentBuilder ()) {
63109 response .toXContent (builder , ToXContent .EMPTY_PARAMS );
64110 Map <String , Object > converted = XContentHelper .convertToMap (BytesReference .bytes (builder ), false , builder .contentType ()).v2 ();
65111 Map <String , String > patterns = (Map <String , String >) converted .get ("patterns" );
66- assertThat (patterns .size (), equalTo (1 ));
67- assertThat (patterns .get ("PATTERN" ), equalTo ("foo" ));
112+ assertThat (patterns .size (), equalTo (2 ));
113+ assertThat (patterns .get ("PATTERN1" ), equalTo ("foo1" ));
114+ assertThat (patterns .get ("PATTERN2" ), equalTo ("foo2" ));
68115 }
69116 }
70117}
0 commit comments