GrailsControllerStateKeeper.setThreadLocalActionParams(Collections.singletonList(kvp));
Operation op = new Operation();
collector.processNormalExit(op, Object.class);
assertUnknownOperationContents(op);
OperationList actionParams = op.get("actionParams", OperationList.class);
assertNotNull("No action params", actionParams);
assertEquals("No params values", 1, actionParams.size());
OperationMap map = actionParams.get(0, OperationMap.class);
assertNotNull("No values map", map);
assertEquals("Mismatched params values entries", 2, map.size());
assertEquals("Mismatched param key", kvp.getKey(), map.get("key", String.class));
assertEquals("Mismatched param value", kvp.getValue(), map.get("value", String.class));
}