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 jo...@apache.org on 2006/11/18 10:45:47 UTC
svn commit: r476479 - in /james/server/sandbox/mailbox-namespaces/src:
java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java
test/org/apache/james/mailboxmanager/impl/VirtualMailboxManagerTest.java
Author: joachim
Date: Sat Nov 18 01:45:46 2006
New Revision: 476479
URL: http://svn.apache.org/viewvc?view=rev&rev=476479
Log:
- VirtualMailboxManager throws Exception when there is no mount for a mailbox name + corresponding test
- VirtualMailboxManager.testSetSubscription
Modified:
james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java
james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/impl/VirtualMailboxManagerTest.java
Modified: james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java?view=diff&rev=476479&r1=476478&r2=476479
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/java/org/apache/james/mailboxmanager/impl/VirtualMailboxManager.java Sat Nov 18 01:45:46 2006
@@ -20,11 +20,9 @@
package org.apache.james.mailboxmanager.impl;
import java.util.ArrayList;
-import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.TreeMap;
import java.util.Map.Entry;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
@@ -43,36 +41,45 @@
MailboxManager {
private Map mountMap = null;
-
+
private User user;
-
-
-
+
public VirtualMailboxManager() {
-
+
}
Map getMountMap() {
return mountMap;
}
-
+
public void setMountMap(Map mountMap) {
- this.mountMap=mountMap;
+ this.mountMap = mountMap;
}
-
-
- MailboxManager getMailboxManager(String mailboxName) throws MailboxManagerException {
+ MailboxManager getMailboxManager(String mailboxName)
+ throws MailboxManagerException {
MailboxManager mailboxManager = null;
Iterator it = getMountMap().entrySet().iterator();
while (it.hasNext() && mailboxManager == null) {
Entry entry = (Entry) it.next();
String key = (String) entry.getKey();
if (mailboxName.startsWith(key)) {
- MailboxManagerFactory mailboxManagerFactory = (MailboxManagerFactory) entry.getValue();
- mailboxManager=mailboxManagerFactory.getMailboxManagerInstance(user);
+ MailboxManagerFactory mailboxManagerFactory = (MailboxManagerFactory) entry
+ .getValue();
+ mailboxManager = mailboxManagerFactory
+ .getMailboxManagerInstance(user);
+ if (mailboxManager == null) {
+ throw new MailboxManagerException(mailboxManagerFactory
+ .getClass().getName()
+ + " returned a null MailboxManager");
+ }
+ break;
}
}
+ if (mailboxManager == null) {
+ throw new MailboxManagerException("Unknown namespace for mailbox "+mailboxName);
+ }
+
return mailboxManager;
}
@@ -124,19 +131,22 @@
public ListResult[] list(String base, String expression, boolean subscribed)
throws MailboxManagerException {
// TODO call only base matching managers
- List listResults=new ArrayList();
+ List listResults = new ArrayList();
Iterator it = getMountMap().entrySet().iterator();
-
+
while (it.hasNext()) {
Entry entry = (Entry) it.next();
- MailboxManagerFactory mailboxManagerFactory = (MailboxManagerFactory) entry.getValue();
- MailboxManager mailboxManager=mailboxManagerFactory.getMailboxManagerInstance(user);
- ListResult[] thisListResults=mailboxManager.list(base, expression, subscribed);
+ MailboxManagerFactory mailboxManagerFactory = (MailboxManagerFactory) entry
+ .getValue();
+ MailboxManager mailboxManager = mailboxManagerFactory
+ .getMailboxManagerInstance(user);
+ ListResult[] thisListResults = mailboxManager.list(base,
+ expression, subscribed);
for (int i = 0; i < thisListResults.length; i++) {
listResults.add(thisListResults[i]);
}
}
-
+
return (ListResult[]) listResults.toArray(new ListResult[0]);
}
@@ -152,7 +162,7 @@
}
public void setUser(User user) {
- this.user=user;
+ this.user = user;
}
}
Modified: james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/impl/VirtualMailboxManagerTest.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/impl/VirtualMailboxManagerTest.java?view=diff&rev=476479&r1=476478&r2=476479
==============================================================================
--- james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/impl/VirtualMailboxManagerTest.java (original)
+++ james/server/sandbox/mailbox-namespaces/src/test/org/apache/james/mailboxmanager/impl/VirtualMailboxManagerTest.java Sat Nov 18 01:45:46 2006
@@ -19,11 +19,8 @@
package org.apache.james.mailboxmanager.impl;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
@@ -84,7 +81,12 @@
.getMailboxManager("#user.t1.t2.t3"));
assertSame(manager[4], virtualMailboxManager
.getMailboxManager("#user.t1.t2.t3.t4"));
- assertNull(virtualMailboxManager.getMailboxManager("#other"));
+ try {
+ virtualMailboxManager.getMailboxManager("#other");
+ fail("should throw exception");
+ } catch (MailboxManagerException e) {
+ }
+
}
@@ -120,6 +122,35 @@
assertEquals(new HashSet(Arrays.asList(expected)), toNamesSet(result));
System.out.println(toNamesSet(result));
+ }
+
+ public void testSubscribe() throws MailboxManagerException {
+ String[] points = { "#mail" , "#mail.group", "#system"}; // ,
+ Mock[] mailboxManagerMocks = createMailboxManagerMocks(points.length);
+ MailboxManager[] mailboxManager = proxyMocks(mailboxManagerMocks);
+ Mock[] mailboxManagerFactoryMocks = createMailboxManagerFactoryMocks(
+ mailboxManager, 1);
+ MailboxManagerFactory[] mailboxManagerFactories = proxyFactoryMocks(mailboxManagerFactoryMocks);
+ addMountPoints(points, mailboxManagerFactories);
+
+ String[] subscribe= {"#mail.user1.Trash","#mail.group.test","#system.go"};
+ for (int i = 0; i < subscribe.length; i++) {
+ Constraint[] args;
+ args=new Constraint[] {eq(subscribe[i]),eq(true)};
+ mailboxManagerMocks[i].expects(once()).method("setSubscription").with(args).isVoid();
+
+ virtualMailboxManager.setSubscription(subscribe[i],true);
+ }
+
+
+ }
+
+ protected Mock[] createMailboxManagerMocks(int count) {
+ Mock[] mocks = new Mock[count];
+ for (int i = 0; i < mocks.length; i++) {
+ mocks[i]=mock(MailboxManager.class);
+ }
+ return mocks;
}
protected Mock[] createMailboxManagerFactoryMocks(MailboxManager[] manager,
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org