Package org.apache.roller.webservices.adminapi

Source Code of org.apache.roller.webservices.adminapi.AappTest$HttpResponse

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  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.  For additional information regarding
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
package org.apache.roller.webservices.adminapi;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import junit.framework.TestCase;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.util.Base64;
import org.apache.roller.webservices.adminapi.sdk.MemberEntry;
import org.apache.roller.webservices.adminapi.sdk.MemberEntrySet;
import org.apache.roller.webservices.adminapi.sdk.MissingElementException;
import org.apache.roller.webservices.adminapi.sdk.UnexpectedRootElementException;
import org.apache.roller.webservices.adminapi.sdk.UserEntry;
import org.apache.roller.webservices.adminapi.sdk.UserEntrySet;
import org.apache.roller.webservices.adminapi.sdk.WeblogEntry;
import org.apache.roller.webservices.adminapi.sdk.WeblogEntrySet;
import org.jdom.JDOMException;

public class AappTest extends TestCase {
    public static class HttpResponse {
        private int status;
        private InputStream responseBody;
       
        public HttpResponse(int status) {
            this(status, null);
        }
       
        public HttpResponse(int status, InputStream responseBody) {
            this.status = status;
            this.responseBody = responseBody;
        }
       
        public int getStatus() {
            return status;
        }
       
        public InputStream getResponseBody() {
            return responseBody;
        }
    }
   
    private static final Date sampleDate = new Date();
    private static final String DEFAULT_ENDPOINT_URL = "http://localhost:8080/roller/aapp";
    private static final String DEFAULT_USER = "jtb";
    private static final String DEFAULT_PASSWORD = "iplanet";
   
    protected static String getEndpointUrl() {
        String endpoint = System.getProperty("aapp.endpoint");
        if (endpoint == null) {
            endpoint = DEFAULT_ENDPOINT_URL;
        }
       
        System.err.println("endpoint=" + endpoint);
        return endpoint;
    }

    protected static String getUser() {
        String user = System.getProperties().getProperty("aapp.user");
        if (user == null) {
            user = DEFAULT_USER;
        }
       
        System.err.println("user=" + user);
        return user;
    }

    protected static String getPassword() {
        String password = System.getProperties().getProperty("aapp.password");
        if (password == null) {
            password = DEFAULT_PASSWORD;
        }
       
        System.err.println("password=" + password);       
        return password;
    }

    protected static UserEntry getSampleUserEntry() {
        UserEntry ue = new UserEntry("foo", getEndpointUrl());
        ue.setEmailAddress("foo@bar.org");
        ue.setFullName("Foo Bar");
        ue.setLocale(Locale.getDefault());
        ue.setTimezone(TimeZone.getDefault());
        ue.setPassword("foo");
       
        return ue;
    }

    protected static MemberEntry getSampleMemberEntry() {
        MemberEntry me = new MemberEntry("fooblog", "foo", getEndpointUrl());
        me.setPermission(MemberEntry.Permissions.AUTHOR);
        return me;
    }
   
    protected static UserEntry updateSampleUserEntry(UserEntry ue) {
        UserEntry ueUpdate = new UserEntry(ue.getName(), getEndpointUrl());
        ueUpdate.setEmailAddress("billy@bob.org");
        ueUpdate.setFullName("Billy Bob");
        ueUpdate.setLocale(new Locale("ms", "MY"));
        ueUpdate.setTimezone(TimeZone.getTimeZone("Asia/Kuala_Lumpur"));
        ueUpdate.setPassword("billy");
       
        return ueUpdate;
    }

    protected static WeblogEntry updateSampleWeblogEntry(WeblogEntry we) {
        WeblogEntry weUpdate = new WeblogEntry(we.getHandle(), getEndpointUrl());
        weUpdate.setEmailAddress("billy@bob.org");
        weUpdate.setName("Billy Bob Weblog Name");
        weUpdate.setLocale(new Locale("ms", "MY"));
        weUpdate.setTimezone(TimeZone.getTimeZone("Asia/Kuala_Lumpur"));
        weUpdate.setDescription("Billy Bob Weblog Description");
        weUpdate.setCreatingUser(we.getCreatingUser());
       
        return weUpdate;
    }

    protected static MemberEntry updateSampleMemberEntry(MemberEntry me) {
        MemberEntry meUpdate = new MemberEntry(me.getHandle(), me.getName(), getEndpointUrl());
        meUpdate.setPermission(MemberEntry.Permissions.LIMITED);
       
        return meUpdate;
    }
   
    protected static UserEntrySet updateSampleUserEntrySet(UserEntrySet ues) {
        UserEntry ue = (UserEntry)ues.getEntries()[0];
        UserEntry ueUpdated = updateSampleUserEntry(ue);       
        UserEntrySet uesUpdated = new UserEntrySet(getEndpointUrl());
        uesUpdated.setEntries(new UserEntry[] { ueUpdated });
       
        return uesUpdated;
    }
   
