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

📄 atomservlettest.java

📁 这个weblogging 设计得比较精巧
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        getServletModule().doPost();        String output = getServletModule().getOutput();        Entry returnedEntry = AtomServlet.parseEntry(new StringReader(output));                assertEquals(returnedEntry.getTitle(), entry.getTitle());                MockHttpServletResponse mockResponse = getMockFactory().getMockResponse();        assertEquals(HttpServletResponse.SC_CREATED, mockResponse.getStatusCode());        assertTrue(mockResponse.containsHeader("Location"));               getRoller().release();        resetMocks();        Entry fetchedEntry = getEntry(user, returnedEntry.getId());        assertEquals(returnedEntry.getId(), fetchedEntry.getId());    }        //------------------------------------------------------------------------------    /**      * Test that PUT on the EditURI updates an entry.     */    public void testPutEntry() throws Exception    {        UserData user = (UserData)mUsersCreated.get(0);                WebsiteData website =             getRoller().getUserManager().getWebsite(user.getUserName());               WeblogEntryData entry = (WeblogEntryData)             getRoller().getWeblogManager().getWeblogEntries(                website, null, null, null, WeblogManager.ALL, new Integer(1)).get(0);                // Fetch that entry using Atom        Entry fetchedEntry = getEntry(user, entry.getId());        assertEquals(entry.getId(), fetchedEntry.getId());                // Make a change to the fetched entry        fetchedEntry.setTitle("TEST TITLE");                // Use Atom PUT to update the entry        StringWriter entryWriter = new StringWriter();        AtomServlet.serializeEntry(fetchedEntry, entryWriter);        MockHttpServletRequest mockRequest2 = getMockFactory().getMockRequest();        mockRequest2.setContextPath("/atom");        mockRequest2.setPathInfo(user.getUserName() + "/entry/" + entry.getId());        mockRequest2.addHeader("X-WSSE",            generateWSSEHeader(user.getUserName(), user.getPassword()));        mockRequest2.setBodyContent(entryWriter.toString());        getServletModule().doPut();                      getRoller().release();        resetMocks();        // Get the entry again to make sure the update was made        Entry fetchedEntry2 = getEntry(user, entry.getId());        assertEquals(fetchedEntry.getTitle(), fetchedEntry2.getTitle());    }        //------------------------------------------------------------------------------    /**      * Test that DELETE on EditURI deletes entry.      */    public void testDeleteEntry() throws Exception    {        UserData user = (UserData)mUsersCreated.get(0);        WebsiteData website =             getRoller().getUserManager().getWebsite(user.getUserName());        WeblogEntryData entry = (WeblogEntryData)             getRoller().getWeblogManager().getWeblogEntries(                website, null, null, null, WeblogManager.ALL, new Integer(1)).get(0);        Entry fetchedEntry = getEntry(user, entry.getId());        assertEquals(entry.getId(), fetchedEntry.getId());        // Use Atom DELETE to delete the entry        MockHttpServletRequest mockRequest2 = getMockFactory().getMockRequest();        mockRequest2.setContextPath("/atom");        mockRequest2.setPathInfo(user.getUserName() + "/entry/" + entry.getId());        mockRequest2.addHeader("X-WSSE",                 generateWSSEHeader(user.getUserName(), user.getPassword()));        getServletModule().doDelete();              getRoller().release();        resetMocks();        try         {            getEntry(user, entry.getId()).getId();            fail(); // no exception was thrown!        }        catch (Exception expected) {}    }     //------------------------------------------------------------------------------    private Entry getEntry(UserData user, String id) throws Exception    {        MockHttpServletRequest mockRequest = getMockFactory().getMockRequest();        mockRequest.setContextPath("/atom");        mockRequest.setPathInfo(user.getUserName() + "/entry/" + id);        mockRequest.addHeader("X-WSSE",                 generateWSSEHeader(user.getUserName(), user.getPassword()));        getServletModule().doGet();        String output = getServletModule().getOutput();        return AtomServlet.parseEntry(new StringReader(output));            }        //------------------------------------------------------------------------------    public void testPostResource() throws Exception     {            UserData user = (UserData)mUsersCreated.get(0);                      // read test file into byte array        String fileName = "rssbadge.gif";        File testFile = new File(fileName);        FileInputStream fis = new FileInputStream(testFile);        ByteArrayOutputStream baos = new ByteArrayOutputStream();        Utilities.copyInputToOutput(fis, baos);                // post file as resource        MockHttpServletRequest mockRequest = getMockFactory().getMockRequest();        mockRequest.setContextPath("/atom");        mockRequest.setPathInfo(user.getUserName() + "/resources/");        mockRequest.addHeader("Name", fileName);         mockRequest.addHeader("X-WSSE",                 generateWSSEHeader(user.getUserName(), user.getPassword()));                mockRequest.setBodyContent(baos.toByteArray());        getServletModule().doPost();                MockHttpServletResponse mockResponse = getMockFactory().getMockResponse();        assertEquals(HttpServletResponse.SC_CREATED, mockResponse.getStatusCode());        assertTrue(mockResponse.containsHeader("Location"));                getRoller().release();        resetMocks();    }    //------------------------------------------------------------------------------    public void setUp() throws Exception    {        super.setUp();               super.setUpTestWeblogs();                resetMocks();        MockServletContext ctx = getMockFactory().getMockServletContext();        ctx.setRealPath("/", "");        rollerContext = new MockRollerContext();        rollerContext.init(ctx);    }    //------------------------------------------------------------------------------    /**      * Really really reset mocks.     */    private void resetMocks()     {        mockFactory = null;        getMockFactory().refresh();        getMockFactory().getMockRequest().clearParameters();        getMockFactory().getMockRequest().clearAttributes();        setServletModule(new ServletTestModule(getMockFactory()));                getServletModule().setServlet(            getServletModule().createServlet(AtomServlet.class));        getServletModule().clearOutput();    }        //------------------------------------------------------------------------------    /**     * @param servletModule The servletModule to set.     */    protected void setServletModule(ServletTestModule servletModule)    {        this.servletModule = servletModule;    }    //------------------------------------------------------------------------------    /**     * @return Returns the servletModule.     */    protected ServletTestModule getServletModule()    {        return servletModule;    }       //------------------------------------------------------------------------------    public void tearDown() throws Exception    {        super.tearDown();        super.tearDownTestWeblogs();    }           //------------------------------------------------------------------------    public static Test suite()    {        return new TestSuite(AtomServletTest.class);    }    //------------------------------------------------------------------------------    public static String generateWSSEHeader(String username, String password)        throws Exception    {          byte[] nonceBytes = Long.toString(new Date().getTime()).getBytes();        String nonce = new String(WSSEUtilities.base64Encode(nonceBytes));                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");        String created = sdf.format(new Date());                String digest = WSSEUtilities.generateDigest(                nonceBytes, created.getBytes("UTF-8"), password.getBytes("UTF-8"));                StringBuffer header = new StringBuffer("UsernameToken Username=\"");        header.append(username);        header.append("\", ");        header.append("PasswordDigest=\"");        header.append(digest);        header.append("\", ");        header.append("Nonce=\"");        header.append(nonce);        header.append("\", ");        header.append("Created=\"");        header.append(created);        header.append("\"");        return header.toString();    }}

⌨️ 快捷键说明

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