@Override public String convert(IAccessEvent accessEvent) { if (!isStarted()) { return "INACTIVE_REQUEST_PARAM_CONV"; } String[] paramArray = accessEvent.getRequestParameter(key); if (paramArray.length == 1) { return paramArray[0]; } else { // for an array string {"a", "b"} named 'sa', Array.toString(sa) returns the string // "[a, b]". return Arrays.toString(paramArray); } }
/** * Verifies that the request parameters does not contain the given one. * * @param name the request parameter name. * @return this instance. * @see IAccessEvent#getRequestParameter(String) */ public S doesNotHaveRequestParameter(String name) { String[] actualRequestParameter = actual.getRequestParameter(name); Assertions.assertThat(actualRequestParameter).containsExactlyInAnyOrder(NA); return myself; }
/** * Verifies that the request parameters contains the given one. * * @param name the request parameter name. * @param values the request parameter values. * @return this instance. * @see IAccessEvent#getRequestParameter(String) */ public S hasRequestParameter(String name, String... values) { String[] actualRequestParameter = actual.getRequestParameter(name); Assertions.assertThat(actualRequestParameter).containsExactlyInAnyOrder(values); return myself; }
@Test public void callingPrepareForDeferredProcessingShouldBeIdempotent() { String key = "key-"+diff; String val = "val-"+diff; IAccessEvent ae = DummyAccessEventBuilder.buildNewAccessEvent(); DummyRequest request = (DummyRequest) ae.getRequest(); Map<String, String> headersMap = request.getHeaders(); Map<String, String[]> parametersMap = request.getParameterMap(); headersMap.put(key, val); request.setAttribute(key, val); parametersMap.put(key, new String[] {val}); ae.prepareForDeferredProcessing(); assertEquals(val, ae.getAttribute(key)); assertEquals(val, ae.getRequestHeader(key)); assertEquals(val, ae.getRequestParameter(key)[0]); request.setAttribute(key, "change"); headersMap.put(key, "change"); parametersMap.put(key, new String[] {"change"}); ae.prepareForDeferredProcessing(); assertEquals(val, ae.getAttribute(key)); assertEquals(val, ae.getRequestHeader(key)); assertEquals(val, ae.getRequestParameter(key)[0]); }