Skip to content

Commit d31207a

Browse files
authored
Revert "Revert "Change HLRC CCR response tests to use AbstractResponseTestCase base class. (elastic#40257)"" (elastic#40971)
This reverts commit df91237.
1 parent 2e21a11 commit d31207a

File tree

6 files changed

+368
-616
lines changed

6 files changed

+368
-616
lines changed

client/rest-high-level/build.gradle

+3
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ dependencies {
6464
testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}"
6565
//this is needed to make RestHighLevelClientTests#testApiNamingConventions work from IDEs
6666
testCompile "org.elasticsearch:rest-api-spec:${version}"
67+
// Needed for serialization tests:
68+
// (In order to serialize a server side class to a client side class or the other way around)
69+
testCompile "org.elasticsearch.plugin:x-pack-core:${version}"
6770

6871
restSpec "org.elasticsearch:rest-api-spec:${version}"
6972
}

client/rest-high-level/src/test/java/org/elasticsearch/client/ccr/CcrStatsResponseTests.java

+121-290
Large diffs are not rendered by default.

client/rest-high-level/src/test/java/org/elasticsearch/client/ccr/FollowInfoResponseTests.java

+71-41
Original file line numberDiff line numberDiff line change
@@ -19,59 +19,89 @@
1919

2020
package org.elasticsearch.client.ccr;
2121

22-
import org.elasticsearch.client.ccr.FollowInfoResponse.FollowerInfo;
23-
import org.elasticsearch.common.xcontent.ToXContent;
24-
import org.elasticsearch.common.xcontent.XContentBuilder;
25-
import org.elasticsearch.test.ESTestCase;
22+
import org.elasticsearch.client.AbstractResponseTestCase;
23+
import org.elasticsearch.common.unit.ByteSizeValue;
24+
import org.elasticsearch.common.unit.TimeValue;
25+
import org.elasticsearch.common.xcontent.XContentParser;
26+
import org.elasticsearch.xpack.core.ccr.action.FollowInfoAction;
27+
import org.elasticsearch.xpack.core.ccr.action.FollowParameters;
2628

2729
import java.io.IOException;
2830
import java.util.ArrayList;
2931
import java.util.List;
32+
import java.util.Locale;
3033

31-
import static org.elasticsearch.test.AbstractXContentTestCase.xContentTester;
34+
import static org.hamcrest.Matchers.equalTo;
35+
import static org.hamcrest.Matchers.nullValue;
3236

