Package org.geoserver.rest

Source Code of org.geoserver.rest.RESTDispatcherCallbackTest$TestCallback

/* Copyright (c) 2001 - 2011 TOPP - www.openplans.org.  All rights reserved.
* This code is licensed under the GPL 2.0 license, availible at the root
* application directory.
*/
package org.geoserver.rest;

import org.easymock.EasyMock;
import org.geoserver.test.GeoServerTestSupport;
import org.restlet.Restlet;
import org.restlet.data.Request;
import org.restlet.data.Response;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;

public class RESTDispatcherCallbackTest extends GeoServerTestSupport {

    DispatcherCallback callback;
   
    @Override
    protected void setUpInternal() throws Exception {
        callback = EasyMock.createMock(DispatcherCallback.class);
        applicationContext.getBeanFactory().addBeanPostProcessor(new BeanPostProcessor() {
           
            public Object postProcessBeforeInitialization(Object bean, String beanName)
                    throws BeansException {
                if ("testCallback".equals(beanName)) {
                    return callback;
                }
                return bean;
            }
           
            public Object postProcessAfterInitialization(Object bean, String beanName)
                    throws BeansException {
                return bean;
            }
        });
        applicationContext.getBeanFactory().destroySingletons();
        applicationContext.getBeanFactory().preInstantiateSingletons();
       
    }
   
    public void testCallback() throws Exception {
        callback.init((Request)anyObject(), (Response)anyObject());
        expectLastCall();
        callback.dispatched((Request)anyObject(), (Response)anyObject(), (Restlet)anyObject());
        expectLastCall();
        callback.finished((Request)anyObject(), (Response)anyObject());
        expectLastCall();
        replay(callback);
       
        getAsServletResponse("/rest/index.html");
        verify(callback);
    }
   
    public void testCallbackException() throws Exception {
       
        callback.init((Request)anyObject(), (Response)anyObject());
        expectLastCall();
        callback.dispatched((Request)anyObject(), (Response)anyObject(), (Restlet)anyObject());
        expectLastCall();
        callback.exception((Request)anyObject(), (Response)anyObject(), (Exception)anyObject());
        expectLastCall();
        callback.finished((Request)anyObject(), (Response)anyObject());
        expectLastCall();
        replay(callback);
       
        getAsServletResponse("/rest/exception?code=400&message=error");
        verify(callback);
    }

    static class TestCallback implements DispatcherCallback {

        public void init(Request request, Response response) {}

        public void dispatched(Request request, Response response, Restlet restlet) {}

        public void exception(Request request, Response response, Exception error) {}

        public void finished(Request request, Response response) {}

    }
}
TOP

Related Classes of org.geoserver.rest.RESTDispatcherCallbackTest$TestCallback

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.