Skip to content

Commit

Permalink
#ignite-51: Change test for messaging.
Browse files Browse the repository at this point in the history
  • Loading branch information
ivasilinets committed Mar 2, 2015
1 parent 29508fa commit 2f43d32
Showing 1 changed file with 79 additions and 9 deletions.
Expand Up @@ -26,20 +26,27 @@ public class GridCacheMessageSelfTest extends GridCommonAbstractTest {
/** */ /** */
private static final byte DIRECT_TYPE = (byte)202; private static final byte DIRECT_TYPE = (byte)202;


/** */
private static final byte DIRECT_TYPE1 = (byte)203;

static { static {
GridIoMessageFactory.registerCustom(DIRECT_TYPE, new CO<Message>() { GridIoMessageFactory.registerCustom(DIRECT_TYPE, new CO<Message>() {
@Override @Override public Message apply() {
public Message apply() {
return new TestMessage(); return new TestMessage();
} }
}); });


GridIoMessageFactory.registerCustom(GridTestMessage.DIRECT_TYPE, new CO<Message>() { GridIoMessageFactory.registerCustom(GridTestMessage.DIRECT_TYPE, new CO<Message>() {
@Override @Override public Message apply() {
public Message apply() {
return new GridTestMessage(); return new GridTestMessage();
} }
}); });

GridIoMessageFactory.registerCustom(DIRECT_TYPE1, new CO<Message>() {
@Override public Message apply() {
return new TestMessage1();
}
});
} }


/** {@inheritDoc} */ /** {@inheritDoc} */
Expand All @@ -50,7 +57,6 @@ public Message apply() {


CacheConfiguration ccfg = new CacheConfiguration(); CacheConfiguration ccfg = new CacheConfiguration();


ccfg.setName(null);
ccfg.setCacheMode(CacheMode.PARTITIONED); ccfg.setCacheMode(CacheMode.PARTITIONED);
ccfg.setAtomicityMode(CacheAtomicityMode.ATOMIC); ccfg.setAtomicityMode(CacheAtomicityMode.ATOMIC);
ccfg.setWriteSynchronizationMode(FULL_SYNC); ccfg.setWriteSynchronizationMode(FULL_SYNC);
Expand Down Expand Up @@ -100,7 +106,11 @@ private void doSend() throws Exception {
for (int i = 1; i <= SAMPLE_CNT; i++) { for (int i = 1; i <= SAMPLE_CNT; i++) {
mgr0.send(grid(1).localNode(), topic, message, GridIoPolicy.PUBLIC_POOL); mgr0.send(grid(1).localNode(), topic, message, GridIoPolicy.PUBLIC_POOL);


message.add(new GridTestMessage(grid(1).localNode().id(), i, 0)); TestMessage1 mes1 = new TestMessage1();

mes1.init(new GridTestMessage(grid(1).localNode().id(), i, 0));

message.add(mes1);
} }


assert latch.await(3, SECONDS); assert latch.await(3, SECONDS);
Expand All @@ -109,13 +119,13 @@ private void doSend() throws Exception {
/** */ /** */
private static class TestMessage extends GridCacheMessage { private static class TestMessage extends GridCacheMessage {
/** */ /** */
@GridDirectCollection(GridTestMessage.class) @GridDirectCollection(TestMessage1.class)
private Collection<GridTestMessage> entries = new ArrayList<>(); private Collection<TestMessage1> entries = new ArrayList<>();


/** /**
* @param entry Entry. * @param entry Entry.
*/ */
public void add(GridTestMessage entry) { public void add(TestMessage1 entry) {
entries.add(entry); entries.add(entry);
} }


Expand Down Expand Up @@ -169,4 +179,64 @@ public void add(GridTestMessage entry) {
return true; return true;
} }
} }

private static class TestMessage1 extends GridCacheMessage {
GridTestMessage mes;

public void init(GridTestMessage mes) {
this.mes = mes;
}

/** {@inheritDoc} */
@Override public byte directType() {
return 0;
}

/** {@inheritDoc} */
@Override public byte fieldsCount() {
return 1;
}

/** {@inheritDoc} */
@Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
writer.setBuffer(buf);

if (!writer.isHeaderWritten()) {
if (!writer.writeHeader(directType(), fieldsCount()))
return false;

writer.onHeaderWritten();
}

switch (writer.state()) {
case 0:
if (!mes.writeTo(buf, writer))
return false;

writer.incrementState();
}

return true;
}

/** {@inheritDoc} */
@Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
reader.setBuffer(buf);

if (!reader.beforeMessageRead())
return false;

switch (reader.state()) {
case 0:
mes.readFrom(buf, reader);

if (!reader.isLastRead())
return false;

reader.incrementState();
}

return true;
}
}
} }

0 comments on commit 2f43d32

Please sign in to comment.