19
19
import org .elasticsearch .xpack .core .watcher .watch .Payload .XContent ;
20
20
21
21
import java .io .IOException ;
22
- import java .util .ArrayList ;
23
22
import java .util .List ;
24
23
import java .util .Map ;
25
24
25
+ import static org .hamcrest .Matchers .equalTo ;
26
+ import static org .hamcrest .Matchers .is ;
27
+ import static org .hamcrest .Matchers .nullValue ;
28
+
26
29
public class GetTransformActionResponseTests extends AbstractWireSerializingTransformTestCase <Response > {
27
30
28
31
public static Response randomTransformResponse () {
29
- List <TransformConfig > configs = new ArrayList <>();
30
- int totalConfigs = randomInt (10 );
31
- for (int i = 0 ; i < totalConfigs ; ++i ) {
32
- configs .add (TransformConfigTests .randomTransformConfig ());
33
- }
32
+ List <TransformConfig > configs = randomList (0 , 10 , () -> TransformConfigTests .randomTransformConfig ());
33
+ List <Response .Error > errors = randomBoolean () ? randomList (1 , 5 , () -> randomError ()) : null ;
34
+ return new Response (configs , randomNonNegativeLong (), errors );
35
+ }
34
36
35
- return new Response (configs , randomNonNegativeLong ());
37
+ private static Response .Error randomError () {
38
+ return new Response .Error (randomAlphaOfLengthBetween (1 , 10 ), randomAlphaOfLengthBetween (1 , 20 ));
36
39
}
37
40
38
41
public void testInvalidTransforms () throws IOException {
39
- List <TransformConfig > transforms = new ArrayList <>();
40
-
41
- transforms . add ( TransformConfigTests .randomTransformConfig ());
42
- transforms . add ( TransformConfigTests .randomInvalidTransformConfig ());
43
- transforms . add ( TransformConfigTests .randomTransformConfig ());
44
- transforms . add ( TransformConfigTests . randomInvalidTransformConfig () );
42
+ List <TransformConfig > transforms = List . of (
43
+ TransformConfigTests . randomTransformConfig ( "valid-transform-1" ),
44
+ TransformConfigTests .randomInvalidTransformConfig ( "invalid-transform-1" ),
45
+ TransformConfigTests .randomTransformConfig ( "valid-transform-2" ),
46
+ TransformConfigTests .randomInvalidTransformConfig ( "invalid-transform-2" )
47
+ );
45
48
46
- Response r = new Response (transforms , transforms .size ());
49
+ Response r = new Response (transforms , transforms .size (), null );
47
50
XContentBuilder builder = XContentFactory .contentBuilder (randomFrom (XContentType .values ()));
48
51
r .toXContent (builder , XContent .EMPTY_PARAMS );
49
52
Map <String , Object > responseAsMap = createParser (builder ).map ();
50
53
assertEquals (2 , XContentMapValues .extractValue ("invalid_transforms.count" , responseAsMap ));
51
- List <String > expectedInvalidTransforms = new ArrayList <>();
52
- expectedInvalidTransforms .add (transforms .get (1 ).getId ());
53
- expectedInvalidTransforms .add (transforms .get (3 ).getId ());
54
+ List <String > expectedInvalidTransforms = List .of ("invalid-transform-1" , "invalid-transform-2" );
54
55
assertEquals (expectedInvalidTransforms , XContentMapValues .extractValue ("invalid_transforms.transforms" , responseAsMap ));
55
56
assertWarnings (LoggerMessageFormat .format (Response .INVALID_TRANSFORMS_DEPRECATION_WARNING , 2 ));
56
57
}
57
58
59
+ public void testErrors () throws IOException {
60
+ List <Response .Error > errors = List .of (
61
+ new Response .Error ("error-type-1" , "error-message-1" ),
62
+ new Response .Error ("error-type-2" , "error-message-2" ),
63
+ new Response .Error ("error-type-3" , "error-message-3" )
64
+ );
65
+
66
+ Response r = new Response (List .of (), 0 , errors );
67
+ XContentBuilder builder = XContentFactory .contentBuilder (randomFrom (XContentType .values ()));
68
+ r .toXContent (builder , XContent .EMPTY_PARAMS );
69
+ Map <String , Object > responseAsMap = createParser (builder ).map ();
70
+ assertThat (XContentMapValues .extractValue ("invalid_transforms" , responseAsMap ), is (nullValue ()));
71
+ assertThat (
72
+ XContentMapValues .extractValue ("errors" , responseAsMap ),
73
+ is (
74
+ equalTo (
75
+ List .of (
76
+ Map .of ("type" , "error-type-1" , "reason" , "error-message-1" ),
77
+ Map .of ("type" , "error-type-2" , "reason" , "error-message-2" ),
78
+ Map .of ("type" , "error-type-3" , "reason" , "error-message-3" )
79
+ )
80
+ )
81
+ )
82
+ );
83
+ ensureNoWarnings ();
84
+ }
85
+
86
+ public void testBothInvalidConfigsAndErrors () throws IOException {
87
+ List <TransformConfig > transforms = List .of (TransformConfigTests .randomInvalidTransformConfig ("invalid-transform-7" ));
88
+ List <Response .Error > errors = List .of (
89
+ new Response .Error ("error-type-1" , "error-message-1" ),
90
+ new Response .Error ("error-type-2" , "error-message-2" ),
91
+ new Response .Error ("error-type-3" , "error-message-3" )
92
+ );
93
+
94
+ Response r = new Response (transforms , transforms .size (), errors );
95
+ XContentBuilder builder = XContentFactory .contentBuilder (randomFrom (XContentType .values ()));
96
+ r .toXContent (builder , XContent .EMPTY_PARAMS );
97
+ Map <String , Object > responseAsMap = createParser (builder ).map ();
98
+ assertThat (XContentMapValues .extractValue ("invalid_transforms.count" , responseAsMap ), is (equalTo (1 )));
99
+ assertThat (
100
+ XContentMapValues .extractValue ("invalid_transforms.transforms" , responseAsMap ),
101
+ is (equalTo (List .of ("invalid-transform-7" )))
102
+ );
103
+ assertThat (
104
+ XContentMapValues .extractValue ("errors" , responseAsMap ),
105
+ is (
106
+ equalTo (
107
+ List .of (
108
+ Map .of ("type" , "error-type-1" , "reason" , "error-message-1" ),
109
+ Map .of ("type" , "error-type-2" , "reason" , "error-message-2" ),
110
+ Map .of ("type" , "error-type-3" , "reason" , "error-message-3" )
111
+ )
112
+ )
113
+ )
114
+ );
115
+ assertWarnings (LoggerMessageFormat .format (Response .INVALID_TRANSFORMS_DEPRECATION_WARNING , 1 ));
116
+ }
117
+
58
118
@ SuppressWarnings ("unchecked" )
59
119
public void testNoHeaderInResponse () throws IOException {
60
- List <TransformConfig > transforms = new ArrayList <>();
61
- int totalConfigs = randomInt (10 );
62
-
63
- for (int i = 0 ; i < totalConfigs ; ++i ) {
64
- transforms .add (TransformConfigTests .randomTransformConfig ());
65
- }
120
+ List <TransformConfig > transforms = randomList (0 , 10 , () -> TransformConfigTests .randomTransformConfig ());
66
121
67
- Response r = new Response (transforms , transforms .size ());
122
+ Response r = new Response (transforms , transforms .size (), null );
68
123
XContentBuilder builder = XContentFactory .contentBuilder (randomFrom (XContentType .values ()));
69
124
r .toXContent (builder , XContent .EMPTY_PARAMS );
70
125
Map <String , Object > responseAsMap = createParser (builder ).map ();
@@ -79,7 +134,7 @@ public void testNoHeaderInResponse() throws IOException {
79
134
for (int i = 0 ; i < transforms .size (); ++i ) {
80
135
assertArrayEquals (
81
136
transforms .get (i ).getSource ().getIndex (),
82
- ((ArrayList <String >) XContentMapValues .extractValue ("source.index" , transformsResponse .get (i ))).toArray (new String [0 ])
137
+ ((List <String >) XContentMapValues .extractValue ("source.index" , transformsResponse .get (i ))).toArray (new String [0 ])
83
138
);
84
139
assertEquals (null , XContentMapValues .extractValue ("headers" , transformsResponse .get (i )));
85
140
}
0 commit comments