GetCommand implements CommandRunnable { @Override public ReplyMessage run(int argc, byte[][] argv) throws Exception { if (argc != 2) { return ErrorMessage.WrongArgcMessage; } String key = new String(argv[1], Protocol.KEYCAFE_CHARSET); String val = map.get(key); logger.info("get key: {} - result: {}", key, val); if (val != null) { return new BulkStringMessage(val); } else { return BulkStringMessage.NoKeyFoundMessage; } } GetCommand(Map<String, String> map); @Override ReplyMessage run(int argc, byte[][] argv); @Override int keyIndex();  }
@Test public void test3() throws Exception { Map<String, String> map = new HashMap<>(); byte[][] args = new byte[2][]; args[0] = new byte[]{(byte) Command.GET.ordinal()}; args[1] = "no_key".getBytes(); GetCommand g = new GetCommand(map); ReplyMessage reply = g.run(2, args); assertEquals(reply.message(), BulkStringMessage.NoKeyFoundMessage.message()); }
@Test public void test4() throws Exception { Map<String, String> map = new HashMap<String, String>() { { put("TEST", "VALUE"); } }; byte[][] args = new byte[2][]; args[0] = new byte[]{(byte) Command.GET.ordinal()}; args[1] = "TEST".getBytes(); GetCommand g = new GetCommand(map); ReplyMessage reply = g.run(2, args); assertEquals(reply.message(), new BulkStringMessage("VALUE").message()); }
@Test public void test() throws Exception { byte[][] args = new byte[2][]; args[0] = new byte[]{(byte) Command.GET.ordinal()}; args[1] = "abc".getBytes(); GetCommand g = new GetCommand(null); ReplyMessage reply = g.run(1, args); assertEquals(reply, ErrorMessage.WrongArgcMessage); }
@Test public void test2() throws Exception { byte[][] args = new byte[2][]; args[0] = new byte[]{(byte) Command.GET.ordinal()}; args[1] = "abc".getBytes(); GetCommand g = new GetCommand(null); ReplyMessage reply = g.run(3, args); assertEquals(reply, ErrorMessage.WrongArgcMessage); }