Skip to content

Commit

Permalink
Adjust randomization in ResolveClusterActionResponseTests to avoid fa…
Browse files Browse the repository at this point in the history
…ilures in testEqualsAndHashcode tests

Fixes elastic#105898
  • Loading branch information
quux00 committed Mar 4, 2024
1 parent 93fd12d commit f3f755c
Showing 1 changed file with 18 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,27 +15,38 @@

import java.util.HashMap;
import java.util.Map;
import java.util.function.Supplier;

public class ResolveClusterActionResponseTests extends AbstractWireSerializingTestCase<ResolveClusterActionResponse> {

@Override
protected ResolveClusterActionResponse createTestInstance() {
return new ResolveClusterActionResponse(randomResolveClusterInfoMap());
return new ResolveClusterActionResponse(randomResolveClusterInfoMap(() -> randomResolveClusterInfo()));
}

private Map<String, ResolveClusterInfo> randomResolveClusterInfoMap() {
private Map<String, ResolveClusterInfo> randomResolveClusterInfoMap(Supplier<ResolveClusterInfo> rcInfoSupplier) {
Map<String, ResolveClusterInfo> infoMap = new HashMap<>();
int numClusters = randomIntBetween(0, 50);
int numClusters = randomIntBetween(0, 100);
if (randomBoolean() || numClusters == 0) {
infoMap.put(RemoteClusterAware.LOCAL_CLUSTER_GROUP_KEY, randomResolveClusterInfo());
infoMap.put(RemoteClusterAware.LOCAL_CLUSTER_GROUP_KEY, rcInfoSupplier.get());
}
for (int i = 0; i < numClusters; i++) {
infoMap.put("remote_" + i, randomResolveClusterInfo());
infoMap.put("remote_" + i, rcInfoSupplier.get());
}
return infoMap;
}

private ResolveClusterInfo randomResolveClusterInfo() {
/**
* Useful for the mutateInstance method to ensure that no the new ResolveClusterInfo will not
* match the original one.
*
* @return version of ResolveClusterInfo that has randomized error strings
*/
static ResolveClusterInfo randomResolveClusterInfoWithErrorString() {
return new ResolveClusterInfo(randomBoolean(), randomBoolean(), randomAlphaOfLength(125));
}

static ResolveClusterInfo randomResolveClusterInfo() {
int val = randomIntBetween(1, 3);
return switch (val) {
case 1 -> new ResolveClusterInfo(false, randomBoolean());
Expand All @@ -52,6 +63,6 @@ protected Writeable.Reader<ResolveClusterActionResponse> instanceReader() {

@Override
protected ResolveClusterActionResponse mutateInstance(ResolveClusterActionResponse response) {
return new ResolveClusterActionResponse(randomResolveClusterInfoMap());
return new ResolveClusterActionResponse(randomResolveClusterInfoMap(() -> randomResolveClusterInfoWithErrorString()));
}
}

0 comments on commit f3f755c

Please sign in to comment.