summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java
diff options
context:
space:
mode:
authorIsabel Drost-Fromm <isabel.drostfromm@elasticsearch.com>2016-03-29 11:04:02 +0200
committerIsabel Drost-Fromm <isabel.drostfromm@elasticsearch.com>2016-03-29 11:04:02 +0200
commit407e2cdcf93475e2b326228eaf169fa2572d7d8b (patch)
tree3810be0a7ec51b990fef5b2f7a9cb1ecf3557b10 /core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java
parent5dd481bfe3ef81a59217f7809ca51dc4f31b893e (diff)
parentc7bdfb1126d47442f7e12f996eecbb7fab315c2d (diff)
Merge branch 'master' into deprecation/sort-option-reverse-removal
Conflicts: core/src/main/java/org/elasticsearch/search/sort/ScoreSortBuilder.java core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java
Diffstat (limited to 'core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java')
-rw-r--r--core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java b/core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java
index e1d6beecaa..468d01aaec 100644
--- a/core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java
+++ b/core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java
@@ -25,10 +25,19 @@ import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.common.transport.DummyTransportAddress;
+import org.elasticsearch.discovery.zen.ping.ZenPing;
import org.elasticsearch.test.ESTestCase;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
import static org.elasticsearch.discovery.zen.ZenDiscovery.shouldIgnoreOrRejectNewClusterState;
import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.equalTo;
/**
*/
@@ -89,4 +98,34 @@ public class ZenDiscoveryUnitTests extends ESTestCase {
}
assertFalse("should not ignore, because current state doesn't have a master", shouldIgnoreOrRejectNewClusterState(logger, currentState.build(), newState.build()));
}
+
+ public void testFilterNonMasterPingResponse() {
+ ArrayList<ZenPing.PingResponse> responses = new ArrayList<>();
+ ArrayList<DiscoveryNode> masterNodes = new ArrayList<>();
+ ArrayList<DiscoveryNode> allNodes = new ArrayList<>();
+ for (int i = randomIntBetween(10, 20); i >= 0; i--) {
+ Map<String, String> attrs = new HashMap<>();
+ for (String attr : randomSubsetOf(
+ Arrays.asList(DiscoveryNode.INGEST_ATTR, DiscoveryNode.DATA_ATTR, DiscoveryNode.MASTER_ATTR))) {
+ attrs.put(attr, randomBoolean() + "");
+ }
+
+ DiscoveryNode node = new DiscoveryNode("node_" + i, "id_" + i, DummyTransportAddress.INSTANCE, attrs, Version.CURRENT);
+ responses.add(new ZenPing.PingResponse(node, randomBoolean() ? null : node, new ClusterName("test"), randomBoolean()));
+ allNodes.add(node);
+ if (node.isMasterNode()) {
+ masterNodes.add(node);
+ }
+ }
+
+ boolean ignore = randomBoolean();
+ List<ZenPing.PingResponse> filtered = ZenDiscovery.filterPingResponses(
+ responses.toArray(new ZenPing.PingResponse[responses.size()]), ignore, logger);
+ final List<DiscoveryNode> filteredNodes = filtered.stream().map(ZenPing.PingResponse::node).collect(Collectors.toList());
+ if (ignore) {
+ assertThat(filteredNodes, equalTo(masterNodes));
+ } else {
+ assertThat(filteredNodes, equalTo(allNodes));
+ }
+ }
}