/*
* JBoss, Home of Professional Open Source
* Copyright 2012 Red Hat Inc. and/or its affiliates and other contributors
* as indicated by the @authors tag. All rights reserved.
*/
package org.jboss.elasticsearch.river.remote.mgm.incrementalupdate;
import java.io.IOException;
import junit.framework.Assert;
import org.elasticsearch.Version;
import org.elasticsearch.cluster.ClusterName;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.common.io.stream.BytesStreamInput;
import org.elasticsearch.common.io.stream.BytesStreamOutput;
import org.elasticsearch.common.transport.DummyTransportAddress;
import org.junit.Test;
/**
* Unit test for {@link IncrementalUpdateResponse}.
*
* @author Vlastimil Elias (velias at redhat dot com)
*/
public class IncrementalUpdateResponseTest {
@Test
public void getSuccessNodeResponse() {
IncrementalUpdateResponse tested = new IncrementalUpdateResponse(new ClusterName("cl"), null);
Assert.assertNull(tested.getSuccessNodeResponse());
NodeIncrementalUpdateResponse[] nodes = new NodeIncrementalUpdateResponse[] {};
tested = new IncrementalUpdateResponse(new ClusterName("cl"), nodes);
Assert.assertNull(tested.getSuccessNodeResponse());
nodes = new NodeIncrementalUpdateResponse[] { new NodeIncrementalUpdateResponse(new DiscoveryNode("nd1",
DummyTransportAddress.INSTANCE, Version.CURRENT), false, false, null) };
tested = new IncrementalUpdateResponse(new ClusterName("cl"), nodes);
Assert.assertNull(tested.getSuccessNodeResponse());
nodes = new NodeIncrementalUpdateResponse[] {
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd1", DummyTransportAddress.INSTANCE, Version.CURRENT),
false, false, null),
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd2", DummyTransportAddress.INSTANCE, Version.CURRENT),
false, false, null),
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd3", DummyTransportAddress.INSTANCE, Version.CURRENT),
false, false, null) };
tested = new IncrementalUpdateResponse(new ClusterName("cl"), nodes);
Assert.assertNull(tested.getSuccessNodeResponse());
nodes = new NodeIncrementalUpdateResponse[] {
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd1", DummyTransportAddress.INSTANCE, Version.CURRENT),
false, false, null),
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd2", DummyTransportAddress.INSTANCE, Version.CURRENT),
true, false, null),
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd3", DummyTransportAddress.INSTANCE, Version.CURRENT),
false, false, null) };
tested = new IncrementalUpdateResponse(new ClusterName("cl"), nodes);
NodeIncrementalUpdateResponse r = tested.getSuccessNodeResponse();
Assert.assertNotNull(r);
Assert.assertEquals("nd2", r.getNode().getId());
}
@Test
public void serialization() throws IOException {
NodeIncrementalUpdateResponse[] nodes = new NodeIncrementalUpdateResponse[] {
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd1", DummyTransportAddress.INSTANCE, Version.CURRENT),
false, false, null),
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd2", DummyTransportAddress.INSTANCE, Version.CURRENT),
false, false, null),
new NodeIncrementalUpdateResponse(new DiscoveryNode("nd3", DummyTransportAddress.INSTANCE, Version.CURRENT),
true, true, "ORG") };
IncrementalUpdateResponse testedSrc = new IncrementalUpdateResponse(new ClusterName("cl"), nodes);
BytesStreamOutput out = new BytesStreamOutput();
testedSrc.writeTo(out);
IncrementalUpdateResponse testedTarget = new IncrementalUpdateResponse();
testedTarget.readFrom(new BytesStreamInput(out.bytes()));
Assert.assertEquals(3, testedTarget.getNodes().length);
NodeIncrementalUpdateResponse r = testedTarget.getSuccessNodeResponse();
Assert.assertNotNull(r);
Assert.assertEquals("nd3", r.getNode().getId());
Assert.assertTrue(r.isRiverFound());
Assert.assertTrue(r.spaceFound);
Assert.assertEquals("ORG", r.reindexedSpaces);
}
}