package com.alibaba.doris.client.net.protocol.text;
import junit.framework.TestCase;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import com.alibaba.doris.client.net.command.DeleteCommand;
import com.alibaba.doris.common.data.Key;
import com.alibaba.doris.common.data.KeyFactory;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public class DeleteProtocolParserTest extends TestCase {
public void testEncode() {
DeleteProtocolParser parser = new DeleteProtocolParser();
Key key = KeyFactory.createKey(NAME_SPACE, "key", 10);
DeleteCommand commandData = new DeleteCommand(key);
ChannelBuffer buffer = ChannelBuffers.buffer(200);
parser.encode(commandData, buffer);
buffer.array();
byte[] arrayBytes = buffer.array();
for (int i = 0; i < DELETE_ENCODE.length; i++) {
assertEquals("index=" + i, DELETE_ENCODE[i], arrayBytes[i]);
}
}
public void testDecode() {
DeleteProtocolParser parser = new DeleteProtocolParser();
DeleteCommand commandData = new DeleteCommand(KeyFactory.createKey(NAME_SPACE, "key", 1));
ChannelBuffer buffer = ChannelBuffers.wrappedBuffer(DELETE_RESULT);
assertTrue(parser.decode(commandData, buffer));
assertTrue(commandData.isSuccess());
}
public void testDecodeWiteError() {
DeleteProtocolParser parser = new DeleteProtocolParser();
DeleteCommand commandData = new DeleteCommand(KeyFactory.createKey(NAME_SPACE, "key", 1));
ChannelBuffer buffer = ChannelBuffers.wrappedBuffer(DELETE_RESULT_NOTFOUND);
assertTrue(parser.decode(commandData, buffer));
assertTrue(commandData.isSuccess() == false);
}
private static final int NAME_SPACE = 1000;
private static final byte[] DELETE_ENCODE = new byte[] { 'd', 'e', 'l', 'e', 't', 'e', ' ', '1', '0', '0',
'0', ':', 'k', 'e', 'y', ' ', '0', ' ', '1', '0', '\r', '\n' };
private static final byte[] DELETE_RESULT = new byte[] { 'D', 'E', 'L', 'E', 'T', 'E', 'D', '\r', '\n' };
private static final byte[] DELETE_RESULT_NOTFOUND = new byte[] { 'N', 'O', 'T', '_', 'F', 'O', 'U', 'N', 'D',
'\r', '\n' };
}