    protected static WeblogEntrySet updateSampleWeblogEntrySet(WeblogEntrySet wes) {
        WeblogEntry we = (WeblogEntry)wes.getEntries()[0];
        WeblogEntry weUpdated = updateSampleWeblogEntry(we);       
        WeblogEntrySet wesUpdated = new WeblogEntrySet(getEndpointUrl());
        wesUpdated.setEntries(new WeblogEntry[] { weUpdated });
       
        return wesUpdated;
    }

    protected static MemberEntrySet updateSampleMemberEntrySet(MemberEntrySet mes) {
        MemberEntry me = (MemberEntry)mes.getEntries()[0];
        MemberEntry meUpdated = updateSampleMemberEntry(me);       
        MemberEntrySet mesUpdated = new MemberEntrySet(getEndpointUrl());
        mesUpdated.setEntries(new MemberEntry[] { meUpdated });
       
        return mesUpdated;
    }

    protected static WeblogEntry getSampleWeblogEntry() {
        WeblogEntry we = new WeblogEntry("fooblog", getEndpointUrl());
        we.setEmailAddress("foo@bar.org");
        we.setCreatingUser("foo");
        we.setDescription("Foo Weblog Description");
        we.setLocale(Locale.getDefault());
        we.setTimezone(TimeZone.getDefault());
        we.setName("Foo Weblog Name");
       
        return we;
    }   
   
    protected static UserEntrySet getSampleUserEntrySet() {
        UserEntry ue = getSampleUserEntry();
        UserEntrySet ues = new UserEntrySet(getEndpointUrl());
        ues.setEntries(new UserEntry[] { ue });
       
        return ues;
    }
   
    protected static WeblogEntrySet getSampleWeblogEntrySet() {
        WeblogEntry we = getSampleWeblogEntry();
        WeblogEntrySet wes = new WeblogEntrySet(getEndpointUrl());
        wes.setEntries(new WeblogEntry[] { we });
       
        return wes;
    }
   
    protected static MemberEntrySet getSampleMemberEntrySet() {
        MemberEntry me = getSampleMemberEntry();
        MemberEntrySet mes = new MemberEntrySet(getEndpointUrl());
        mes.setEntries(new MemberEntry[] { me });
       
        return mes;
    }

    protected UserEntrySet createSampleUser() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        UserEntrySet ues = getSampleUserEntrySet();
       
        String url = ues.getHref();
        String user = getUser();
        String password = getPassword();
       
        String body = ues.toString();
       
        HttpResponse res = post(url, user, password, body);
        assertEquals(201, res.getStatus());
       
