⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formgeneratortest.java

📁 一个java工作流引擎
💻 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 + -