You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by do...@apache.org on 2013/08/21 16:08:29 UTC

svn commit: r1516164 [16/20] - in /james/hupa/trunk: ./ client/ client/src/main/java/com/ client/src/main/java/com/google/ client/src/main/java/com/google/web/ client/src/main/java/com/google/web/bindery/ client/src/main/java/com/google/web/bindery/req...

Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaGuiceTestCase.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaGuiceTestCase.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaGuiceTestCase.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaGuiceTestCase.java Wed Aug 21 14:08:19 2013
@@ -1,116 +1,112 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  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.                                           *
- ****************************************************************/
-
-
-package org.apache.hupa.server;
-
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-import com.sun.mail.imap.IMAPStore;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.logging.Log;
-import org.apache.hupa.server.guice.GuiceServerTestModule;
-import org.apache.hupa.server.handler.AbstractSendMessageHandler;
-import org.apache.hupa.server.handler.ContactsHandler;
-import org.apache.hupa.server.handler.CreateFolderHandler;
-import org.apache.hupa.server.handler.DeleteFolderHandler;
-import org.apache.hupa.server.handler.DeleteMessageByUidHandler;
-import org.apache.hupa.server.handler.FetchFoldersHandler;
-import org.apache.hupa.server.handler.FetchMessagesHandler;
-import org.apache.hupa.server.handler.ForwardMessageHandler;
-import org.apache.hupa.server.handler.GetMessageDetailsHandler;
-import org.apache.hupa.server.handler.IdleHandler;
-import org.apache.hupa.server.handler.LoginUserHandler;
-import org.apache.hupa.server.handler.LogoutUserHandler;
-import org.apache.hupa.server.handler.ReplyMessageHandler;
-import org.apache.hupa.server.handler.SendMessageHandler;
-import org.apache.hupa.server.preferences.UserPreferencesStorage;
-import org.apache.hupa.server.utils.SessionUtils;
-import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.data.User;
-import org.apache.hupa.shared.rpc.SendMessage;
-
-import javax.mail.Session;
-import javax.servlet.http.HttpSession;
-
-public abstract class HupaGuiceTestCase extends TestCase {
-
-    protected Injector injector = Guice.createInjector(getModules());
-    
-    protected ContactsHandler contactsHandler;
-    protected IdleHandler idleHandler;
-    protected CreateFolderHandler createFolderHandler;
-    protected DeleteFolderHandler deleteFolderHandler;
-    protected FetchFoldersHandler fetchFoldersHandler;
-    protected FetchMessagesHandler fetchMessagesHandler;
-    protected DeleteMessageByUidHandler deleteMessageByUidHandler;
-    protected AbstractSendMessageHandler<SendMessage> sendMessageHandler;
-    protected ForwardMessageHandler forwardMessageHandler;
-    protected GetMessageDetailsHandler getDetailsHandler;
-    protected Log logger;
-    protected LoginUserHandler loginUser;
-    protected LogoutUserHandler logoutUser;
-    protected ReplyMessageHandler reMsgHndl;
-    protected Session session;
-    protected IMAPStoreCache storeCache;
-    protected User testUser;
-    protected UserPreferencesStorage userPreferences;
-    protected IMAPStore store;
-    protected HttpSession httpSession;
-    
-    protected Module[] getModules() {
-        return new Module[]{new GuiceServerTestModule()};
-    }
-    
-    @Override
-    protected void setUp() throws Exception {
-        try {
-            contactsHandler = injector.getInstance(ContactsHandler.class);
-            idleHandler = injector.getInstance(IdleHandler.class);
-            createFolderHandler = injector.getInstance(CreateFolderHandler.class);
-            deleteFolderHandler = injector.getInstance(DeleteFolderHandler.class);
-            fetchFoldersHandler = injector.getInstance(FetchFoldersHandler.class);
-            fetchMessagesHandler = injector.getInstance(FetchMessagesHandler.class);
-            deleteMessageByUidHandler = injector.getInstance(DeleteMessageByUidHandler.class);
-            sendMessageHandler = injector.getInstance(SendMessageHandler.class);
-            forwardMessageHandler = injector.getInstance(ForwardMessageHandler.class);
-            getDetailsHandler = injector.getInstance(GetMessageDetailsHandler.class);
-            logger = injector.getInstance(Log.class);
-            loginUser = injector.getInstance(LoginUserHandler.class);
-            logoutUser = injector.getInstance(LogoutUserHandler.class);
-            reMsgHndl = injector.getInstance(ReplyMessageHandler.class);
-            session = injector.getInstance(Session.class);
-            storeCache = injector.getInstance(IMAPStoreCache.class);
-            userPreferences = injector.getInstance(UserPreferencesStorage.class);
-            
-            httpSession = injector.getInstance(HttpSession.class);
-            SessionUtils.cleanSessionAttributes(httpSession);
-            testUser = injector.getInstance(User.class);
-            store = storeCache.get(testUser);
-            httpSession.setAttribute(SConsts.USER_SESS_ATTR, testUser);
-            
-        } catch (Exception e) {
-        }
-    }
-
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  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.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.server;
+
+import javax.mail.Session;
+import javax.servlet.http.HttpSession;
+
+import org.apache.commons.logging.Log;
+import org.apache.hupa.server.guice.GuiceServerTestModule;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
+import org.apache.hupa.server.service.CreateFolderService;
+import org.apache.hupa.server.service.CreateFolderServiceImpl;
+import org.apache.hupa.server.service.DeleteFolderService;
+import org.apache.hupa.server.service.DeleteFolderServiceImpl;
+import org.apache.hupa.server.service.DeleteMessageByUidService;
+import org.apache.hupa.server.service.DeleteMessageByUidServiceImpl;
+import org.apache.hupa.server.service.FetchFoldersService;
+import org.apache.hupa.server.service.FetchFoldersServiceImpl;
+import org.apache.hupa.server.service.FetchMessagesService;
+import org.apache.hupa.server.service.FetchMessagesServiceImpl;
+import org.apache.hupa.server.service.GetMessageDetailsServiceImpl;
+import org.apache.hupa.server.service.IdleService;
+import org.apache.hupa.server.service.IdleServiceImpl;
+import org.apache.hupa.server.service.LoginUserService;
+import org.apache.hupa.server.service.LoginUserServiceImpl;
+import org.apache.hupa.server.service.LogoutUserService;
+import org.apache.hupa.server.service.LogoutUserServiceImpl;
+import org.apache.hupa.server.service.SendReplyMessageServiceImpl;
+import org.apache.hupa.server.utils.SessionUtils;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.domain.User;
+import org.junit.Before;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import com.sun.mail.imap.IMAPStore;
+
+public class HupaGuiceTestCase{
+
+    protected Injector injector = Guice.createInjector(getModules());
+    
+	protected CreateFolderService createFolderService;
+	protected FetchFoldersService fetchFoldersService;
+	protected FetchMessagesService fetchMessagesService;
+	protected DeleteFolderService deleteFolderService;
+	protected DeleteMessageByUidService deleteMessageByUidService;
+	protected GetMessageDetailsServiceImpl  getMessageDetailsService;
+	protected IdleService idleService;
+	protected LoginUserService loginUserService;
+	protected LogoutUserService logoutUserService;
+	protected SendReplyMessageServiceImpl sendReplyMessageService;
+	
+	protected Log logger;
+    protected IMAPStoreCache storeCache;
+    protected User testUser;
+    protected UserPreferencesStorage userPreferences;
+    protected IMAPStore store;
+    protected HttpSession httpSession;
+    protected Session session;
+    protected Module[] getModules() {
+        return new Module[]{new GuiceServerTestModule()};
+    }
+    
+
+    @Before
+    public void setUp(){
+
+        try {
+        	createFolderService = injector.getInstance(CreateFolderServiceImpl.class);
+        	fetchFoldersService = injector.getInstance(FetchFoldersServiceImpl.class);
+        	fetchMessagesService = injector.getInstance(FetchMessagesServiceImpl.class);
+        	deleteFolderService = injector.getInstance(DeleteFolderServiceImpl.class);
+        	deleteMessageByUidService = injector.getInstance(DeleteMessageByUidServiceImpl.class);
+        	getMessageDetailsService = injector.getInstance(GetMessageDetailsServiceImpl.class);
+        	idleService = injector.getInstance(IdleServiceImpl.class);
+        	loginUserService = injector.getInstance(LoginUserServiceImpl.class);
+        	logoutUserService = injector.getInstance(LogoutUserServiceImpl.class);
+        	sendReplyMessageService = injector.getInstance(SendReplyMessageServiceImpl.class);
+        	
+        	logger = injector.getInstance(Log.class);
+            session = injector.getInstance(Session.class);
+            storeCache = injector.getInstance(IMAPStoreCache.class);
+            userPreferences = injector.getInstance(UserPreferencesStorage.class);
+
+            httpSession = injector.getInstance(HttpSession.class);
+            SessionUtils.cleanSessionAttributes(httpSession);
+            testUser = injector.getInstance(User.class);
+            store = storeCache.get(testUser);
+            httpSession.setAttribute(SConsts.USER_SESS_ATTR, testUser);
+        }catch (Exception e) {
+        	e.printStackTrace();
+        }
+    }
+}

Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java Wed Aug 21 14:08:19 2013
@@ -27,51 +27,83 @@ import javax.servlet.http.HttpSession;
 import org.apache.commons.logging.Log;
 import org.apache.hupa.server.IMAPStoreCache;
 import org.apache.hupa.server.InMemoryIMAPStoreCache;
-import org.apache.hupa.server.guice.demo.DemoGuiceServerModule.DemoIMAPStoreCache;
 import org.apache.hupa.server.guice.providers.DefaultUserSettingsProvider;
 import org.apache.hupa.server.guice.providers.JavaMailSessionProvider;
-import org.apache.hupa.server.handler.AbstractSendMessageHandler;
-import org.apache.hupa.server.handler.ContactsHandler;
-import org.apache.hupa.server.handler.CreateFolderHandler;
-import org.apache.hupa.server.handler.DeleteFolderHandler;
-import org.apache.hupa.server.handler.DeleteMessageByUidHandler;
-import org.apache.hupa.server.handler.FetchFoldersHandler;
-import org.apache.hupa.server.handler.FetchMessagesHandler;
-import org.apache.hupa.server.handler.ForwardMessageHandler;
-import org.apache.hupa.server.handler.GetMessageDetailsHandler;
-import org.apache.hupa.server.handler.IdleHandler;
-import org.apache.hupa.server.handler.LoginUserHandler;
-import org.apache.hupa.server.handler.LogoutUserHandler;
-import org.apache.hupa.server.handler.ReplyMessageHandler;
-import org.apache.hupa.server.handler.SendMessageHandler;
+import org.apache.hupa.server.ioc.demo.DemoGuiceServerModule.DemoIMAPStoreCache;
 import org.apache.hupa.server.mock.MockConstants;
 import org.apache.hupa.server.mock.MockHttpSessionProvider;
 import org.apache.hupa.server.mock.MockIMAPStore;
 import org.apache.hupa.server.mock.MockLogProvider;
 import org.apache.hupa.server.preferences.InSessionUserPreferencesStorage;
 import org.apache.hupa.server.preferences.UserPreferencesStorage;
+import org.apache.hupa.server.service.CheckSessionServiceImpl;
+import org.apache.hupa.server.service.CreateFolderServiceImpl;
+import org.apache.hupa.server.service.DeleteFolderServiceImpl;
+import org.apache.hupa.server.service.DeleteMessageAllServiceImpl;
+import org.apache.hupa.server.service.DeleteMessageByUidServiceImpl;
+import org.apache.hupa.server.service.FetchFoldersServiceImpl;
+import org.apache.hupa.server.service.FetchMessagesServiceImpl;
+import org.apache.hupa.server.service.GetMessageDetailsServiceImpl;
+import org.apache.hupa.server.service.GetMessageRawServiceImpl;
+import org.apache.hupa.server.service.IdleServiceImpl;
+import org.apache.hupa.server.service.ImapFolderServiceImpl;
+import org.apache.hupa.server.service.LoginUserServiceImpl;
+import org.apache.hupa.server.service.LogoutUserServiceImpl;
+import org.apache.hupa.server.service.MoveMessageServiceImpl;
+import org.apache.hupa.server.service.RenameFolderServiceImpl;
+import org.apache.hupa.server.service.SendForwardMessageServiceImpl;
+import org.apache.hupa.server.service.SendMessageBaseServiceImpl;
+import org.apache.hupa.server.service.SendReplyMessageServiceImpl;
+import org.apache.hupa.server.service.SetFlagServiceImpl;
+import org.apache.hupa.server.servlet.DownloadAttachmentServlet;
+import org.apache.hupa.server.servlet.MessageSourceServlet;
+import org.apache.hupa.server.servlet.UploadAttachmentServlet;
 import org.apache.hupa.server.utils.ConfigurationProperties;
-import org.apache.hupa.shared.data.Settings;
-import org.apache.hupa.shared.data.User;
-import org.apache.hupa.shared.rpc.Contacts;
-import org.apache.hupa.shared.rpc.SendMessage;
+import org.apache.hupa.shared.data.CreateFolderActionImpl;
+import org.apache.hupa.shared.data.DeleteFolderActionImpl;
+import org.apache.hupa.shared.data.DeleteMessageAllActionImpl;
+import org.apache.hupa.shared.data.DeleteMessageByUidActionImpl;
+import org.apache.hupa.shared.data.FetchMessagesActionImpl;
+import org.apache.hupa.shared.data.FetchMessagesResultImpl;
+import org.apache.hupa.shared.data.GenericResultImpl;
+import org.apache.hupa.shared.data.GetMessageDetailsActionImpl;
+import org.apache.hupa.shared.data.GetMessageDetailsResultImpl;
+import org.apache.hupa.shared.data.GetMessageRawActionImpl;
+import org.apache.hupa.shared.data.GetMessageRawResultImpl;
+import org.apache.hupa.shared.data.IdleActionImpl;
+import org.apache.hupa.shared.data.IdleResultImpl;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.data.LogoutUserActionImpl;
+import org.apache.hupa.shared.data.MailHeaderImpl;
+import org.apache.hupa.shared.data.MessageAttachmentImpl;
+import org.apache.hupa.shared.data.MessageDetailsImpl;
+import org.apache.hupa.shared.data.MoveMessageActionImpl;
+import org.apache.hupa.shared.data.RenameFolderActionImpl;
+import org.apache.hupa.shared.data.SendForwardMessageActionImpl;
+import org.apache.hupa.shared.data.SendMessageActionImpl;
+import org.apache.hupa.shared.data.SendReplyMessageActionImpl;
+import org.apache.hupa.shared.data.SetFlagActionImpl;
+import org.apache.hupa.shared.data.SmtpMessageImpl;
+import org.apache.hupa.shared.data.TagImpl;
+import org.apache.hupa.shared.data.UserImpl;
+import org.apache.hupa.shared.domain.CreateFolderAction;
+import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.domain.Settings;
+import org.apache.hupa.shared.domain.User;
 
 import com.google.inject.Provider;
 import com.google.inject.Singleton;
 import com.google.inject.name.Names;
 import com.sun.mail.imap.IMAPStore;
 
-/**
- * Guice module used in server tests.
- */
 public class GuiceServerTestModule extends AbstractGuiceTestModule {
 
     protected Class<? extends UserPreferencesStorage> userPreferencesStorageClass = InSessionUserPreferencesStorage.class;
     protected Class<? extends Provider<Log>> logProviderClass = MockLogProvider.class;
     protected Properties properties = MockConstants.mockProperties;
+	@Override
+	protected void configure() {
 
-    @Override
-    protected void configureHandlers() {
         ConfigurationProperties.validateProperties(properties);
         Names.bindProperties(binder(), properties);
 
@@ -82,7 +114,7 @@ public class GuiceServerTestModule exten
         bind(Log.class).toProvider(logProviderClass).in(Singleton.class);
 
         bind(IMAPStore.class).to(MockIMAPStore.class);
-
+        
         if (properties == MockConstants.mockProperties) {
             bind(IMAPStoreCache.class).to(DemoIMAPStoreCache.class).in(
                     Singleton.class);
@@ -91,28 +123,68 @@ public class GuiceServerTestModule exten
                     Singleton.class);
         }
 
-        bind(LoginUserHandler.class);
-        bind(LogoutUserHandler.class);
-        bind(IdleHandler.class);
-
-        bind(FetchFoldersHandler.class);
-        bind(CreateFolderHandler.class);
-        bind(DeleteFolderHandler.class);
-        bind(FetchMessagesHandler.class);
-        bind(DeleteMessageByUidHandler.class);
-        bind(GetMessageDetailsHandler.class);
-        bind(AbstractSendMessageHandler.class).to(SendMessageHandler.class);
-        bind(SendMessageHandler.class);
-        bind(ReplyMessageHandler.class);
-        bind(ForwardMessageHandler.class);
-
-        bindHandler(Contacts.class, ContactsHandler.class);
-        bindHandler(SendMessage.class, SendMessageHandler.class);
 
+        bind(MailHeaderImpl.class);
+		
+		bind(UserImpl.class);
+		bind(ImapFolder.class).to(ImapFolderImpl.class);
+		bind(TagImpl.class);
+		bind(MessageDetailsImpl.class);
+		bind(MessageAttachmentImpl.class);
+		bind(SmtpMessageImpl.class);
+
+		bind(CreateFolderAction.class).to(CreateFolderActionImpl.class);
+		bind(GenericResultImpl.class);
+		bind(FetchMessagesActionImpl.class);
+		bind(FetchMessagesResultImpl.class);
+//		bind(CreateFolderActionImpl.class);
+		bind(DeleteFolderActionImpl.class);
+		bind(RenameFolderActionImpl.class);
+		bind(DeleteMessageAllActionImpl.class);
+		bind(DeleteMessageByUidActionImpl.class);
+		bind(GetMessageDetailsActionImpl.class);
+		bind(GetMessageDetailsResultImpl.class);
+		bind(SendMessageActionImpl.class);
+		bind(SendForwardMessageActionImpl.class);
+		bind(SendReplyMessageActionImpl.class);
+		bind(GetMessageRawActionImpl.class);
+		bind(GetMessageRawResultImpl.class);
+		bind(IdleActionImpl.class);
+		bind(IdleResultImpl.class);
+		bind(LogoutUserActionImpl.class);
+		bind(MoveMessageActionImpl.class);
+		bind(SetFlagActionImpl.class);
+		
+		
+		
+		bind(CheckSessionServiceImpl.class);
+		bind(LoginUserServiceImpl.class);
+		bind(ImapFolderServiceImpl.class);
+		bind(FetchFoldersServiceImpl.class);
+		bind(FetchMessagesServiceImpl.class);
+		bind(CreateFolderServiceImpl.class);
+		bind(DeleteFolderServiceImpl.class);
+		bind(RenameFolderServiceImpl.class);
+		bind(DeleteMessageAllServiceImpl.class);
+		bind(DeleteMessageByUidServiceImpl.class);
+		bind(GetMessageDetailsServiceImpl.class);
+		bind(SendMessageBaseServiceImpl.class);
+		bind(SendForwardMessageServiceImpl.class);
+		bind(SendReplyMessageServiceImpl.class);
+		bind(GetMessageRawServiceImpl.class);
+		bind(IdleServiceImpl.class);
+		bind(LogoutUserServiceImpl.class);
+		bind(MoveMessageServiceImpl.class);
+		bind(SetFlagServiceImpl.class);
+
+        bind(DownloadAttachmentServlet.class).in(Singleton.class);
+        bind(UploadAttachmentServlet.class).in(Singleton.class);
+        bind(MessageSourceServlet.class).in(Singleton.class);
+        
         bind(UserPreferencesStorage.class).to(userPreferencesStorageClass);
-
         bind(User.class).to(TestUser.class).in(Singleton.class);
         bind(Properties.class).toInstance(properties);
-    }
+		
+	}
 
-}
\ No newline at end of file
+}

Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/ServerModulTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/ServerModulTest.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/ServerModulTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/ServerModulTest.java Wed Aug 21 14:08:19 2013
@@ -27,6 +27,7 @@ import java.util.Properties;
 import junit.framework.Assert;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.hupa.server.ioc.GuiceListener;
 import org.apache.hupa.server.mock.MockConstants;
 import org.apache.hupa.server.utils.ConfigurationProperties;
 import org.junit.Before;
