Search in sources :

Example 6 with RemoteSession

use of org.apache.cayenne.remote.RemoteSession in project cayenne by apache.

the class BaseRemoteServiceTest method testProcessMessageExceptionSerializability.

@Test
public void testProcessMessageExceptionSerializability() throws Throwable {
    Map<String, String> map = new HashMap<>();
    ObjectContextFactory factory = new ObjectContextFactory() {

        public ObjectContext createContext(DataChannel parent) {
            return null;
        }

        public ObjectContext createContext() {
            return null;
        }
    };
    BaseRemoteService service = new BaseRemoteService(factory, map) {

        @Override
        protected ServerSession createServerSession() {
            return new ServerSession(new RemoteSession("a"), null);
        }

        @Override
        protected ServerSession createServerSession(String name) {
            return createServerSession();
        }

        @Override
        protected ServerSession getServerSession() {
            return createServerSession();
        }
    };
    try {
        service.processMessage(new QueryMessage(null) {

            @Override
            public Query getQuery() {
                // serializable exception thrown
                throw new CayenneRuntimeException();
            }
        });
        fail("Expected to throw");
    } catch (Exception ex) {
        Util.cloneViaSerialization(ex);
    }
    try {
        service.processMessage(new QueryMessage(null) {

            @Override
            public Query getQuery() {
                // non-serializable exception thrown
                throw new MockUnserializableException();
            }
        });
        fail("Expected to throw");
    } catch (Exception ex) {
        Util.cloneViaSerialization(ex);
    }
}
Also used : QueryMessage(org.apache.cayenne.remote.QueryMessage) Query(org.apache.cayenne.query.Query) HashMap(java.util.HashMap) CayenneRuntimeException(org.apache.cayenne.CayenneRuntimeException) ObjectContextFactory(org.apache.cayenne.configuration.ObjectContextFactory) CayenneRuntimeException(org.apache.cayenne.CayenneRuntimeException) DataChannel(org.apache.cayenne.DataChannel) RemoteSession(org.apache.cayenne.remote.RemoteSession) Test(org.junit.Test)

Aggregations

RemoteSession (org.apache.cayenne.remote.RemoteSession)6 DataChannel (org.apache.cayenne.DataChannel)3 HttpSession (javax.servlet.http.HttpSession)2 HashMap (java.util.HashMap)1 ServletException (javax.servlet.ServletException)1 CayenneRuntimeException (org.apache.cayenne.CayenneRuntimeException)1 ObjectContextFactory (org.apache.cayenne.configuration.ObjectContextFactory)1 Query (org.apache.cayenne.query.Query)1 ClientMessage (org.apache.cayenne.remote.ClientMessage)1 QueryMessage (org.apache.cayenne.remote.QueryMessage)1 Test (org.junit.Test)1