use of io.pravega.shared.protocol.netty.PravegaNodeUri in project pravega by pravega.
the class CommandEncoderTest method testRoundTrip.
@Test
public void testRoundTrip() throws IOException {
AppendBatchSizeTrackerImpl batchSizeTracker = new AppendBatchSizeTrackerImpl();
DecodingOutputStream output = new DecodingOutputStream();
PravegaNodeUri endpoint = new PravegaNodeUri("localhost", SERVICE_PORT);
CommandEncoder commandEncoder = new CommandEncoder(x -> batchSizeTracker, null, output, null, endpoint);
WireCommand command = new WireCommands.Hello(0, 1);
commandEncoder.write(command);
assertEquals(output.decoded.remove(0), command);
command = new WireCommands.CreateTableSegment(0, "segment", false, 16, "", 1024 * 1024 * 1024);
commandEncoder.write(command);
assertEquals(output.decoded.remove(0), command);
command = new WireCommands.TruncateSegment(12, "s", 354, "d");
commandEncoder.write(command);
assertEquals(output.decoded.remove(0), command);
}
use of io.pravega.shared.protocol.netty.PravegaNodeUri in project pravega by pravega.
the class CommandEncoderTest method testAppendsAreBatched.
@Test
public void testAppendsAreBatched() throws IOException {
AppendBatchSizeTracker batchSizeTracker = new FixedBatchSizeTracker(100);
DecodingOutputStream output = new DecodingOutputStream();
PravegaNodeUri endpoint = new PravegaNodeUri("localhost", SERVICE_PORT);
CommandEncoder commandEncoder = new CommandEncoder(x -> batchSizeTracker, null, output, null, endpoint);
UUID writerId = UUID.randomUUID();
WireCommand setupAppend = new WireCommands.SetupAppend(0, writerId, "seg", "");
commandEncoder.write(setupAppend);
assertEquals(output.decoded.remove(0), setupAppend);
ByteBuf data = Unpooled.wrappedBuffer(new byte[40]);
WireCommands.Event event = new WireCommands.Event(data);
Append append1 = new Append("seg", writerId, 1, event, 0);
Append append2 = new Append("seg", writerId, 2, event, 0);
Append append3 = new Append("seg", writerId, 3, event, 0);
commandEncoder.write(append1);
commandEncoder.write(append2);
commandEncoder.write(append3);
AppendBlock block = (AppendBlock) output.decoded.remove(0);
assertEquals(108, block.getData().readableBytes());
AppendBlockEnd blockEnd = (AppendBlockEnd) output.decoded.remove(0);
assertEquals(writerId, blockEnd.getWriterId());
assertEquals(80 + 16, blockEnd.getSizeOfWholeEvents());
assertEquals(40 + 4, blockEnd.getData().readableBytes());
assertEquals(3, blockEnd.getNumEvents());
}
use of io.pravega.shared.protocol.netty.PravegaNodeUri in project pravega by pravega.
the class CommandEncoderTest method testBatchInterupted.
@Test
public void testBatchInterupted() throws IOException {
AppendBatchSizeTracker batchSizeTracker = new FixedBatchSizeTracker(100);
DecodingOutputStream output = new DecodingOutputStream();
PravegaNodeUri endpoint = new PravegaNodeUri("localhost", SERVICE_PORT);
CommandEncoder commandEncoder = new CommandEncoder(x -> batchSizeTracker, null, output, null, endpoint);
UUID writerId = UUID.randomUUID();
WireCommand setupAppend = new WireCommands.SetupAppend(0, writerId, "seg", "");
commandEncoder.write(setupAppend);
assertEquals(output.decoded.remove(0), setupAppend);
ByteBuf data = Unpooled.wrappedBuffer(new byte[40]);
WireCommands.Event event = new WireCommands.Event(data);
Append append1 = new Append("seg", writerId, 1, event, 0);
commandEncoder.write(append1);
commandEncoder.write(new WireCommands.KeepAlive());
AppendBlock block = (AppendBlock) output.decoded.remove(0);
assertEquals(108, block.getData().readableBytes());
AppendBlockEnd blockEnd = (AppendBlockEnd) output.decoded.remove(0);
assertEquals(writerId, blockEnd.getWriterId());
assertEquals(48, blockEnd.getSizeOfWholeEvents());
assertEquals(0, blockEnd.getData().readableBytes());
assertEquals(1, blockEnd.getNumEvents());
WireCommands.KeepAlive breakingCommand = (WireCommands.KeepAlive) output.decoded.remove(0);
assertNotNull(breakingCommand);
}
use of io.pravega.shared.protocol.netty.PravegaNodeUri in project pravega by pravega.
the class CommandEncoderTest method testExactBatch.
@Test
public void testExactBatch() throws IOException {
AppendBatchSizeTracker batchSizeTracker = new FixedBatchSizeTracker(100);
DecodingOutputStream output = new DecodingOutputStream();
PravegaNodeUri endpoint = new PravegaNodeUri("localhost", SERVICE_PORT);
CommandEncoder commandEncoder = new CommandEncoder(x -> batchSizeTracker, null, output, null, endpoint);
UUID writerId = UUID.randomUUID();
WireCommand setupAppend = new WireCommands.SetupAppend(0, writerId, "seg", "");
commandEncoder.write(setupAppend);
assertEquals(output.decoded.remove(0), setupAppend);
ByteBuf data = Unpooled.wrappedBuffer(new byte[100]);
Event event = new WireCommands.Event(data);
Append append = new Append("seg", writerId, 1, event, 0);
commandEncoder.write(append);
AppendBlock block = (AppendBlock) output.decoded.remove(0);
assertEquals(108, block.getData().readableBytes());
AppendBlockEnd blockEnd = (AppendBlockEnd) output.decoded.remove(0);
assertEquals(writerId, blockEnd.getWriterId());
assertEquals(108, blockEnd.getSizeOfWholeEvents());
assertEquals(0, blockEnd.getData().readableBytes());
assertEquals(1, blockEnd.getNumEvents());
}
use of io.pravega.shared.protocol.netty.PravegaNodeUri in project pravega by pravega.
the class CommandEncoderTest method testOverBatchSize.
@Test
public void testOverBatchSize() throws IOException {
AppendBatchSizeTracker batchSizeTracker = new FixedBatchSizeTracker(100);
DecodingOutputStream output = new DecodingOutputStream();
PravegaNodeUri endpoint = new PravegaNodeUri("localhost", SERVICE_PORT);
CommandEncoder commandEncoder = new CommandEncoder(x -> batchSizeTracker, null, output, null, endpoint);
UUID writerId = UUID.randomUUID();
WireCommand setupAppend = new WireCommands.SetupAppend(0, writerId, "seg", "");
commandEncoder.write(setupAppend);
assertEquals(output.decoded.remove(0), setupAppend);
ByteBuf data = Unpooled.wrappedBuffer(new byte[200]);
Event event = new WireCommands.Event(data);
Append append = new Append("seg", writerId, 1, event, 0);
commandEncoder.write(append);
AppendBlock block = (AppendBlock) output.decoded.remove(0);
assertEquals(208, block.getData().readableBytes());
AppendBlockEnd blockEnd = (AppendBlockEnd) output.decoded.remove(0);
assertEquals(writerId, blockEnd.getWriterId());
assertEquals(208, blockEnd.getSizeOfWholeEvents());
assertEquals(0, blockEnd.getData().readableBytes());
assertEquals(1, blockEnd.getNumEvents());
}
Aggregations