28
28
import org .elasticsearch .test .AbstractStreamableXContentTestCase ;
29
29
30
30
import java .io .IOException ;
31
+ import java .util .ArrayList ;
31
32
import java .util .Collections ;
32
33
import java .util .HashMap ;
34
+ import java .util .List ;
33
35
import java .util .Map ;
34
36
import java .util .function .Predicate ;
35
37
38
+ import static com .carrotsearch .randomizedtesting .RandomizedTest .randomAsciiLettersOfLength ;
39
+
36
40
37
41
public class FieldCapabilitiesResponseTests extends AbstractStreamableXContentTestCase <FieldCapabilitiesResponse > {
38
42
@@ -48,22 +52,46 @@ protected FieldCapabilitiesResponse createBlankInstance() {
48
52
49
53
@ Override
50
54
protected FieldCapabilitiesResponse createTestInstance () {
51
- Map <String , Map <String , FieldCapabilities >> responses = new HashMap <>();
55
+ if (randomBoolean ()) {
56
+ // merged responses
57
+ Map <String , Map <String , FieldCapabilities >> responses = new HashMap <>();
58
+
59
+ String [] fields = generateRandomStringArray (5 , 10 , false , true );
60
+ assertNotNull (fields );
61
+
62
+ for (String field : fields ) {
63
+ Map <String , FieldCapabilities > typesToCapabilities = new HashMap <>();
64
+ String [] types = generateRandomStringArray (5 , 10 , false , false );
65
+ assertNotNull (types );
66
+
67
+ for (String type : types ) {
68
+ typesToCapabilities .put (type , FieldCapabilitiesTests .randomFieldCaps (field ));
69
+ }
70
+ responses .put (field , typesToCapabilities );
71
+ }
72
+ return new FieldCapabilitiesResponse (responses );
73
+ } else {
74
+ // non-merged responses
75
+ List <FieldCapabilitiesIndexResponse > responses = new ArrayList <>();
76
+ int numResponse = randomIntBetween (0 , 10 );
77
+ for (int i = 0 ; i < numResponse ; i ++) {
78
+ responses .add (createRandomIndexResponse ());
79
+ }
80
+ return new FieldCapabilitiesResponse (responses );
81
+ }
82
+ }
83
+
84
+
85
+ private FieldCapabilitiesIndexResponse createRandomIndexResponse () {
86
+ Map <String , FieldCapabilities > responses = new HashMap <>();
52
87
53
88
String [] fields = generateRandomStringArray (5 , 10 , false , true );
54
89
assertNotNull (fields );
55
90
56
91
for (String field : fields ) {
57
- Map <String , FieldCapabilities > typesToCapabilities = new HashMap <>();
58
- String [] types = generateRandomStringArray (5 , 10 , false , false );
59
- assertNotNull (types );
60
-
61
- for (String type : types ) {
62
- typesToCapabilities .put (type , FieldCapabilitiesTests .randomFieldCaps (field ));
63
- }
64
- responses .put (field , typesToCapabilities );
92
+ responses .put (field , FieldCapabilitiesTests .randomFieldCaps (field ));
65
93
}
66
- return new FieldCapabilitiesResponse ( responses );
94
+ return new FieldCapabilitiesIndexResponse ( randomAsciiLettersOfLength ( 10 ), responses );
67
95
}
68
96
69
97
@ Override
@@ -138,6 +166,11 @@ public void testToXContent() throws IOException {
138
166
"}" ).replaceAll ("\\ s+" , "" ), generatedResponse );
139
167
}
140
168
169
+ public void testEmptyResponse () throws IOException {
170
+ FieldCapabilitiesResponse testInstance = new FieldCapabilitiesResponse ();
171
+ assertSerialization (testInstance );
172
+ }
173
+
141
174
private static FieldCapabilitiesResponse createSimpleResponse () {
142
175
Map <String , FieldCapabilities > titleCapabilities = new HashMap <>();
143
176
titleCapabilities .put ("text" , new FieldCapabilities ("title" , "text" , true , false ));
0 commit comments