### Question:
BaseRequestItem implements RequestItem { public Map<String, Object> getParameters() { return Collections.unmodifiableMap(this.parameters); } BaseRequestItem(Map<String, String[]> parameters,
      SecurityToken token,
      BeanConverter converter,
      BeanJsonConverter jsonConverter);  BaseRequestItem(JSONObject parameters,
      Map<String, FormDataItem> formItems,
      SecurityToken token,
      BeanConverter converter,
      BeanJsonConverter jsonConverter); String getAppId(); Date getUpdatedSince(); String getSortBy(); SortOrder getSortOrder(); String getFilterBy(); int getStartIndex(); int getCount(); FilterOperation getFilterOperation(); String getFilterValue(); Set<String> getFields(); Set<String> getFields(Set<String> defaultValue); SecurityToken getToken(); T getTypedParameter(String parameterName, Class<T> dataTypeClass); T getOptionalTypedParameter(String parameterName, Class<T> dataTypeClass); T getTypedRequest(Class<T> dataTypeClass); String getParameter(String paramName); String getParameter(String paramName, String defaultValue); Map<String, Object> getParameters(); List<String> getListParameter(String paramName); @VisibleForTesting void setParameter(String paramName, Object paramValue); FormDataItem getFormMimePart(String partName); Object getAttribute(String val); void setAttribute(String val, Object obj); Set<String> getParameterNames();  }### Answer:
@Test public void testGetParameters() throws Exception { request.setParameter("anykey", "{name: 'Bob', id: '1234'}"); Map<String, Object> params = request.getParameters(); assertEquals(1, params.size()); assertTrue(params.containsKey("anykey")); try { params.put("this", "is bad"); fail("Params should be immutable"); } catch (UnsupportedOperationException e) { } }