        UserEntrySet uesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           uesResponse = new UserEntrySet(responseBody, getEndpointUrl());
        }
       
        return uesResponse;
    }

    protected UserEntrySet updateSampleUser() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        UserEntrySet ues = updateSampleUserEntrySet(getSampleUserEntrySet());
       
        String url = ues.getHref();
        String user = getUser();
        String password = getPassword();
       
        String body = ues.toString();
       
        HttpResponse res = put(url, user, password, body);
        assertEquals(200, res.getStatus());
       
        UserEntrySet uesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           uesResponse = new UserEntrySet(responseBody, getEndpointUrl());
        }
       
        return uesResponse;
    }

    protected WeblogEntrySet updateSampleWeblog() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        WeblogEntrySet wes = updateSampleWeblogEntrySet(getSampleWeblogEntrySet());
       
        String url = wes.getHref();
        String user = getUser();
        String password = getPassword();
       
        String body = wes.toString();
       
        HttpResponse res = put(url, user, password, body);
        assertEquals(200, res.getStatus());
       
        WeblogEntrySet wesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           wesResponse = new WeblogEntrySet(responseBody, getEndpointUrl());
        }
       
        return wesResponse;
    }

    protected MemberEntrySet updateSampleMember() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        MemberEntrySet mes = updateSampleMemberEntrySet(getSampleMemberEntrySet());
       
        String url = mes.getHref();
        String user = getUser();
        String password = getPassword();
       
        String body = mes.toString();
       
        HttpResponse res = put(url, user, password, body);
        assertEquals(200, res.getStatus());
       
        MemberEntrySet mesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           mesResponse = new MemberEntrySet(responseBody, getEndpointUrl());
        }
       
        return mesResponse;
    }
   
    protected WeblogEntrySet createSampleWeblog() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        WeblogEntrySet wes = getSampleWeblogEntrySet();
       
        String url = wes.getHref();
        String user = getUser();
        String password = getPassword();
       
        String body = wes.toString();
       
        HttpResponse res = post(url, user, password, body);
        assertEquals(201, res.getStatus());
       
        WeblogEntrySet wesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           wesResponse = new WeblogEntrySet(responseBody, getEndpointUrl());
        }
       
        return wesResponse;
    }

    protected MemberEntrySet createSampleMember() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        MemberEntrySet mes = getSampleMemberEntrySet();
       
        String url = mes.getHref();
        String user = getUser();
        String password = getPassword();
       
        String body = mes.toString();
       
        HttpResponse res = post(url, user, password, body);
        assertEquals(201, res.getStatus());
       
        MemberEntrySet mesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           mesResponse = new MemberEntrySet(responseBody, getEndpointUrl());
        }
       
        return mesResponse;
    }
   
    protected UserEntrySet deleteSampleUser() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        UserEntry ue = getSampleUserEntry();
       
        HttpResponse res = delete(ue.getHref(), getUser(), getPassword());
        assertEquals(200, res.getStatus());
       
        UserEntrySet uesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           uesResponse = new UserEntrySet(responseBody, getEndpointUrl());
        }
       
        return uesResponse;
    }

    protected UserEntrySet fetchSampleUser() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        UserEntry ue = getSampleUserEntry();
       
        HttpResponse res = get(ue.getHref(), getUser(), getPassword());
        assertEquals(200, res.getStatus());
       
        UserEntrySet uesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           uesResponse = new UserEntrySet(responseBody, getEndpointUrl());
        }
       
        return uesResponse;
    }

    protected WeblogEntrySet fetchSampleWeblog() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        WeblogEntry we = getSampleWeblogEntry();
       
        HttpResponse res = get(we.getHref(), getUser(), getPassword());
        assertEquals(200, res.getStatus());
       
        WeblogEntrySet wesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           wesResponse = new WeblogEntrySet(responseBody, getEndpointUrl());
        }
       
        return wesResponse;
    }

    protected MemberEntrySet fetchSampleMember() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        MemberEntry me = getSampleMemberEntry();
       
        HttpResponse res = get(me.getHref(), getUser(), getPassword());
        assertEquals(200, res.getStatus());
       
        MemberEntrySet mesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           mesResponse = new MemberEntrySet(responseBody, getEndpointUrl());
        }
       
        return mesResponse;
    }
   
    protected WeblogEntrySet deleteSampleWeblog() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        WeblogEntry we = getSampleWeblogEntry();
       
        HttpResponse res = delete(we.getHref(), getUser(), getPassword());
        assertEquals(200, res.getStatus());
       
        WeblogEntrySet wesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           wesResponse = new WeblogEntrySet(responseBody, getEndpointUrl());
        }
       
        return wesResponse;
    }

    protected MemberEntrySet deleteSampleMember() throws IOException, JDOMException, MissingElementException, UnexpectedRootElementException {
        MemberEntry me = getSampleMemberEntry();
       
        HttpResponse res = delete(me.getHref(), getUser(), getPassword());
        assertEquals(200, res.getStatus());
       
        MemberEntrySet mesResponse = null;
        InputStream responseBody = res.getResponseBody();
        if (responseBody != null) {
           mesResponse = new MemberEntrySet(responseBody, getEndpointUrl());
        }
       
        return mesResponse;
    }
   
    protected static HttpResponse post(String url, String user, String password, String body) throws IOException {
        HttpClient httpClient = new HttpClient();
        EntityEnclosingMethod method = new PostMethod(url);
        addAuthHeader(method, user, password);
       
        method.setRequestBody(body);
       
        String contentType = "application/xml; charset=utf-8";
        method.setRequestHeader("Content-type", contentType);
       
        int status = httpClient.executeMethod(method);
        InputStream responseBody = method.getResponseBodyAsStream();
       
        HttpResponse res = new HttpResponse(status, responseBody);
        return res;
    }

    protected static HttpResponse put(String url, String user, String password, String body) throws IOException {
        HttpClient httpClient = new HttpClient();
        EntityEnclosingMethod method = new PutMethod(url);
        addAuthHeader(method, user, password);
       
        method.setRequestBody(body);
       
        String contentType = "application/xml; charset=utf-8";
        method.setRequestHeader("Content-type", contentType);
       
        int status = httpClient.executeMethod(method);
        InputStream responseBody = method.getResponseBodyAsStream();
       
        HttpResponse res = new HttpResponse(status, responseBody);
        return res;
    }
   
    protected static HttpResponse get(String url, String user, String password) throws IOException {
        HttpClient httpClient = new HttpClient();
        HttpMethod method = new GetMethod(url);
        addAuthHeader(method, user, password);
       
        String contentType = "application/xml; charset=utf-8";
        method.setRequestHeader("Content-type", contentType);
       
        int status = httpClient.executeMethod(method);
        InputStream responseBody = method.getResponseBodyAsStream();
       
        HttpResponse res = new HttpResponse(status, responseBody);
        return res;
    }
   
    protected static HttpResponse delete(String url, String user, String password) throws IOException {
        HttpClient httpClient = new HttpClient();
        HttpMethod method = new DeleteMethod(url);
        addAuthHeader(method, user, password);
               
        String contentType = "application/xml; charset=utf-8";
        method.setRequestHeader("Content-type", contentType);
       
        int status = httpClient.executeMethod(method);
        InputStream responseBody = method.getResponseBodyAsStream();
       
        HttpResponse res = new HttpResponse(status, responseBody);
        return res;
    }
   
    private static void addAuthHeader(HttpMethod method, String user, String password) {
        String credentials = user + ":" + password;
        method.setRequestHeader("Authorization", "Basic "  + new String(Base64.encode(credentials.getBytes())));
    }  
}
TOP

Related Classes of org.apache.roller.webservices.adminapi.AappTest$HttpResponse

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.