Repository: incubator-ignite Updated Branches: refs/heads/ignite-51 5850e1c3a -> 4c0cc9acc
#ignite-51: Change message test. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4c0cc9ac Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4c0cc9ac Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4c0cc9ac Branch: refs/heads/ignite-51 Commit: 4c0cc9acc033716427ada6293889e49821b07c7b Parents: 5850e1c Author: ivasilinets <ivasilin...@gridgain.com> Authored: Mon Mar 2 18:25:45 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Mon Mar 2 18:25:45 2015 +0300 ---------------------------------------------------------------------- .../communication/GridCacheMessageSelfTest.java | 185 ++++++++++++++++++- 1 file changed, 180 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4c0cc9ac/modules/core/src/test/java/org/apache/ignite/spi/communication/GridCacheMessageSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/GridCacheMessageSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/GridCacheMessageSelfTest.java index 2749030..09eba0a 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/communication/GridCacheMessageSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/GridCacheMessageSelfTest.java @@ -41,6 +41,12 @@ public class GridCacheMessageSelfTest extends GridCommonAbstractTest { return new TestMessage1(); } }); + + GridIoMessageFactory.registerCustom(TestMessage2.DIRECT_TYPE, new CO<Message>() { + @Override public Message apply() { + return new TestMessage2(); + } + }); } public static final String TEST_BODY = "Test body"; @@ -107,11 +113,19 @@ public class GridCacheMessageSelfTest extends GridCommonAbstractTest { assertEquals(count, i); - GridTestMessage msg2 = (GridTestMessage) ((TestMessage1) msg1.message()).message(); + TestMessage2 msg2 = (TestMessage2) msg1.message(); + + assertEquals(TEST_BODY + "_" + i + "_2", msg2.body()); - assertEquals(count, msg2.getMsgId()); + assertEquals(grid(0).localNode().id(), msg2.nodeId()); - assertEquals(grid(1).localNode().id(), msg2.getSourceNodeId()); + assertEquals(i, msg2.id()); + + GridTestMessage msg3 = (GridTestMessage) msg2.message(); + + assertEquals(count, msg3.getMsgId()); + + assertEquals(grid(1).localNode().id(), msg3.getSourceNodeId()); count++; } @@ -125,9 +139,10 @@ public class GridCacheMessageSelfTest extends GridCommonAbstractTest { TestMessage msg = new TestMessage(); for (int i = 0; i < 10; i++) { - TestMessage1 mes1 = new TestMessage1(); + TestMessage2 mes1 = new TestMessage2(); - mes1.init(new GridTestMessage(grid(1).localNode().id(), i, 0), TEST_BODY + "_" + i); + mes1.init(new GridTestMessage(grid(1).localNode().id(), i, 0), + grid(0).localNode().id(), i, TEST_BODY + "_" + i + "_2"); TestMessage1 mes2 = new TestMessage1(); @@ -335,4 +350,164 @@ public class GridCacheMessageSelfTest extends GridCommonAbstractTest { return true; } } + + /** + * Test message class. + */ + static class TestMessage2 extends GridCacheMessage { + /** */ + public static final byte DIRECT_TYPE = (byte) 205; + + /** Node id. */ + private UUID nodeId; + + /** Integer field. */ + private int id; + + /** Body. */ + private String body; + + /** */ + private Message msg; + + /** + * @param mes Message. + */ + public void init(Message mes, UUID nodeId, int id, String body) { + this.nodeId = nodeId; + this.id = id; + this.msg = mes; + this.body = body; + } + + /** + * @return Body. + */ + public String body() { + return body; + } + + /** + * @return Message. + */ + public Message message() { + return msg; + } + + /** + * @return Node id. + */ + public UUID nodeId() { + return nodeId; + } + + /** + * @return Id. + */ + public int id() { + return id; + } + + /** {@inheritDoc} */ + @Override public byte directType() { + return DIRECT_TYPE; + } + + /** {@inheritDoc} */ + @Override public byte fieldsCount() { + return 7; + } + + /** {@inheritDoc} */ + @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { + writer.setBuffer(buf); + + if (!super.writeTo(buf, writer)) + return false; + + if (!writer.isHeaderWritten()) { + if (!writer.writeHeader(directType(), fieldsCount())) + return false; + + writer.onHeaderWritten(); + } + + switch (writer.state()) { + case 3: + if (!writer.writeUuid("nodeId", nodeId)) + return false; + + writer.incrementState(); + + case 4: + if (!writer.writeInt("id", id)) + return false; + + writer.incrementState(); + + case 5: + if (!writer.writeString("body", body)) + return false; + + writer.incrementState(); + + case 6: + if (!writer.writeMessage("msg", msg)) + return false; + + writer.incrementState(); + + } + + return true; + } + + /** {@inheritDoc} */ + @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { + reader.setBuffer(buf); + + if (!reader.beforeMessageRead()) + return false; + + if (!super.readFrom(buf, reader)) + return false; + + switch (reader.state()) { + case 3: + nodeId = reader.readUuid("nodeId"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 4: + id = reader.readInt("id"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 5: + body = reader.readString("body"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 6: + msg = reader.readMessage("msg"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + } + + return true; + } + } }