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

📄 rollerxmlrpcservertest.java

📁 这个weblogging 设计得比较精巧
💻 JAVA
字号:
/* * Created on Jun 15, 2004 */package org.roller.presentation.xmlrpc;import com.mockrunner.mock.web.MockHttpServletRequest;import com.mockrunner.mock.web.MockHttpServletResponse;import com.mockrunner.mock.web.MockServletContext;import com.mockrunner.mock.web.WebMockObjectFactory;import com.mockrunner.servlet.ServletTestModule;import org.roller.RollerTestBase;import org.roller.presentation.MockRollerContext;import org.roller.presentation.RollerRequest;import org.roller.util.RegexUtil; import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.regex.Pattern;import junit.framework.Test;import junit.framework.TestSuite;/** * Makes calls to the RollerXmlRpcServer, which should handle a * post just as it would with a real XML-RPC call. *  * @author lance.lavandowska */public class RollerXmlRpcServerTest extends RollerTestBase{    private static HashMap typeMap = new HashMap();    static {        typeMap.put(Boolean.class, "boolean");        typeMap.put(Double.class, "double");        typeMap.put(Date.class, "dateTime.iso8601");        typeMap.put(Integer.class, "int");    }    protected WebMockObjectFactory mockFactory;    protected MockRollerContext rollerContext;    protected MockHttpServletRequest mockRequest;    protected ServletTestModule servletTestModule;    public void testBloggerGetRecentPosts()    {        ArrayList params = new ArrayList();        params.add("roller"); // appkey        params.add("roller"); // blogid        params.add("testuser0"); // userid        params.add("password"); // password        params.add(new Integer(5)); // numposts        String message = buildXmlRpcString("blogger.getRecentPosts", params);        mockRequest.setBodyContent(message);        servletTestModule.doPost();        MockHttpServletResponse response = mockFactory.getMockResponse();        String responseBody = response.getOutputStreamContent();        // assert no fault code        assertTrue(responseBody,                 responseBody.indexOf("<name>faultCode</name>") == -1);                // make sure all/any userids returned belong to our test user        Pattern userPattern =                 Pattern.compile("<name>userid</name><value>(.*?)</value>");        ArrayList users = RegexUtil.getMatches(userPattern, responseBody, 1);        Iterator it = users.iterator();        while (it.hasNext())         {            String user = (String)it.next();            //System.out.println(user);            if (user.equals("testuser0"))            {                continue;            }            else            {                fail("getRecentPosts() returned entry for a user ["                         + user + "] other than " + testUsername);            }        }    }        /**     * Build an XML-RPC message from methodName and params.     *      * @param methodName     * @param params     * @return     */    private String buildXmlRpcString(String methodName, ArrayList params)    {        StringBuffer buf = new StringBuffer("<?xml version=\"1.0\"?>");        buf.append("<methodCall>");        buf.append("<methodName>").append(methodName).append("</methodName>");        buf.append("<params>");        Iterator it = params.iterator();        while (it.hasNext()) {            buf.append("<param><value>");            Object param = it.next();            String paramType = (String)typeMap.get(param.getClass());            if (paramType != null)            {                buf.append("<").append(paramType).append(">")                   .append(param)                   .append("</").append(paramType).append(">");                                }            else            {                    buf.append("<string>").append(param).append("</string>");            }            buf.append("</value></param>");        }        buf.append("</params> ");        buf.append("</methodCall>");        return buf.toString();    }        //-----------------------------------------------------------------------    public void setUp() throws Exception    {        // must do super.setup() before creating MockRollerContext        super.setUp();        setUpTestWeblogs();        mockFactory = new WebMockObjectFactory();        // create mock RollerContext        MockServletContext ctx = mockFactory.getMockServletContext();        ctx.setRealPath("/", ".");        rollerContext = new MockRollerContext();        rollerContext.init(ctx);        mockRequest = mockFactory.getMockRequest();        mockRequest.setContextPath("/roller");        RollerRequest.getRollerRequest(                mockRequest, mockFactory.getMockServletContext());        servletTestModule = new ServletTestModule(mockFactory);        servletTestModule.createServlet(RollerXMLRPCServlet.class);    }    //-----------------------------------------------------------------------    public void tearDown() throws Exception    {        super.tearDown();        mockRequest = null;        servletTestModule.clearOutput();        servletTestModule.releaseFilters();        servletTestModule = null;        rollerContext = null;        mockFactory = null;    }    public static Test suite()     {        return new TestSuite(RollerXmlRpcServerTest.class);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -