### Question:
HttpEventTask implements Runnable { protected static CommandRequest processQueryString(String line) { CommandRequest request = new CommandRequest(); if (StringUtil.isBlank(line)) { return request; } int start = line.indexOf('/'); int ask = line.indexOf('?') == -1 ? line.lastIndexOf(' ') : line.indexOf('?'); int space = line.lastIndexOf(' '); String target = line.substring(start != -1 ? start + 1 : 0, ask != -1 ? ask : line.length()); request.addMetadata(HttpCommandUtils.REQUEST_TARGET, target); if (ask == -1 || ask == space) { return request; } String parameterStr = line.substring(ask != -1 ? ask + 1 : 0, space != -1 ? space : line.length()); parseParams(parameterStr, request); return request; } HttpEventTask(Socket socket); void close(); @Override void run(); static final String SERVER_ERROR_MESSAGE; static final String INVALID_COMMAND_MESSAGE; }### Answer:
@Test public void processQueryString() { CommandRequest request; request = HttpEventTask.processQueryString(null); assertNotNull(request); request = HttpEventTask.processQueryString(null); assertNotNull(request); request = HttpEventTask.processQueryString("get /?a=1&b=2&c=3#mark HTTP/1.0"); assertNotNull(request); assertEquals("1", request.getParam("a")); assertEquals("2", request.getParam("b")); assertEquals("3", request.getParam("c")); request = HttpEventTask.processQueryString("post /test?a=3&b=4&c=3#mark HTTP/1.0"); assertNotNull(request); assertEquals("3", request.getParam("a")); assertEquals("4", request.getParam("b")); assertEquals("3", request.getParam("c")); }