@@ -36,7 +37,7 @@ public class ServerModulTest {
     private String tmpDir = System.getProperty("java.io.tmpdir");
 //    private GuiceServerModule module = new GuiceServerModule(tmpDir);
     
-    private String configDir = GuiceServletConfig.CONFIG_DIR_IN_WAR;
+    private String configDir = GuiceListener.CONFIG_DIR_IN_WAR;
     
 
     @Before
@@ -61,7 +62,7 @@ public class ServerModulTest {
 
     @Test
     public void testLoadPropertiesWithEmptyFile() throws Exception {
-        GuiceServletConfig sconfig = new GuiceServletConfig();
+        GuiceListener sconfig = new GuiceListener();
         
         File tmp = File.createTempFile("foo", ".properties");
         tmp.deleteOnExit();
@@ -74,7 +75,7 @@ public class ServerModulTest {
             Assert.fail("IllegalArgumentException must be thrown because of missing mandatory configuration properties");
         }
 
-        System.setProperty(GuiceServletConfig.SYS_PROP_CONFIG_FILE, tmp.toString());
+        System.setProperty(GuiceListener.SYS_PROP_CONFIG_FILE, tmp.toString());
         try {
             sconfig.loadProperties();
         } catch (IllegalArgumentException e) {
@@ -82,7 +83,7 @@ public class ServerModulTest {
         } catch (Exception e) {
             Assert.fail("IllegalArgumentException must be thrown because of missing mandatory configuration properties");
         }
-        System.clearProperty(GuiceServletConfig.SYS_PROP_CONFIG_FILE);
+        System.clearProperty(GuiceListener.SYS_PROP_CONFIG_FILE);
     }
 
     @Test
@@ -96,13 +97,13 @@ public class ServerModulTest {
         }
         FileUtils.writeLines(tmp, lines);
         
-        System.setProperty(GuiceServletConfig.SYS_PROP_CONFIG_FILE, tmp.getAbsolutePath());
-        p = new GuiceServletConfig().loadProperties();
+        System.setProperty(GuiceListener.SYS_PROP_CONFIG_FILE, tmp.getAbsolutePath());
+        p = new GuiceListener().loadProperties();
         Assert.assertNotNull(p);
         Assert.assertEquals(MockConstants.mockSettings.getInboxFolderName(), p.get("DefaultInboxFolder"));
         Assert.assertEquals(MockConstants.mockSettings.getTrashFolderName(), p.get("DefaultTrashFolder"));
         Assert.assertEquals(MockConstants.mockSettings.getSentFolderName(), p.get("DefaultSentFolder"));
-        System.clearProperty(GuiceServletConfig.SYS_PROP_CONFIG_FILE);
+        System.clearProperty(GuiceListener.SYS_PROP_CONFIG_FILE);
     }
 
 }

Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/integration/StoreBugTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/integration/StoreBugTest.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/integration/StoreBugTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/integration/StoreBugTest.java Wed Aug 21 14:08:19 2013
@@ -33,7 +33,8 @@ import org.apache.hupa.server.InMemoryIM
 import org.apache.hupa.server.guice.providers.JavaMailSessionProvider;
 import org.apache.hupa.server.mock.MockIMAPStore;
 import org.apache.hupa.server.mock.MockLog;
-import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.data.UserImpl;
+import org.apache.hupa.shared.domain.User;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -56,8 +57,7 @@ public class StoreBugTest {
     Session session = Session.getDefaultInstance(new Properties(), null);
     static InMemoryIMAPStoreCache cache = new InMemoryIMAPStoreCache(new MockLog(), imapServer, imapPort, isSSl, 2, 60000, false,
         truststore, truststorePassword, new JavaMailSessionProvider().get());
-    static User user = new User() {
-       private static final long serialVersionUID = 1L;
+    static User user = new UserImpl() {
        {setName(imapUser); setPassword(imapPass);}
     };
     

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/CreateFolderServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/CreateFolderServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/CreateFolderServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/CreateFolderServiceTest.java Wed Aug 21 14:08:19 2013
@@ -1,83 +1,88 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  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.                                           *
- ****************************************************************/
-package org.apache.hupa.server.handler;
-
-import net.customware.gwt.dispatch.shared.ActionException;
-
-import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.server.mock.MockIMAPFolder;
-import org.apache.hupa.server.mock.MockIMAPStore;
-import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.data.IMAPFolder;
-import org.apache.hupa.shared.exception.InvalidSessionException;
-import org.apache.hupa.shared.rpc.CreateFolder;
-
-import javax.mail.Folder;
-import javax.mail.MessagingException;
-
-public class CreateFolderHandlerTest extends HupaGuiceTestCase {
-    
-    public void testCreate() throws MessagingException {
-        IMAPFolder folder = createFolder();
-        MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
-        Folder f1 = store.getFolder(folder.getFullName());
-        assertFalse("not exists",f1.exists());
-        
-        try {
-            createFolderHandler.execute(new CreateFolder(folder), null);
-            Folder f = store.getFolder(folder.getFullName());
-            assertTrue("exists",f.exists());
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-    
-    public void testDuplicateFolder() throws MessagingException {
-        IMAPFolder folder = createFolder();
-        MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
-        Folder f1 = store.getFolder(folder.getFullName());
-        f1.create(Folder.HOLDS_FOLDERS);
-        try {
-            createFolderHandler.execute(new CreateFolder(folder), null);
-            fail("Folder already exists");
-        } catch (ActionException e) {
-        }
-    }
-    
-    public void testInvalidSessionId() {
-        httpSession.removeAttribute(SConsts.USER_SESS_ATTR);
-        IMAPFolder folder = createFolder();
-        try {
-            createFolderHandler.execute(new CreateFolder(folder), null);
-            fail("Invalid session");
-        } catch (InvalidSessionException e) {
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-    
-    private IMAPFolder createFolder() {
-        IMAPFolder folder = new IMAPFolder();
-        folder.setFullName("NewFolder");
-        folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPARATOR));
-        return folder;
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  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.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.server.service;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import javax.mail.Folder;
+import javax.mail.MessagingException;
+
+import org.apache.hupa.server.HupaGuiceTestCase;
+import org.apache.hupa.server.mock.MockIMAPFolder;
+import org.apache.hupa.server.mock.MockIMAPStore;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.data.CreateFolderActionImpl;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.exception.InvalidSessionException;
+import org.junit.Test;
+
+public class CreateFolderServiceTest extends HupaGuiceTestCase {
+
+	@Test public void create() throws MessagingException {
+		ImapFolder folder = createFolder();
+		MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
+		Folder f1 = store.getFolder(folder.getFullName());
+		assertFalse("not exists", f1.exists());
+		try {
+			createFolderService.create(new CreateFolderActionImpl(folder));
+			Folder f = store.getFolder(folder.getFullName());
+			assertTrue("exists", f.exists());
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail();
+		}
+	}
+
+	@Test public void duplicateFolder() throws MessagingException {
+		ImapFolder folder = createFolder();
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
+        Folder f1 = store.getFolder(folder.getFullName());
+        f1.create(Folder.HOLDS_FOLDERS);
+        try {
+            createFolderService.create(new CreateFolderActionImpl(folder));
+            fail("Folder already exists");
+        } catch (Exception e) {
+        }
+	}
+	@Test public void invalidSessionId(){
+        httpSession.removeAttribute(SConsts.USER_SESS_ATTR);
+        ImapFolder folder = createFolder();
+        try {
+        	createFolderService.create(new CreateFolderActionImpl(folder));
+            fail("Invalid session");
+        } catch (InvalidSessionException e) {
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail();
+        }
+    
+	}
+
+	private ImapFolder createFolder() {
+		ImapFolder folder = new ImapFolderImpl();
+		folder.setFullName("NewFolder");
+		folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPARATOR));
+		return folder;
+	}
+
+}

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteFolderServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteFolderServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteFolderServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteFolderServiceTest.java Wed Aug 21 14:08:19 2013
@@ -1,79 +1,84 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  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.                                           *
- ****************************************************************/
-package org.apache.hupa.server.handler;
-
-import net.customware.gwt.dispatch.shared.ActionException;
-
-import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.server.mock.MockIMAPFolder;
-import org.apache.hupa.server.mock.MockIMAPStore;
-import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.data.IMAPFolder;
-import org.apache.hupa.shared.exception.InvalidSessionException;
-import org.apache.hupa.shared.rpc.DeleteFolder;
-
-import javax.mail.Folder;
-import javax.mail.MessagingException;
-
-public class DeleteFolderHandlerTest extends HupaGuiceTestCase {
-
-    public void testDelete() throws MessagingException {
-        IMAPFolder folder = createFolder();
-        MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
-        Folder f1 = store.getFolder(folder.getFullName());
-        f1.create(Folder.HOLDS_FOLDERS);
-        try {
-            deleteFolderHandler.execute(new DeleteFolder(folder), null);
-            Folder f = store.getFolder(folder.getFullName());
-            assertFalse("not exists",f.exists());
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-    
-    public void testDeleteNonExistFolder() throws MessagingException {
-        IMAPFolder folder = createFolder();
-        try {
-            deleteFolderHandler.execute(new DeleteFolder(folder), null);
-            fail("Folder should not exist");
-        } catch (ActionException e) {
-        }    
-    }
-    
-    public void testInvalidSessionId() {
-        httpSession.removeAttribute(SConsts.USER_SESS_ATTR);
-        IMAPFolder folder = createFolder();
-        try {
-            deleteFolderHandler.execute(new DeleteFolder(folder), null);
-            fail("Invalid session");
-        } catch (InvalidSessionException e) {
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-    
-    private IMAPFolder createFolder() {
-        IMAPFolder folder = new IMAPFolder();
-        folder.setFullName("NewFolder");
-        folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPARATOR));
-        return folder;
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  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.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.server.service;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.fail;
+
+import javax.mail.Folder;
+import javax.mail.MessagingException;
+
+import org.apache.hupa.server.HupaGuiceTestCase;
+import org.apache.hupa.server.mock.MockIMAPFolder;
+import org.apache.hupa.server.mock.MockIMAPStore;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.data.DeleteFolderActionImpl;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.exception.HupaException;
+import org.apache.hupa.shared.exception.InvalidSessionException;
+import org.junit.Test;
+
+public class DeleteFolderServiceTest extends HupaGuiceTestCase {
+
+    @Test public void delete() throws Exception {
+        ImapFolder folder = createFolder();
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
+        Folder f1 = store.getFolder(folder.getFullName());
+        f1.create(Folder.HOLDS_FOLDERS);
+        try {
+            deleteFolderService.delete(new DeleteFolderActionImpl(folder));
+            Folder f = store.getFolder(folder.getFullName());
+            assertFalse("not exists",f.exists());
+        } catch (HupaException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+    
+    @Test public void deleteNonExistFolder() throws MessagingException {
+    	ImapFolder folder = createFolder();
+        try {
+            deleteFolderService.delete(new DeleteFolderActionImpl(folder));
+            fail("Folder should not exist");
+        } catch (HupaException e) {
+        }    
+    }
+    
+    @Test public void invalidSessionId() throws MessagingException {
+        httpSession.removeAttribute(SConsts.USER_SESS_ATTR);
+        ImapFolder folder = createFolder();
+        try {
+            deleteFolderService.delete(new DeleteFolderActionImpl(folder));
+            fail("Invalid session");
+        } catch (InvalidSessionException e) {
+        } catch (HupaException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+    
+    private ImapFolder createFolder() {
+    	ImapFolder folder = new ImapFolderImpl();
+        folder.setFullName("NewFolder");
+        folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPARATOR));
+        return folder;
+    }
+}

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteMessageByUidServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteMessageByUidServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteMessageByUidServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/DeleteMessageByUidServiceTest.java Wed Aug 21 14:08:19 2013
@@ -17,15 +17,12 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.server.handler;
+package org.apache.hupa.server.service;
 
-import net.customware.gwt.dispatch.shared.ActionException;
-
-import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.server.mock.MockIMAPFolder;
-import org.apache.hupa.server.mock.MockIMAPStore;
-import org.apache.hupa.shared.data.IMAPFolder;
-import org.apache.hupa.shared.rpc.DeleteMessageByUid;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
 
@@ -34,21 +31,31 @@ import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-public class DeleteMessageByUidHandlerTest extends HupaGuiceTestCase {
+import org.apache.hupa.server.HupaGuiceTestCase;
+import org.apache.hupa.server.mock.MockIMAPFolder;
+import org.apache.hupa.server.mock.MockIMAPStore;
+import org.apache.hupa.shared.data.DeleteMessageByUidActionImpl;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.domain.DeleteMessageByUidAction;
+import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.exception.HupaException;
+import org.junit.Test;
+
+public class DeleteMessageByUidServiceTest extends HupaGuiceTestCase {
     
-    public void testDeleteFolderNotExists() throws MessagingException {
-        IMAPFolder folder = new IMAPFolder();
+    @Test public void deleteFolderNotExists() throws MessagingException {
+        ImapFolder folder = new ImapFolderImpl();
         folder.setFullName("NOT_EXISTS");
-        DeleteMessageByUid action = new DeleteMessageByUid(folder,new ArrayList<Long>());
+        DeleteMessageByUidAction action = new DeleteMessageByUidActionImpl(folder,new ArrayList<Long>());
         try {
-            deleteMessageByUidHandler.execute(action, null);
+            deleteMessageByUidService.delete(action);
             fail("Folder should not exists!");
-        } catch (ActionException e) {
+        } catch (HupaException e) {
         }
     }
     
-    public void testDeleteFolderExistsAndNotTrash() throws MessagingException {
-        IMAPFolder folder = new IMAPFolder();
+    @Test public void deleteFolderExistsAndNotTrash() throws MessagingException {
+    	ImapFolder folder = new ImapFolderImpl();
         folder.setFullName("EXISTS");
         MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
         store.clear();
@@ -59,25 +66,25 @@ public class DeleteMessageByUidHandlerTe
         ArrayList<Long> uids = new ArrayList<Long>();
         uids.add(0l);
         uids.add(2l);
-        DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
+        DeleteMessageByUidAction action = new DeleteMessageByUidActionImpl(folder, uids);
 
         MockIMAPFolder f3 = (MockIMAPFolder) store.getFolder(testUser.getSettings().getTrashFolderName());
         assertFalse("Trash folder already exists", f3.exists());
         try {
-            deleteMessageByUidHandler.execute(action, null);
+            deleteMessageByUidService.delete(action);
             assertEquals("Only 1 message left", 1, f.getMessageCount());
             
             MockIMAPFolder f2 = (MockIMAPFolder) store.getFolder(testUser.getSettings().getTrashFolderName());
             assertTrue("Trash folder created",f2.exists());
             assertEquals("2 messages moved", 2, f2.getMessageCount());
-        } catch (ActionException e) {
+        } catch (HupaException e) {
             e.printStackTrace();
             fail();
         }
     }
     
-    public void testDeleteFolderExistsAndIsTrash() throws MessagingException {
-        IMAPFolder folder = new IMAPFolder();
+    @Test public void deleteFolderExistsAndIsTrash() throws MessagingException {
+        ImapFolder folder = new ImapFolderImpl();
         folder.setFullName(testUser.getSettings().getTrashFolderName());
         MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
         
@@ -86,11 +93,11 @@ public class DeleteMessageByUidHandlerTe
         ArrayList<Long> uids = new ArrayList<Long>();
         uids.add(0l);
         uids.add(2l);
-        DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
+        DeleteMessageByUidAction action = new DeleteMessageByUidActionImpl(folder, uids);
         try {
-            deleteMessageByUidHandler.execute(action, null);
+            deleteMessageByUidService.delete(action);
             assertEquals("Only 1 message left", 1, f.getMessageCount());
-        } catch (ActionException e) {
+        } catch (HupaException e) {
             e.printStackTrace();
             fail();
         }

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java Wed Aug 21 14:08:19 2013
@@ -1,43 +1,68 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  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.                                           *
- ****************************************************************/
-package org.apache.hupa.server.handler;
-
-import net.customware.gwt.dispatch.shared.ActionException;
-
-import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.rpc.LogoutUser;
-import org.apache.hupa.shared.rpc.LogoutUserResult;
-
-public class LogoutUserHandlerTest extends HupaGuiceTestCase {
-    
-    public void testLogout() {
-        try {
-            httpSession.setAttribute("Attribute", "Value");
-            LogoutUserResult result = logoutUser.execute(new LogoutUser(), null);
-            assertFalse("Not authenticated anymore", result.getUser().getAuthenticated());
-            assertNull("User should be removed", httpSession.getAttribute(SConsts.USER_SESS_ATTR));
-            assertNull("Attributes should be removed", httpSession.getAttribute("Attribute"));
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail();
-        }
-        
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  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.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.server.service;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.List;
+
+import javax.mail.MessagingException;
+
+import org.apache.hupa.server.HupaGuiceTestCase;
+import org.apache.hupa.server.mock.MockIMAPStore;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.exception.InvalidSessionException;
+import org.junit.Before;
+import org.junit.Test;
+
+public class FetchFolderServiceTest extends HupaGuiceTestCase {
+
+	@Test public void invalidSessionId() {
+		httpSession.removeAttribute(SConsts.USER_SESS_ATTR);
+		try {
+			fetchFoldersService.fetch(new ImapFolderImpl(), false);
+			fail("Invalid session");
+		} catch (InvalidSessionException e) {
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail();
+		}
+	}
+
+	@Test public void noFolders() {
+		httpSession.setAttribute(SConsts.USER_SESS_ATTR, testUser);
+		try {
+			List<ImapFolder> folders = fetchFoldersService.fetch(null, false);
+			assertTrue(folders.isEmpty());
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail();
+		}
+	}
+
+	@Before public void setup() throws MessagingException {
+		MockIMAPStore store = (MockIMAPStore) storeCache.get(testUser);
+		store.clear();
+	}
+
+}

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchMessagesServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchMessagesServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchMessagesServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchMessagesServiceTest.java Wed Aug 21 14:08:19 2013
@@ -17,26 +17,31 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.server.handler;
+package org.apache.hupa.server.service;
 
-import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.server.mock.MockIMAPFolder;
-import org.apache.hupa.shared.data.IMAPFolder;
-import org.apache.hupa.shared.rpc.FetchMessages;
-import org.apache.hupa.shared.rpc.FetchMessagesResult;
+import static org.junit.Assert.assertEquals;
 
 import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
+import java.util.List;
 
 import javax.mail.Flags;
+import javax.mail.Flags.Flag;
 import javax.mail.Folder;
 import javax.mail.Message;
-import javax.mail.Flags.Flag;
+import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-public class FetchMessagesHandlerTest extends HupaGuiceTestCase {
+import org.apache.hupa.server.HupaGuiceTestCase;
+import org.apache.hupa.server.mock.MockIMAPFolder;
+import org.apache.hupa.shared.data.FetchMessagesActionImpl;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.domain.FetchMessagesResult;
+import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.exception.HupaException;
+import org.junit.Test;
 
-    public void testConvert() throws Exception {
+public class FetchMessagesServiceTest extends HupaGuiceTestCase {
+	@Test public void convert() throws MessagingException{
         MockIMAPFolder f = (MockIMAPFolder)store.getFolder("WHATEVER"); 
         f.create(Folder.HOLDS_MESSAGES);
         
@@ -47,41 +52,42 @@ public class FetchMessagesHandlerTest ex
         is = new ByteArrayInputStream("From: a@foo.com\nTo: \"<b...@foo.com>\" <b...@foo.com>\nSubject: =?ISO-8859-1?Q?Monta=F1a?=\n\ndata".getBytes());
         MimeMessage m3 = new MimeMessage(session, is);
         
-        ArrayList<org.apache.hupa.shared.data.Message> msgs = fetchMessagesHandler.convert(2, f, new Message[]{m1, m2, m3});
+        List<org.apache.hupa.shared.domain.Message> msgs = fetchMessagesService.convert(2, f, new Message[]{m1, m2, m3});
         assertEquals(2, msgs.size());
         
-        msgs = fetchMessagesHandler.convert(10, f, new Message[]{m1, m2, m3});
+        msgs = fetchMessagesService.convert(10, f, new Message[]{m1, m2, m3});
         assertEquals(3, msgs.size());
         
-        msgs = fetchMessagesHandler.convert(10, f, new Message[]{m1});
+        msgs = fetchMessagesService.convert(10, f, new Message[]{m1});
         assertEquals("a b c <aa...@foo.com>",  msgs.get(0).getFrom());
 
-        msgs = fetchMessagesHandler.convert(10, f, new Message[]{m2});
+        msgs = fetchMessagesService.convert(10, f, new Message[]{m2});
         assertEquals("Manolo Pe\u00F1a <pe...@foo.com>",  msgs.get(0).getFrom());
         
-        msgs = fetchMessagesHandler.convert(10, f, new Message[]{m3});
+        msgs = fetchMessagesService.convert(10, f, new Message[]{m3});
         assertEquals("Monta\u00F1a",  msgs.get(0).getSubject());
         assertEquals("b@foo.com <b...@foo.com>",  msgs.get(0).getTo().get(0));
 
     }
+	
 
-    public void testFetchMessages() throws Exception {
+    @Test public void fetchMessages() throws HupaException, MessagingException {
 
         MockIMAPFolder serverfolder = (MockIMAPFolder)store.getFolder("WHATEVER"); 
         serverfolder.create(Folder.HOLDS_MESSAGES);
         
-        IMAPFolder clientfolder = new IMAPFolder("WHATEVER");
-        FetchMessagesResult result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "*"), null);
+        ImapFolder clientfolder = new ImapFolderImpl("WHATEVER");
+        FetchMessagesResult result = fetchMessagesService.fetch(new FetchMessagesActionImpl(clientfolder, 0, 10, "*"));
         assertEquals(0, result.getRealCount());
         
         ByteArrayInputStream is = new ByteArrayInputStream("From: a@foo.com\nTo: b@foo.com\nSubject: something\n\ndata 1".getBytes());
         MimeMessage msg = new MimeMessage(session, is);
         serverfolder.addMessages(new Message[]{msg});
-        result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "something"), null);
+        result = fetchMessagesService.fetch(new FetchMessagesActionImpl(clientfolder, 0, 10, "something"));
         assertEquals(1, result.getRealCount());
         assertEquals(1, result.getMessages().size());
         
-        result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, null), null);
+        result = fetchMessagesService.fetch(new FetchMessagesActionImpl(clientfolder, 0, 10, null));
         assertEquals(1, result.getRealCount());
         assertEquals(1, result.getMessages().size());
 
@@ -89,14 +95,14 @@ public class FetchMessagesHandlerTest ex
         msg = new MimeMessage(session, is);
         serverfolder.appendMessages(new Message[]{msg});
         
-        result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "data"), null);
+        result = fetchMessagesService.fetch(new FetchMessagesActionImpl(clientfolder, 0, 10, "data"));
         assertEquals(2, result.getRealCount());
         assertEquals(2, result.getMessages().size());
         
-        result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "data 2"), null);
+        result = fetchMessagesService.fetch(new FetchMessagesActionImpl(clientfolder, 0, 10, "data 2"));
         assertEquals(1, result.getRealCount());
         
-        result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, null), null);
+        result = fetchMessagesService.fetch(new FetchMessagesActionImpl(clientfolder, 0, 10, null));
         assertEquals(2, serverfolder.getMessageCount());
         assertEquals(2, serverfolder.getUnreadMessageCount());
         assertEquals(2, result.getRealCount());
@@ -107,7 +113,7 @@ public class FetchMessagesHandlerTest ex
         assertEquals(1, serverfolder.getUnreadMessageCount());
         
         serverfolder.appendMessages(new Message[]{msg});
-        result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "data"), null);
+        result = fetchMessagesService.fetch(new FetchMessagesActionImpl(clientfolder, 0, 10, "data"));
         assertEquals(3, result.getRealCount());
         assertEquals(1, result.getRealUnreadCount());
     }

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/GetMessageDetailServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/GetMessageDetailsHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/GetMessageDetailServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/GetMessageDetailServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/GetMessageDetailsHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/GetMessageDetailsHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/GetMessageDetailServiceTest.java Wed Aug 21 14:08:19 2013
@@ -17,91 +17,97 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.server.handler;
+package org.apache.hupa.server.service;
 
-import com.sun.mail.imap.IMAPFolder;
-import com.sun.mail.imap.IMAPStore;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
+
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.internet.MimeMessage;
 
 import org.apache.hupa.server.HupaGuiceTestCase;
 import org.apache.hupa.server.utils.TestUtils;
 import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.data.MessageDetails;
+import org.apache.hupa.shared.domain.MessageDetails;
+import org.junit.Test;
 
-import javax.mail.Folder;
-import javax.mail.Message;
-import javax.mail.internet.MimeMessage;
+import com.sun.mail.imap.IMAPFolder;
+import com.sun.mail.imap.IMAPStore;
 
-public class GetMessageDetailsHandlerTest extends HupaGuiceTestCase {
+public class GetMessageDetailServiceTest extends HupaGuiceTestCase {
 
-    public void testTextDocumentToHtml() throws Exception {
+    @Test public void testTextDocumentToHtml() throws Exception {
         String msg = "...\nhttp://www.example.com/path/action.do;s=1;a=2?p=abcd\n...";
-        String res = getDetailsHandler.txtDocumentToHtml(msg, "aFolder", 9999l);
+        String res = getMessageDetailsService.txtDocumentToHtml(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         assertTrue(res.contains("onClick=\"openLink('http://"));
         
         msg = "...\nnobody@subdomain.the-domain.org\n...";
-        res = getDetailsHandler.txtDocumentToHtml(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.txtDocumentToHtml(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         assertTrue(res.contains("onClick=\"mailTo('nobody@"));
         
-        res = getDetailsHandler.txtDocumentToHtml("", "aFolder", 9999l);
+        res = getMessageDetailsService.txtDocumentToHtml("", "aFolder", 9999l);
         assertTrue(res.length()==0);
         
         msg = "...<atag>...";
-        res = getDetailsHandler.txtDocumentToHtml(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.txtDocumentToHtml(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         assertEquals("...&lt;atag&gt;...", res);
     }
 
-    public void testFilterHtmlDocument() throws Exception {
+    @Test public void testFilterHtmlDocument() throws Exception {
         String msg = "<div>...\nhttp://whatever\n...</div>";
-        String res = getDetailsHandler.txtDocumentToHtml(msg, "aFolder", 9999l);
+        String res = getMessageDetailsService.txtDocumentToHtml(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         assertTrue(res.contains("onClick=\"openLink('http://whatever"));
         
         msg = "...\n<a\nhref=https://www.example.com/path/action.do;s=1;a=2?p=abcd\n...";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         assertTrue(res.contains("onClick=\"openLink('https://"));
 
         msg = "...\n<a\nhref=mailTo:nobody@subdomain.the-domain.org\n...";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         assertTrue(res.contains("onClick=\"mailTo('nobody@"));
 
         msg = "...\n...<img   \n   src=\"cid:1.1934304663@web28309.mail.ukl.yahoo.com\" width=200\n....";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         assertEquals("...\n...<img   \n   src='" + 
-                SConsts.HUPA + SConsts.SERVLET_DOWNLOAD + "?" 
+                SConsts.HUPA + SConsts.SERVLET_DOWNLOAD + "?mode=inline&" 
                 + SConsts.PARAM_FOLDER + "=aFolder&" 
                 + SConsts.PARAM_UID + "=9999&"
                 + SConsts.PARAM_NAME + "=1.1934304663@web28309.mail.ukl.yahoo.com' name='cid:1.1934304663@web28309.mail.ukl.yahoo.com' width=200\n....", res);
         
         msg = "\n\n.... <Script \ntype=\"whatever\"\n>\nalert('hello');\n</script > ---\n\n";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
 
         msg = "\n\n.... <a \nid=\"whatever\"\nonclick=\"alert('hello');\"\n</a > ---\n\n";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
 
         msg = "\n\n.... <style \ntype=\"whatever\"\n>\n.a{};\n</Style > ---\n\n";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertNotSame(msg, res);
         
-        res = getDetailsHandler.filterHtmlDocument("", "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument("", "aFolder", 9999l);
         assertTrue(res.length()==0);
     }
 
-    public void testRegexEmailsInsideTagAttributes() {
+    @Test public void testRegexEmailsInsideTagAttributes() {
         String msg, res;
         msg = ".. <a href=\"http://whatever?param1=whatever&email= dock@example.com&param3\">..</a> ..";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertFalse(res.contains("mailTo("));
 
         msg = ".. <a href=bla > http://whatever?param1=whatever&email=dock@example.com&param3 </a> ..";
-        res = getDetailsHandler.filterHtmlDocument(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.filterHtmlDocument(msg, "aFolder", 9999l);
         assertFalse(res.contains("mailTo("));
         assertFalse(res.contains("openLink("));
 
@@ -112,12 +118,12 @@ public class GetMessageDetailsHandlerTes
         // assertTrue(res.contains("openLink("));
         
         msg = "http://accounts.myspace.com.deaaaf.me.uk/msp/index.php?fuseaction=update&code=78E2BL6-EKY5L893K4MHSA-74ESO-D743U41GYB18J-FA18EI698V4M&email=somehone@somewere.com";
-        res = getDetailsHandler.txtDocumentToHtml(msg, "aFolder", 9999l);
+        res = getMessageDetailsService.txtDocumentToHtml(msg, "aFolder", 9999l);
         assertFalse(res.contains("mailTo("));
         assertTrue(res.contains("openLink("));
     }
 
-    public void testFilterHtml_LargeBody_Performance() throws Exception {
+    @Test public void testFilterHtml_LargeBody_Performance() throws Exception {
     	// messages with large bodies should be processed fast
     	long start = System.currentTimeMillis();
         loadMessageDetails("8.msg");
@@ -126,27 +132,27 @@ public class GetMessageDetailsHandlerTes
     }
     
     private MessageDetails loadMessageDetails(String msgFile) throws Exception {
-        return getDetailsHandler.mimeToDetails(TestUtils.loadMessageFromFile(session,msgFile), "theFolder", 9999l);
+        return getMessageDetailsService.mimeToDetails(TestUtils.loadMessageFromFile(session,msgFile), "theFolder", 9999l);
     }
     
-    public void testMessageDetails_textPlain() throws Exception {
+    @Test public void testMessageDetails_textPlain() throws Exception {
         MessageDetails details = loadMessageDetails("0.msg");
         assertTrue(details.getText().contains("demo message"));
     }
 
-    public void testMessageDetails_multiparMixed() throws Exception {
+    @Test public void testMessageDetails_multiparMixed() throws Exception {
         MessageDetails details = loadMessageDetails("1.msg");
         assertEquals(1, details.getMessageAttachments().size());
         assertTrue(details.getText().contains("Regards"));
     }
 
-    public void testMessageDetails_multiparAlternative() throws Exception {
+    @Test public void testMessageDetails_multiparAlternative() throws Exception {
         MessageDetails details = loadMessageDetails("2.msg");
         assertEquals(0, details.getMessageAttachments().size());
         assertTrue(details.getText().length() > 0);
     }
     
-    public void testMessageDetails_charsetIso() throws Exception {
+    @Test public void testMessageDetails_charsetIso() throws Exception {
         MimeMessage message = TestUtils.loadMessageFromFile(session,"3.msg");
         String from = message.getFrom()[0].toString();
         assertTrue(from.contains("\u00AE"));
@@ -156,24 +162,24 @@ public class GetMessageDetailsHandlerTes
         assertTrue(details.getText().length() > 0);
     }
 
-    public void testMessageDetails_textHtml() throws Exception {
+    @Test public void testMessageDetails_textHtml() throws Exception {
         MessageDetails details = loadMessageDetails("4.msg");
         assertTrue(details.getText().length() > 0);
     }
     
-    public void testMessageDetails_multiparMixed_multipartAlternative() throws Exception {
+    @Test public void testMessageDetails_multiparMixed_multipartAlternative() throws Exception {
         MessageDetails details = loadMessageDetails("6.msg");
         assertEquals(1, details.getMessageAttachments().size());
         assertTrue(details.getText().length() > 0);
     }
     
-    public void testMessageDetails_multiparMixed_multipartAlternative_textAttachment() throws Exception {
+    @Test public void testMessageDetails_multiparMixed_multipartAlternative_textAttachment() throws Exception {
         MessageDetails details = loadMessageDetails("10.msg");
         assertEquals(1, details.getMessageAttachments().size());
         assertTrue(details.getText().contains("<span>"));
     }
     
-    public void testMessageDetails_html_with_inline_images() throws Exception {
+    @Test public void testMessageDetails_html_with_inline_images() throws Exception {
         IMAPStore store = storeCache.get(testUser);
         
         IMAPFolder serverfolder = (IMAPFolder)store.getFolder("WHATEVER"); 
@@ -182,12 +188,12 @@ public class GetMessageDetailsHandlerTes
         MimeMessage msg = TestUtils.loadMessageFromFile(session,"7.msg");
         serverfolder.addMessages(new Message[]{msg});
         
-        org.apache.hupa.shared.data.IMAPFolder clientfolder = new org.apache.hupa.shared.data.IMAPFolder("WHATEVER");
-        MessageDetails details = getDetailsHandler.exposeMessage(testUser, clientfolder, 0);
+        org.apache.hupa.shared.domain.ImapFolder clientfolder = new org.apache.hupa.shared.data.ImapFolderImpl("WHATEVER");
+        MessageDetails details = getMessageDetailsService.exposeMessage(testUser, clientfolder, 0);
         
         // inline images have to be downloaded from the server
         assertTrue(details.getText().contains("img src=\'" + 
-                SConsts.HUPA + SConsts.SERVLET_DOWNLOAD + "?" +
+                SConsts.HUPA + SConsts.SERVLET_DOWNLOAD + "?mode=inline&" +
                 SConsts.PARAM_FOLDER + "=WHATEVER&" + 
                 SConsts.PARAM_UID + "=0&" + 
                 SConsts.PARAM_NAME + "=1.1934304663@web28309.mail.ukl.yahoo.com'"));
@@ -197,10 +203,10 @@ public class GetMessageDetailsHandlerTes
         
     }
 
-    public void testMessageDetails_links() throws Exception {
+    @Test public void testMessageDetails_links() throws Exception {
         MessageDetails details = loadMessageDetails("2.msg");
 
-        String html = getDetailsHandler.filterHtmlDocument(details.getText(), "foldername", 111l);
+        String html = getMessageDetailsService.filterHtmlDocument(details.getText(), "foldername", 111l);
         assertFalse(html.contains("<script>"));
         assertFalse(html.contains("<style>"));
         assertTrue(html.contains("<a onClick=\"openLink('http://code.google.com/intl/es/webtoolkit/');return false;\" href=\"http://code.google.com/intl/es/webtoolkit/\""));

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/IdleServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/IdleHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/IdleServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/IdleServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/IdleHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/IdleHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/IdleServiceTest.java Wed Aug 21 14:08:19 2013
@@ -16,22 +16,29 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.hupa.server.handler;
 
-import net.customware.gwt.dispatch.shared.ActionException;
+package org.apache.hupa.server.service;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import javax.mail.MessagingException;
 
 import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.shared.rpc.Idle;
-import org.apache.hupa.shared.rpc.IdleResult;
+import org.apache.hupa.shared.data.IdleActionImpl;
+import org.apache.hupa.shared.domain.IdleAction;
+import org.apache.hupa.shared.domain.IdleResult;
+import org.apache.hupa.shared.exception.HupaException;
+import org.junit.Test;
 
-public class IdleHandlerTest extends HupaGuiceTestCase {
+public class IdleServiceTest extends HupaGuiceTestCase {
 
-    public void testIdle() {
-        Idle action = new Idle();
+    @Test public void idle() throws MessagingException {
+        IdleAction action = new IdleActionImpl();
         try {
-            IdleResult result = idleHandler.execute(action, null);
+            IdleResult result = idleService.idle(action);
             assertNotNull(result);
-        } catch (ActionException e) {
+        } catch (HupaException e) {
             e.printStackTrace();
             fail();
         }

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LoginUserServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LoginUserServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LoginUserServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LoginUserServiceTest.java Wed Aug 21 14:08:19 2013
@@ -1,55 +1,59 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  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.                                           *
- ****************************************************************/
-package org.apache.hupa.server.handler;
-
-import net.customware.gwt.dispatch.shared.ActionException;
-
-import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.data.User;
-import org.apache.hupa.shared.rpc.LoginUser;
-import org.apache.hupa.shared.rpc.LoginUserResult;
-
-public class LoginUserHandlerTest extends HupaGuiceTestCase {
-    
-    public void testInvalidLogin() {
-        httpSession.setAttribute("Attribute", "Value");
-        try {
-            loginUser.execute(new LoginUser("invalid","invalid"), null);
-            fail("Should throw an exception");
-        } catch (ActionException e) {
-        }
-        assertNull("No user should be stored in session", httpSession.getAttribute(SConsts.USER_SESS_ATTR));
-        assertNull("Attributes should be removed", httpSession.getAttribute("Attribute"));
-    }
-    
-    public void testValidLogin() {
-        try {
-            LoginUserResult result = loginUser.execute(new LoginUser(testUser.getName(), testUser.getPassword()), null);
-            User u = result.getUser();
-            assertEquals("Authenticated", true, u.getAuthenticated());
-            assertEquals("Authenticated", testUser.getName(), u.getName());
-            assertEquals("Authenticated", testUser.getPassword(), u.getPassword());
-            assertEquals("User stored in session", u, httpSession.getAttribute(SConsts.USER_SESS_ATTR));
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail("Should throw an exception");
-        }
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  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.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.server.service;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import javax.mail.MessagingException;
+
+import org.apache.hupa.server.HupaGuiceTestCase;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.domain.User;
+import org.apache.hupa.shared.exception.HupaException;
+import org.junit.Test;
+
+public class LoginUserServiceTest extends HupaGuiceTestCase {
+    
+    @Test public void invalidLogin() throws MessagingException {
+        httpSession.setAttribute("Attribute", "Value");
+        try {
+            loginUserService.login("invalid","invalid");
+            fail("Should throw an exception");
+        } catch (Throwable t) {
+        }
+        assertNull("No user should be stored in session", httpSession.getAttribute(SConsts.USER_SESS_ATTR));
+        assertNull("Attributes should be removed", httpSession.getAttribute("Attribute"));
+    }
+    
+    @Test public void validLogin() throws MessagingException {
+        try {
+            User u = loginUserService.login(testUser.getName(), testUser.getPassword());
+            assertEquals("Authenticated", true, u.getAuthenticated());
+            assertEquals("Authenticated", testUser.getName(), u.getName());
+            assertEquals("Authenticated", testUser.getPassword(), u.getPassword());
+            assertEquals("User stored in session", u, httpSession.getAttribute(SConsts.USER_SESS_ATTR));
+        } catch (HupaException e) {
+            e.printStackTrace();
+            fail("Should throw an exception");
+        }
+    }
+}

Copied: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LogoutUserServiceTest.java (from r1375909, james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LogoutUserServiceTest.java?p2=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LogoutUserServiceTest.java&p1=james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/LogoutUserServiceTest.java Wed Aug 21 14:08:19 2013
@@ -1,43 +1,47 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  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.                                           *
- ****************************************************************/
-package org.apache.hupa.server.handler;
-
-import net.customware.gwt.dispatch.shared.ActionException;
-
-import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.rpc.LogoutUser;
-import org.apache.hupa.shared.rpc.LogoutUserResult;
-
-public class LogoutUserHandlerTest extends HupaGuiceTestCase {
-    
-    public void testLogout() {
-        try {
-            httpSession.setAttribute("Attribute", "Value");
-            LogoutUserResult result = logoutUser.execute(new LogoutUser(), null);
-            assertFalse("Not authenticated anymore", result.getUser().getAuthenticated());
-            assertNull("User should be removed", httpSession.getAttribute(SConsts.USER_SESS_ATTR));
-            assertNull("Attributes should be removed", httpSession.getAttribute("Attribute"));
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail();
-        }
-        
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  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.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.server.service;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import org.apache.hupa.server.HupaGuiceTestCase;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.domain.LogoutUserResult;
+import org.apache.hupa.shared.exception.HupaException;
+import org.junit.Test;
+
+public class LogoutUserServiceTest extends HupaGuiceTestCase {
+    
+    @Test public void logout() {
+        try {
+            httpSession.setAttribute("Attribute", "Value");
+            LogoutUserResult result = logoutUserService.logout();
+            assertFalse("Not authenticated anymore", result.getUser().getAuthenticated());
+            assertNull("User should be removed", httpSession.getAttribute(SConsts.USER_SESS_ATTR));
+            assertNull("Attributes should be removed", httpSession.getAttribute("Attribute"));
+        } catch (HupaException e) {
+            e.printStackTrace();
+            fail();
+        }
+        
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org