mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
WW-4720 HttpParameters implements Map interface
This commit is contained in:
+1
-1
@@ -112,7 +112,7 @@ public class ParameterFilterInterceptor extends AbstractInterceptor {
|
||||
|
||||
Map<String, Boolean> includesExcludesMap = getIncludesExcludesMap();
|
||||
|
||||
for (String param : parameters.getNames()) {
|
||||
for (String param : parameters.keySet()) {
|
||||
boolean currentAllowed = !isDefaultBlock();
|
||||
|
||||
for (String currRule : includesExcludesMap.keySet()) {
|
||||
|
||||
@@ -168,7 +168,7 @@ public class ParametersInterceptor extends MethodFilterInterceptor {
|
||||
acceptableParameters = new TreeMap<>();
|
||||
}
|
||||
|
||||
for (String name : params.getNames()) {
|
||||
for (String name : params.keySet()) {
|
||||
Parameter parameter = params.get(name);
|
||||
if (isAcceptableParameter(name, action)) {
|
||||
acceptableParameters.put(name, parameter);
|
||||
@@ -262,7 +262,7 @@ public class ParametersInterceptor extends MethodFilterInterceptor {
|
||||
}
|
||||
|
||||
StringBuilder logEntry = new StringBuilder();
|
||||
for (String name : parameters.getNames()) {
|
||||
for (String name : parameters.keySet()) {
|
||||
logEntry.append(String.valueOf(name));
|
||||
logEntry.append(" => ");
|
||||
logEntry.append(parameters.get(name).getValue());
|
||||
|
||||
+2
-2
@@ -54,7 +54,7 @@ public class AnnotationParameterFilterInterceptor extends AbstractInterceptor {
|
||||
AnnotationUtils.addAllFields(Allowed.class, model.getClass(), annotatedFields);
|
||||
}
|
||||
|
||||
for (String paramName : parameters.getNames()) {
|
||||
for (String paramName : parameters.keySet()) {
|
||||
boolean allowed = false;
|
||||
|
||||
for (Field field : annotatedFields) {
|
||||
@@ -76,7 +76,7 @@ public class AnnotationParameterFilterInterceptor extends AbstractInterceptor {
|
||||
AnnotationUtils.addAllFields(Blocked.class, model.getClass(), annotatedFields);
|
||||
}
|
||||
|
||||
for (String paramName : parameters.getNames()) {
|
||||
for (String paramName : parameters.keySet()) {
|
||||
for (Field field : annotatedFields) {
|
||||
//TODO only matches exact field names. need to change to it matches start of ognl expression
|
||||
//i.e take param name up to first . (period) and match against that
|
||||
|
||||
@@ -1,7 +1,28 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.struts2.dispatcher;
|
||||
|
||||
import org.apache.struts2.interceptor.ParameterAware;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -10,7 +31,8 @@ import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
public class HttpParameters implements Cloneable {
|
||||
@SuppressWarnings("unchecked")
|
||||
public class HttpParameters implements Map<String, Parameter>, Cloneable {
|
||||
|
||||
private Map<String, Parameter> parameters;
|
||||
|
||||
@@ -26,18 +48,6 @@ public class HttpParameters implements Cloneable {
|
||||
return new Builder(new HashMap<String, Object>());
|
||||
}
|
||||
|
||||
public Parameter get(String name) {
|
||||
if (parameters.containsKey(name)) {
|
||||
return parameters.get(name);
|
||||
} else {
|
||||
return new Parameter.Empty(name);
|
||||
}
|
||||
}
|
||||
|
||||
public Set<String> getNames() {
|
||||
return new TreeSet<>(parameters.keySet());
|
||||
}
|
||||
|
||||
public HttpParameters remove(Set<String> paramsToRemove) {
|
||||
for (String paramName : paramsToRemove) {
|
||||
parameters.remove(paramName);
|
||||
@@ -78,6 +88,70 @@ public class HttpParameters implements Cloneable {
|
||||
parameterAware.setParameters(toMap());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return parameters.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return parameters.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsKey(Object key) {
|
||||
return parameters.containsKey(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsValue(Object value) {
|
||||
return parameters.containsValue(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Parameter get(Object key) {
|
||||
if (parameters.containsKey(key)) {
|
||||
return parameters.get(key);
|
||||
} else {
|
||||
return new Parameter.Empty(String.valueOf(key));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Parameter put(String key, Parameter value) {
|
||||
throw new IllegalAccessError("HttpParameters are immutable, you cannot put value directly!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Parameter remove(Object key) {
|
||||
throw new IllegalAccessError("HttpParameters are immutable, you cannot remove object directly!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void putAll(Map<? extends String, ? extends Parameter> m) {
|
||||
throw new IllegalAccessError("HttpParameters are immutable, you cannot put values directly!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
throw new IllegalAccessError("HttpParameters are immutable, you cannot clear values directly!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> keySet() {
|
||||
return Collections.unmodifiableSet(new TreeSet<>(parameters.keySet()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Parameter> values() {
|
||||
return Collections.unmodifiableCollection(parameters.values());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Entry<String, Parameter>> entrySet() {
|
||||
return Collections.unmodifiableSet(parameters.entrySet());
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
private Map<String, Object> requestParameterMap;
|
||||
private HttpParameters parent;
|
||||
|
||||
@@ -63,7 +63,7 @@ public class CheckboxInterceptor extends AbstractInterceptor {
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
Map<String, Parameter> extraParams = new HashMap<>();
|
||||
|
||||
for (String name : parameters.getNames()) {
|
||||
for (String name : parameters.keySet()) {
|
||||
if (name.startsWith("__checkbox_")) {
|
||||
String checkboxName = name.substring("__checkbox_".length());
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ public class DateTextFieldInterceptor implements Interceptor {
|
||||
DateWord[] dateWords = DateWord.getAll();
|
||||
|
||||
// Get all the values of date type
|
||||
Set<String> names = parameters.getNames();
|
||||
Set<String> names = parameters.keySet();
|
||||
for (String name : names) {
|
||||
|
||||
for (DateWord dateWord : dateWords) {
|
||||
|
||||
@@ -50,7 +50,7 @@ public class MultiselectInterceptor extends AbstractInterceptor {
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
Map<String, Parameter> newParams = new HashMap<>();
|
||||
|
||||
for (String name : parameters.getNames()) {
|
||||
for (String name : parameters.keySet()) {
|
||||
if (name.startsWith("__multiselect_")) {
|
||||
String key = name.substring("__multiselect_".length());
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ public class ActionContextTest extends XWorkTestCase {
|
||||
|
||||
public void testParameters() {
|
||||
context.setParameters(HttpParameters.create().build());
|
||||
assertEquals(0, context.getParameters().getNames().size());
|
||||
assertEquals(0, context.getParameters().keySet().size());
|
||||
}
|
||||
|
||||
public void testConversionErrors() {
|
||||
|
||||
+1
-1
@@ -116,7 +116,7 @@ public class ParameterFilterInterceptorTest extends XWorkTestCase {
|
||||
}
|
||||
|
||||
private Collection getParameterNames() {
|
||||
return ((HttpParameters)contextMap.get(ActionContext.PARAMETERS)).getNames();
|
||||
return ((HttpParameters)contextMap.get(ActionContext.PARAMETERS)).keySet();
|
||||
}
|
||||
|
||||
public void runAction() throws Exception {
|
||||
|
||||
+3
-3
@@ -50,7 +50,7 @@ public class ParameterRemoverInterceptorTest extends TestCase {
|
||||
interceptor.intercept(actionInvocation);
|
||||
|
||||
HttpParameters params = (HttpParameters) contextMap.get(ActionContext.PARAMETERS);
|
||||
assertEquals(params.getNames().size(), 2);
|
||||
assertEquals(params.keySet().size(), 2);
|
||||
assertTrue(params.contains("param3"));
|
||||
assertTrue(params.contains("param"));
|
||||
assertEquals(params.get("param3").getValue(), "paramValue3");
|
||||
@@ -76,7 +76,7 @@ public class ParameterRemoverInterceptorTest extends TestCase {
|
||||
interceptor.intercept(actionInvocation);
|
||||
|
||||
HttpParameters params = (HttpParameters) contextMap.get(ActionContext.PARAMETERS);
|
||||
assertEquals(params.getNames().size(), 0);
|
||||
assertEquals(params.keySet().size(), 0);
|
||||
|
||||
verify(actionInvocation);
|
||||
}
|
||||
@@ -98,7 +98,7 @@ public class ParameterRemoverInterceptorTest extends TestCase {
|
||||
interceptor.intercept(actionInvocation);
|
||||
|
||||
HttpParameters params = (HttpParameters) contextMap.get(ActionContext.PARAMETERS);
|
||||
assertEquals(params.getNames().size(), 2);
|
||||
assertEquals(params.keySet().size(), 2);
|
||||
assertTrue(params.contains("param1"));
|
||||
assertTrue(params.contains("param2"));
|
||||
assertEquals(params.get("param1").getValue(), "paramValueOne");
|
||||
|
||||
+1
-1
@@ -133,7 +133,7 @@ public class StaticParametersInterceptorTest extends XWorkTestCase {
|
||||
|
||||
assertEquals(before, ActionContext.getContext().getValueStack().size());
|
||||
assertEquals("${top.hero}", user.getName());
|
||||
assertEquals(0, ActionContext.getContext().getParameters().getNames().size());
|
||||
assertEquals(0, ActionContext.getContext().getParameters().keySet().size());
|
||||
}
|
||||
|
||||
public void testFewParametersParse() throws Exception {
|
||||
|
||||
+4
-4
@@ -59,7 +59,7 @@ public class AnnotationParameterFilterInterceptorTest extends TestCase {
|
||||
interceptor.intercept(invocation);
|
||||
|
||||
HttpParameters parameters = invocation.getInvocationContext().getParameters();
|
||||
assertEquals("Parameter map should contain one entry", 1, parameters.getNames().size());
|
||||
assertEquals("Parameter map should contain one entry", 1, parameters.keySet().size());
|
||||
assertFalse(parameters.get("job").isDefined());
|
||||
assertTrue(parameters.get("name").isDefined());
|
||||
|
||||
@@ -97,7 +97,7 @@ public class AnnotationParameterFilterInterceptorTest extends TestCase {
|
||||
interceptor.intercept(invocation);
|
||||
|
||||
HttpParameters parameters = invocation.getInvocationContext().getParameters();
|
||||
assertEquals("Paramwter map should contain one entry", 1, parameters.getNames().size());
|
||||
assertEquals("Paramwter map should contain one entry", 1, parameters.keySet().size());
|
||||
assertTrue(parameters.get("job").isDefined());
|
||||
assertFalse(parameters.get("name").isDefined());
|
||||
|
||||
@@ -135,7 +135,7 @@ public class AnnotationParameterFilterInterceptorTest extends TestCase {
|
||||
interceptor.intercept(invocation);
|
||||
|
||||
HttpParameters parameters = invocation.getInvocationContext().getParameters();
|
||||
assertEquals("Parameter map should contain two entries", 2, parameters.getNames().size());
|
||||
assertEquals("Parameter map should contain two entries", 2, parameters.keySet().size());
|
||||
assertFalse(parameters.get("job").isDefined());
|
||||
assertTrue(parameters.get("name").isDefined());
|
||||
assertTrue(parameters.get("m1").isDefined());
|
||||
@@ -175,7 +175,7 @@ public class AnnotationParameterFilterInterceptorTest extends TestCase {
|
||||
interceptor.intercept(invocation);
|
||||
|
||||
HttpParameters parameters = invocation.getInvocationContext().getParameters();
|
||||
assertEquals("Parameter map should contain two entries", 2, parameters.getNames().size());
|
||||
assertEquals("Parameter map should contain two entries", 2, parameters.keySet().size());
|
||||
assertTrue(parameters.get("job").isDefined());
|
||||
assertFalse(parameters.get("name").isDefined());
|
||||
assertFalse(parameters.get("m1").isDefined());
|
||||
|
||||
@@ -47,7 +47,7 @@ public class ActionComponentTest extends StrutsInternalTestCase {
|
||||
comp.addParameter("baz", new String[]{"jim", "sarah"});
|
||||
HttpParameters params = comp.createParametersForContext();
|
||||
assertNotNull(params);
|
||||
assertEquals(2, params.getNames().size());
|
||||
assertEquals(2, params.keySet().size());
|
||||
assertEquals("bar", params.get("foo").getValue());
|
||||
assertEquals(2, params.get("baz").getMultipleValues().length);
|
||||
mockValueStack.verify();
|
||||
|
||||
@@ -72,7 +72,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
interceptor.intercept(ai);
|
||||
interceptor.destroy();
|
||||
|
||||
assertEquals(1, ai.getInvocationContext().getParameters().getNames().size());
|
||||
assertEquals(1, ai.getInvocationContext().getParameters().keySet().size());
|
||||
}
|
||||
|
||||
public void testPassthroughTwo() throws Exception {
|
||||
@@ -85,7 +85,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
interceptor.intercept(ai);
|
||||
interceptor.destroy();
|
||||
|
||||
assertEquals(2, ai.getInvocationContext().getParameters().getNames().size());
|
||||
assertEquals(2, ai.getInvocationContext().getParameters().keySet().size());
|
||||
}
|
||||
|
||||
public void testOneCheckboxTrue() throws Exception {
|
||||
@@ -103,7 +103,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__checkbox_superpower"));
|
||||
assertEquals(3, parameters.getNames().size()); // should be 3 as __checkbox_ should be removed
|
||||
assertEquals(3, parameters.keySet().size()); // should be 3 as __checkbox_ should be removed
|
||||
assertEquals("true", parameters.get("superpower").getValue());
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__checkbox_superpower"));
|
||||
assertEquals(3, parameters.getNames().size()); // should be 3 as __checkbox_ should be removed
|
||||
assertEquals(3, parameters.keySet().size()); // should be 3 as __checkbox_ should be removed
|
||||
assertEquals("false", parameters.get("superpower").getValue());
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__checkbox_superpower"));
|
||||
assertEquals(3, parameters.getNames().size()); // should be 3 as __checkbox_ should be removed
|
||||
assertEquals(3, parameters.keySet().size()); // should be 3 as __checkbox_ should be removed
|
||||
assertEquals("off", parameters.get("superpower").getValue());
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__checkbox_superpower"));
|
||||
assertEquals(2, parameters.getNames().size()); // should be 2 as __checkbox_ should be removed
|
||||
assertEquals(2, parameters.keySet().size()); // should be 2 as __checkbox_ should be removed
|
||||
assertFalse(parameters.get("superpower").isDefined());
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__checkbox_superpower"));
|
||||
assertFalse(parameters.contains("__checkbox_cool"));
|
||||
assertEquals(4, parameters.getNames().size()); // should be 4 as __checkbox_ should be removed
|
||||
assertEquals(4, parameters.keySet().size()); // should be 4 as __checkbox_ should be removed
|
||||
assertEquals("yes", parameters.get("superpower").getValue());
|
||||
assertEquals("false", parameters.get("cool").getValue()); // will use false as default and not 'no'
|
||||
}
|
||||
@@ -203,7 +203,7 @@ public class CheckboxInterceptorTest extends StrutsInternalTestCase {
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__checkbox_superpower"));
|
||||
assertFalse(parameters.contains("__checkbox_cool"));
|
||||
assertEquals(4, parameters.getNames().size()); // should be 4 as __checkbox_ should be removed
|
||||
assertEquals(4, parameters.keySet().size()); // should be 4 as __checkbox_ should be removed
|
||||
assertEquals("yes", parameters.get("superpower").getValue());
|
||||
assertEquals("no", parameters.get("cool").getValue());
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ public class DateTextFieldInterceptorTest extends StrutsInternalTestCase {
|
||||
interceptor.intercept(ai);
|
||||
interceptor.destroy();
|
||||
|
||||
assertEquals(0, ai.getInvocationContext().getParameters().getNames().size());
|
||||
assertEquals(0, ai.getInvocationContext().getParameters().keySet().size());
|
||||
}
|
||||
|
||||
public void testOneDateTextField() throws Exception {
|
||||
@@ -55,7 +55,7 @@ public class DateTextFieldInterceptorTest extends StrutsInternalTestCase {
|
||||
assertFalse(parameters.contains("__month_name"));
|
||||
assertFalse(parameters.contains("__day_name"));
|
||||
assertTrue(parameters.contains("name"));
|
||||
assertEquals(1, parameters.getNames().size());
|
||||
assertEquals(1, parameters.keySet().size());
|
||||
Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2000-06-15");
|
||||
assertEquals(date, parameters.get("name").getObject());
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ public class FileUploadInterceptorTest extends StrutsInternalTestCase {
|
||||
assertTrue(!action.hasErrors());
|
||||
|
||||
HttpParameters parameters = mai.getInvocationContext().getParameters();
|
||||
assertTrue(parameters.getNames().size() == 3);
|
||||
assertTrue(parameters.keySet().size() == 3);
|
||||
File[] files = (File[]) parameters.get("file").getObject();
|
||||
String[] fileContentTypes = parameters.get("fileContentType").getMultipleValues();
|
||||
String[] fileRealFilenames = parameters.get("fileFileName").getMultipleValues();
|
||||
@@ -322,7 +322,7 @@ public class FileUploadInterceptorTest extends StrutsInternalTestCase {
|
||||
interceptor.intercept(mai);
|
||||
|
||||
HttpParameters parameters = mai.getInvocationContext().getParameters();
|
||||
assertEquals(3, parameters.getNames().size());
|
||||
assertEquals(3, parameters.keySet().size());
|
||||
File[] files = (File[]) parameters.get("file").getObject();
|
||||
String[] fileContentTypes = parameters.get("fileContentType").getMultipleValues();
|
||||
String[] fileRealFilenames = parameters.get("fileFileName").getMultipleValues();
|
||||
|
||||
@@ -93,7 +93,7 @@ public class MultiselectInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__multiselect_superpower"));
|
||||
assertEquals(3, parameters.getNames().size()); // should be 3 as __multiselect_ should be removed
|
||||
assertEquals(3, parameters.keySet().size()); // should be 3 as __multiselect_ should be removed
|
||||
assertEquals("robin", parameters.get("superpower").getValue());
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ public class MultiselectInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__multiselect_superpower"));
|
||||
assertEquals(3, parameters.getNames().size()); // should be 3 as __multiselect_ should be removed
|
||||
assertEquals(3, parameters.keySet().size()); // should be 3 as __multiselect_ should be removed
|
||||
assertFalse(parameters.get("superpower").isDefined());
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ public class MultiselectInterceptorTest extends StrutsInternalTestCase {
|
||||
HttpParameters parameters = ai.getInvocationContext().getParameters();
|
||||
assertFalse(parameters.contains("__multiselect_superpower"));
|
||||
assertFalse(parameters.contains("__multiselect_cool"));
|
||||
assertEquals(4, parameters.getNames().size()); // should be 4 as __multiselect_ should be removed
|
||||
assertEquals(4, parameters.keySet().size()); // should be 4 as __multiselect_ should be removed
|
||||
assertEquals("yes", parameters.get("superpower").getValue());
|
||||
assertFalse(parameters.get("cool").isDefined());
|
||||
}
|
||||
|
||||
@@ -227,7 +227,7 @@ public class ActionTagTest extends AbstractTagTest {
|
||||
// check parameters, there should be one
|
||||
ActionInvocation ai = component.getProxy().getInvocation();
|
||||
ActionContext ac = ai.getInvocationContext();
|
||||
assertEquals(1, ac.getParameters().getNames().size());
|
||||
assertEquals(1, ac.getParameters().keySet().size());
|
||||
}
|
||||
|
||||
public void testIngoreContextParamsTrue() throws Exception {
|
||||
@@ -252,7 +252,7 @@ public class ActionTagTest extends AbstractTagTest {
|
||||
// check parameters, there should be one
|
||||
ActionInvocation ai = component.getProxy().getInvocation();
|
||||
ActionContext ac = ai.getInvocationContext();
|
||||
assertEquals(0, ac.getParameters().getNames().size());
|
||||
assertEquals(0, ac.getParameters().keySet().size());
|
||||
}
|
||||
|
||||
public void testNoNameDefined() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user