public class ReplyTest {
@Test
public void testReadWrite() throws IOException {
ByteBuf os;
Reply receive;
RedisReplyDecoder redisDecoder = new RedisReplyDecoder(false);
{
os = Unpooled.buffer();
String message = "OK";
new StatusReply(message).write(os);
receive = redisDecoder.receive(os);
assertTrue(receive instanceof StatusReply);
assertEquals(message, receive.data());
}
{
os = Unpooled.buffer();
String message = "OK";
new ErrorReply(message).write(os);
receive = redisDecoder.receive(os);
assertTrue(receive instanceof ErrorReply);
assertEquals(message, receive.data());
}
{
os = Unpooled.buffer();
String message = "OK";
new BulkReply(Unpooled.wrappedBuffer(message.getBytes())).write(os);
receive = redisDecoder.receive(os);
assertTrue(receive instanceof BulkReply);
assertEquals(message, ((ByteBuf)receive.data()).toString(Charsets.US_ASCII));
}
{
os = Unpooled.buffer();
long integer = 999;
new IntegerReply(integer).write(os);
receive = redisDecoder.receive(os);
assertTrue(receive instanceof IntegerReply);
assertEquals(integer, receive.data());
}
{
os = Unpooled.buffer();
String message = "OK";
long integer = 999;
new MultiBulkReply(new Reply[] {
new StatusReply(message),
new ErrorReply(message),
new MultiBulkReply(new Reply[] { new StatusReply(message)}),
new BulkReply(Unpooled.wrappedBuffer(message.getBytes())),
new IntegerReply(integer)}).write(os);
receive = redisDecoder.receive(os);
assertTrue(receive instanceof MultiBulkReply);
Reply[] data = (Reply[]) receive.data();
assertEquals(message, data[0].data());
assertEquals(message, data[1].data());
assertTrue(data[2] instanceof MultiBulkReply);