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 =
48+ org .elasticsearch .common .collect .Map .of ("PATTERN2" , "foo2" , "PATTERN1" , "foo1" );
3949
4050 public void testRequest () throws Exception {
41- GrokProcessorGetAction .Request request = new GrokProcessorGetAction .Request ();
51+ GrokProcessorGetAction .Request request = new GrokProcessorGetAction .Request (false );
4252 BytesStreamOutput out = new BytesStreamOutput ();
4353 request .writeTo (out );
4454 StreamInput streamInput = out .bytes ().streamInput ();
@@ -56,15 +66,53 @@ public void testResponseSerialization() throws Exception {
5666 assertThat (response .getGrokPatterns (), equalTo (otherResponse .getGrokPatterns ()));
5767 }
5868
69+ public void testResponseSorting () {
70+ List <String > sortedKeys = new ArrayList <>(TEST_PATTERNS .keySet ());
71+ Collections .sort (sortedKeys );
72+ GrokProcessorGetAction .TransportAction transportAction =
73+ new GrokProcessorGetAction .TransportAction (mock (TransportService .class ), mock (ActionFilters .class ), TEST_PATTERNS );
74+ GrokProcessorGetAction .Response [] receivedResponse = new GrokProcessorGetAction .Response [1 ];
75+ transportAction .doExecute (null , new GrokProcessorGetAction .Request (true ), new ActionListener <GrokProcessorGetAction .Response >() {
76+ @ Override
77+ public void onResponse (GrokProcessorGetAction .Response response ) {
78+ receivedResponse [0 ] = response ;
79+ }
80+
81+ @ Override
82+ public void onFailure (Exception e ) {
83+ fail ();
84+ }
85+ });
86+ assertThat (receivedResponse [0 ], notNullValue ());
87+ assertThat (receivedResponse [0 ].getGrokPatterns ().keySet ().toArray (), equalTo (sortedKeys .toArray ()));
88+
89+ GrokProcessorGetAction .Response firstResponse = receivedResponse [0 ];
90+ transportAction .doExecute (null , new GrokProcessorGetAction .Request (true ), new ActionListener <GrokProcessorGetAction .Response >() {
91+ @ Override
92+ public void onResponse (GrokProcessorGetAction .Response response ) {
93+ receivedResponse [0 ] = response ;
94+ }
95+
96+ @ Override
97+ public void onFailure (Exception e ) {
98+ fail ();
99+ }
100+ });
101+ assertThat (receivedResponse [0 ], notNullValue ());
102+ assertThat (receivedResponse [0 ], not (sameInstance (firstResponse )));
103+ assertThat (receivedResponse [0 ].getGrokPatterns (), sameInstance (firstResponse .getGrokPatterns ()));
104+ }
105+
59106 @ SuppressWarnings ("unchecked" )
60107 public void testResponseToXContent () throws Exception {
61108 GrokProcessorGetAction .Response response = new GrokProcessorGetAction .Response (TEST_PATTERNS );
62109 try (XContentBuilder builder = JsonXContent .contentBuilder ()) {
63110 response .toXContent (builder , ToXContent .EMPTY_PARAMS );
64111 Map <String , Object > converted = XContentHelper .convertToMap (BytesReference .bytes (builder ), false , builder .contentType ()).v2 ();
65112 Map <String , String > patterns = (Map <String , String >) converted .get ("patterns" );
66- assertThat (patterns .size (), equalTo (1 ));
67- assertThat (patterns .get ("PATTERN" ), equalTo ("foo" ));
113+ assertThat (patterns .size (), equalTo (2 ));
114+ assertThat (patterns .get ("PATTERN1" ), equalTo ("foo1" ));
115+ assertThat (patterns .get ("PATTERN2" ), equalTo ("foo2" ));
68116 }
69117 }
70118}
0 commit comments