📄 formgeneratortest.java
字号:
package org.jbpm.web.formgen;
import java.io.IOException;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;
import junit.framework.TestCase;
import org.jbpm.web.formgen.format.DefaultFormat;
import org.jbpm.web.formgen.format.DoubleFormat;
public class FormGeneratorTest extends TestCase {
private FormGenerator formGenerator = null;
private String writtenText = "";
protected void setUp() {
formGenerator = new FormGenerator(new TestForm());
writtenText = "";
}
public void testConstruction() {
assertNotNull("1", formGenerator);
}
public void testPrepareParameters() {
HashMap variables = new HashMap();
variables.put("first", new Double(3.14));
variables.put("second", "The second variable");
variables.put("third", new Double(4.13));
Map result = formGenerator.prepareParameters(variables);
assertEquals("1", result.get("first"), "3.14");
assertEquals("2", result.get("second"), "The second variable");
assertEquals("3", result.get("third"), "4.13");
}
public void testGenerateHtml() throws Exception {
formGenerator.generateHtml(null, null);
assertEquals("1", writtenText, "firstsecondthird");
}
public void testParseParameters() {
HttpServletRequest request =
(HttpServletRequest)Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
new Class[] { HttpServletRequest.class },
new RequestInvocationHandler());
HashMap errors = new HashMap();
Map result = formGenerator.parseParameters(request, errors);
assertEquals("1", result.size(), 2);
assertEquals("2", errors.size(), 1);
assertEquals("3", result.get("first"), new Double(123.45));
assertEquals("4", result.get("second"), "This is a string");
assertEquals("5", errors.get("third"), "third : Format.parseObject(String) failed");
}
public void testGetSelectedTransitionName() {
RequestInvocationHandler invocationHandler = new RequestInvocationHandler();
HttpServletRequest request =
(HttpServletRequest)Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
new Class[] { HttpServletRequest.class },
invocationHandler);
assertNull("1", formGenerator.getSelectedTransitionName(request));
invocationHandler.parameters.put("submitbutton", "testKey");
assertEquals("2", formGenerator.getSelectedTransitionName(request), "testValue");
}
class TestForm extends Form {
public String getTransitionName(String name) {
return "testValue";
}
public Map getVariableFormats() {
HashMap result = new HashMap();
result.put("first", new DoubleFormat());
result.put("second", new DefaultFormat());
result.put("third", new DoubleFormat());
result.put("fourth", new DefaultFormat());
return result;
}
public List getFormElements() {
ArrayList result = new ArrayList();
result.add(new TestFormElement("first"));
result.add(new TestFormElement("second"));
result.add(new TestFormElement("third"));
return result;
}
}
class TestFormElement implements FormElement {
String text = null;
TestFormElement(String text) {
this.text = text;
}
public void write(JspWriter jspOut, Map parameters) throws IOException {
writtenText = writtenText + text;
}
}
class RequestInvocationHandler implements InvocationHandler {
HashMap parameters = new HashMap();
RequestInvocationHandler() {
parameters.put("first", "123.45");
parameters.put("second", "This is a string");
parameters.put("third", "ABC.DE");
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (method.getName().equals("getParameter"))
return parameters.get(args[0]);
else
return null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -