diff options
author | Isabel Drost-Fromm <isabel.drostfromm@elasticsearch.com> | 2016-03-29 11:04:02 +0200 |
---|---|---|
committer | Isabel Drost-Fromm <isabel.drostfromm@elasticsearch.com> | 2016-03-29 11:04:02 +0200 |
commit | 407e2cdcf93475e2b326228eaf169fa2572d7d8b (patch) | |
tree | 3810be0a7ec51b990fef5b2f7a9cb1ecf3557b10 /core/src/test/java/org/elasticsearch/discovery/zen/ZenDiscoveryUnitTests.java | |
parent | 5dd481bfe3ef81a59217f7809ca51dc4f31b893e (diff) | |
parent | c7bdfb1126d47442f7e12f996eecbb7fab315c2d (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.java | 39 |
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)); + } + } } |