@SuppressWarnings("rawtypes") @Override public void handle(final DispatchTask task) { final BaseCmd cmd = task.getCmd(); final Map params = task.getParams(); final List<String> expectedParamNames = getParamNamesForCommand(cmd); final StringBuilder errorMsg = new StringBuilder(ERROR_MSG_PREFIX); boolean foundUnknownParam = false; for (final Object actualParamName : params.keySet()) { // If none of the expected params matches, we have an unknown param boolean matchedCurrentParam = false; for (final String expectedName : expectedParamNames) { if (expectedName.equalsIgnoreCase((String) actualParamName)) { matchedCurrentParam = true; break; } } if (!matchedCurrentParam && !((String)actualParamName).equalsIgnoreCase("expires") && !((String)actualParamName).equalsIgnoreCase("signatureversion")) { errorMsg.append(" ").append(actualParamName); foundUnknownParam= true; } } if (foundUnknownParam) { s_logger.warn(String.format("Received unknown parameters for command %s. %s", cmd.getActualCommandName(), errorMsg)); } }
@Test public void testGetActualCommandName(){ BaseCmd cmd1 = new Cmd1(); BaseCmd cmd2 = new Cmd2(); assertEquals(NON_EXPECTED_COMMAND_NAME, CMD1_NAME, cmd1.getActualCommandName()); assertEquals(NON_EXPECTED_COMMAND_NAME, CMD2_NAME, cmd2.getActualCommandName()); } }