33-
public class FollowInfoResponseTests extends ESTestCase {
37+
public class FollowInfoResponseTests extends AbstractResponseTestCase<FollowInfoAction.Response, FollowInfoResponse> {
3438

35-
public void testFromXContent() throws IOException {
36-
xContentTester(this::createParser,
37-
FollowInfoResponseTests::createTestInstance,
38-
FollowInfoResponseTests::toXContent,
39-
FollowInfoResponse::fromXContent)
40-
.supportsUnknownFields(true)
41-
.test();
42-
}
43-
44-
private static void toXContent(FollowInfoResponse response, XContentBuilder builder) throws IOException {
45-
builder.startObject();
46-
builder.startArray(FollowInfoResponse.FOLLOWER_INDICES_FIELD.getPreferredName());
47-
for (FollowerInfo info : response.getInfos()) {
48-
builder.startObject();
49-
builder.field(FollowerInfo.FOLLOWER_INDEX_FIELD.getPreferredName(), info.getFollowerIndex());
50-
builder.field(FollowerInfo.REMOTE_CLUSTER_FIELD.getPreferredName(), info.getRemoteCluster());
51-
builder.field(FollowerInfo.LEADER_INDEX_FIELD.getPreferredName(), info.getLeaderIndex());
52-
builder.field(FollowerInfo.STATUS_FIELD.getPreferredName(), info.getStatus().getName());
53-
if (info.getParameters() != null) {
54-
builder.startObject(FollowerInfo.PARAMETERS_FIELD.getPreferredName());
55-
{
56-
info.getParameters().toXContentFragment(builder, ToXContent.EMPTY_PARAMS);
57-
}
58-
builder.endObject();
39+
@Override
40+
protected FollowInfoAction.Response createServerTestInstance() {
41+
int numInfos = randomIntBetween(0, 32);
42+
List<FollowInfoAction.Response.FollowerInfo> infos = new ArrayList<>(numInfos);
43+
for (int i = 0; i < numInfos; i++) {
44+
FollowParameters followParameters = null;
45+
if (randomBoolean()) {
46+
followParameters = randomFollowParameters();
5947
}
60-
builder.endObject();
48+
49+
infos.add(new FollowInfoAction.Response.FollowerInfo(randomAlphaOfLength(4), randomAlphaOfLength(4), randomAlphaOfLength(4),
50+
randomFrom(FollowInfoAction.Response.Status.values()), followParameters));
6151
}
62-
builder.endArray();
63-
builder.endObject();
52+
return new FollowInfoAction.Response(infos);
6453
}
6554

66-
private static FollowInfoResponse createTestInstance() {
67-
int numInfos = randomIntBetween(0, 64);
68-
List<FollowerInfo> infos = new ArrayList<>(numInfos);
69-
for (int i = 0; i < numInfos; i++) {
70-
FollowInfoResponse.Status status = randomFrom(FollowInfoResponse.Status.values());
71-
FollowConfig followConfig = randomBoolean() ? FollowConfigTests.createTestInstance() : null;
72-
infos.add(new FollowerInfo(randomAlphaOfLength(4), randomAlphaOfLength(4), randomAlphaOfLength(4), status, followConfig));
55+
static FollowParameters randomFollowParameters() {
56+
FollowParameters followParameters = new FollowParameters();
57+
followParameters.setMaxOutstandingReadRequests(randomIntBetween(0, Integer.MAX_VALUE));
58+
followParameters.setMaxOutstandingWriteRequests(randomIntBetween(0, Integer.MAX_VALUE));
59+
followParameters.setMaxReadRequestOperationCount(randomIntBetween(0, Integer.MAX_VALUE));
60+
followParameters.setMaxWriteRequestOperationCount(randomIntBetween(0, Integer.MAX_VALUE));
61+
followParameters.setMaxReadRequestSize(new ByteSizeValue(randomNonNegativeLong()));
62+
followParameters.setMaxWriteRequestSize(new ByteSizeValue(randomNonNegativeLong()));
63+
followParameters.setMaxWriteBufferCount(randomIntBetween(0, Integer.MAX_VALUE));
64+
followParameters.setMaxWriteBufferSize(new ByteSizeValue(randomNonNegativeLong()));
65+
followParameters.setMaxRetryDelay(new TimeValue(randomNonNegativeLong()));
66+
followParameters.setReadPollTimeout(new TimeValue(randomNonNegativeLong()));
67+
return followParameters;
68+
}
69+
70+
@Override
71+
protected FollowInfoResponse doParseToClientInstance(XContentParser parser) throws IOException {
72+
return FollowInfoResponse.fromXContent(parser);
73+
}
74+
75+
@Override
76+
protected void assertInstances(FollowInfoAction.Response serverTestInstance, FollowInfoResponse clientInstance) {
77+
assertThat(serverTestInstance.getFollowInfos().size(), equalTo(clientInstance.getInfos().size()));
78+
for (int i = 0; i < serverTestInstance.getFollowInfos().size(); i++) {
79+
FollowInfoAction.Response.FollowerInfo serverFollowInfo = serverTestInstance.getFollowInfos().get(i);
80+
FollowInfoResponse.FollowerInfo clientFollowerInfo = clientInstance.getInfos().get(i);
81+
82+
assertThat(serverFollowInfo.getRemoteCluster(), equalTo(clientFollowerInfo.getRemoteCluster()));
83+
assertThat(serverFollowInfo.getLeaderIndex(), equalTo(clientFollowerInfo.getLeaderIndex()));
84+
assertThat(serverFollowInfo.getFollowerIndex(), equalTo(clientFollowerInfo.getFollowerIndex()));
85+
assertThat(serverFollowInfo.getStatus().toString().toLowerCase(Locale.ROOT),
86+
equalTo(clientFollowerInfo.getStatus().getName().toLowerCase(Locale.ROOT)));
87+
88+
FollowParameters serverParams = serverFollowInfo.getParameters();
89+
FollowConfig clientParams = clientFollowerInfo.getParameters();
90+
if (serverParams != null) {
91+
assertThat(serverParams.getMaxReadRequestOperationCount(), equalTo(clientParams.getMaxReadRequestOperationCount()));
92+
assertThat(serverParams.getMaxWriteRequestOperationCount(), equalTo(clientParams.getMaxWriteRequestOperationCount()));
93+
assertThat(serverParams.getMaxOutstandingReadRequests(), equalTo(clientParams.getMaxOutstandingReadRequests()));
94+
assertThat(serverParams.getMaxOutstandingWriteRequests(), equalTo(clientParams.getMaxOutstandingWriteRequests()));
95+
assertThat(serverParams.getMaxReadRequestSize(), equalTo(clientParams.getMaxReadRequestSize()));
96+
assertThat(serverParams.getMaxWriteRequestSize(), equalTo(clientParams.getMaxWriteRequestSize()));
97+
assertThat(serverParams.getMaxWriteBufferCount(), equalTo(clientParams.getMaxWriteBufferCount()));
98+
assertThat(serverParams.getMaxWriteBufferSize(), equalTo(clientParams.getMaxWriteBufferSize()));
99+
assertThat(serverParams.getMaxRetryDelay(), equalTo(clientParams.getMaxRetryDelay()));
100+
assertThat(serverParams.getReadPollTimeout(), equalTo(clientParams.getReadPollTimeout()));
101+
} else {
102+
assertThat(clientParams, nullValue());
103+
}
73104
}
74-
return new FollowInfoResponse(infos);
75105
}
76106

77107
}

0 commit comments

Comments
 (0)