package com.alibaba.doris.dataserver.action.parser; import junit.framework.TestCase; import com.alibaba.doris.dataserver.action.data.CheckActionData; import com.alibaba.doris.dataserver.action.data.CheckActionData.CheckType; /* * @author ajun Email:jack.yuj@alibaba-inc.com */ public class CheckActionParserTest extends TestCase { /** * 测试check指令解析代码的功能; */ public void testDecode() { CheckActionParser parser = new CheckActionParser(); // 测试解析一个不带任何参数的check指令解析; CheckActionData actionData = (CheckActionData) parser.readHead(CHECK_REQUEST_BYTES, 6); assertNotNull(actionData); // 解析不带任何参数的check指令时,checkType应该为null assertNull(actionData.getCheckType()); actionData = (CheckActionData) parser.readHead(CHECK_REQUEST_BYTES_WITH_SPACE, 6); assertNotNull(actionData); assertNull(actionData.getCheckType()); actionData = (CheckActionData) parser.readHead(CHECK_TEMP_NODE_REQUEST_BYTES, 6); assertNotNull(actionData); assertNotNull("解析带参数的check指令时,checkType不应该为null", actionData.getCheckType()); assertEquals(actionData.getCheckType(), CheckType.CHECK_TEMP_NODE); actionData = (CheckActionData) parser.readHead(CHECK_NORMAL_NODE_REQEST_BYTES, 6); assertNotNull(actionData); assertNotNull("解析带参数的check指令时,checkType不应该为null", actionData.getCheckType()); assertEquals(actionData.getCheckType(), CheckType.CHECK_NORMAL_NODE); } private static byte[] CHECK_REQUEST_BYTES = new byte[] { 'c', 'h', 'e', 'c', 'k', '\r', '\n' }; private static byte[] CHECK_REQUEST_BYTES_WITH_SPACE = new byte[] { 'c', 'h', 'e', 'c', 'k', ' ', '\r', '\n' }; private static byte[] CHECK_TEMP_NODE_REQUEST_BYTES = new byte[] { 'c', 'h', 'e', 'c', 'k', ' ', 'c', 'h', 'e', 'c', 'k', '_', 't', 'e', 'm', 'p', '_', 'n', 'o', 'd', 'e', '\r', '\n' }; private static byte[] CHECK_NORMAL_NODE_REQEST_BYTES = new byte[] { 'c', 'h', 'e', 'c', 'k', ' ', 'c', 'h', 'e', 'c', 'k', '_', 'n', 'o', 'r', 'm', 'a', 'l', '_', 'n', 'o', 'd', 'e', '\r', '\n' }; }