Author: btellier
Date: Mon Jun 22 08:15:54 2015
New Revision: 1686805

URL: http://svn.apache.org/r1686805
Log:
MAILBOX-219 Replace logical OR by a logical AND in RFC4314Rights::contain - 
contributed by Antoine Duprat

Modified:
    
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/model/SimpleMailboxACL.java
    
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java
    
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/Rfc4314RightsTest.java

Modified: 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/model/SimpleMailboxACL.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/model/SimpleMailboxACL.java?rev=1686805&r1=1686804&r2=1686805&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/model/SimpleMailboxACL.java
 (original)
+++ 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/model/SimpleMailboxACL.java
 Mon Jun 22 08:15:54 2015
@@ -357,7 +357,7 @@ public class SimpleMailboxACL implements
                     throw new IllegalStateException("Unexpected enum member: " 
+ CompatibilityMode.class.getName() + "." + compatibilityMode.name());
                 }
             default:
-                return (value | flagMaskLookup(flag)) != 0;
+                return (value & flagMaskLookup(flag)) != 0;
             }
         }
 

Modified: 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java?rev=1686805&r1=1686804&r2=1686805&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java
 (original)
+++ 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java
 Mon Jun 22 08:15:54 2015
@@ -18,15 +18,9 @@
  ****************************************************************/
 package org.apache.james.mailbox;
 
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MailboxConstants;
-import org.apache.james.mailbox.model.MailboxPath;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
-import org.junit.Test;
-import org.slf4j.LoggerFactory;
 
-import javax.mail.Flags;
 import java.io.ByteArrayInputStream;
 import java.util.ArrayList;
 import java.util.Date;
@@ -37,6 +31,14 @@ import java.util.concurrent.ExecutorServ
 import java.util.concurrent.Executors;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import javax.mail.Flags;
+
+import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.MailboxConstants;
+import org.apache.james.mailbox.model.MailboxPath;
+import org.junit.Test;
+import org.slf4j.LoggerFactory;
+
 public abstract class AbstractStressTest {
 
     private final static int APPEND_OPERATIONS = 200;
@@ -50,9 +52,10 @@ public abstract class AbstractStressTest
         final CountDownLatch latch = new CountDownLatch(APPEND_OPERATIONS);
         final ExecutorService pool = 
Executors.newFixedThreadPool(APPEND_OPERATIONS / 2);
         final List<Long> uList = new ArrayList<Long>();
-        MailboxSession session = 
getMailboxManager().createSystemSession("test", 
LoggerFactory.getLogger("Test"));
+        final String username = "username";
+        MailboxSession session = 
getMailboxManager().createSystemSession(username, 
LoggerFactory.getLogger("Test"));
         getMailboxManager().startProcessingRequest(session);
-        final MailboxPath path = new 
MailboxPath(MailboxConstants.USER_NAMESPACE, "username", "INBOX");
+        final MailboxPath path = new 
MailboxPath(MailboxConstants.USER_NAMESPACE, username, "INBOX");
         getMailboxManager().createMailbox(path, session);
         getMailboxManager().addListener(path, new MailboxListener() {
 
@@ -81,7 +84,7 @@ public abstract class AbstractStressTest
 
 
                     try {
-                        MailboxSession session = 
getMailboxManager().createSystemSession("test", 
LoggerFactory.getLogger("Test"));
+                        MailboxSession session = 
getMailboxManager().createSystemSession(username, 
LoggerFactory.getLogger("Test"));
 
                         getMailboxManager().startProcessingRequest(session);
                         MessageManager m = 
getMailboxManager().getMailbox(path, session);

Modified: 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/Rfc4314RightsTest.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/Rfc4314RightsTest.java?rev=1686805&r1=1686804&r2=1686805&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/Rfc4314RightsTest.java
 (original)
+++ 
james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/Rfc4314RightsTest.java
 Mon Jun 22 08:15:54 2015
@@ -20,14 +20,11 @@
 
 package org.apache.james.mailbox.model;
 
-import static org.junit.Assert.assertEquals;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.mailbox.exception.UnsupportedRightException;
-import org.apache.james.mailbox.model.MailboxACL.MailboxACLRight;
-import org.apache.james.mailbox.model.SimpleMailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -37,10 +34,10 @@ import org.junit.Test;
 public class Rfc4314RightsTest {
     
     private Rfc4314Rights aeik;
-    private MailboxACLRights full;
     private Rfc4314Rights lprs;
-    private MailboxACLRights none;
     private Rfc4314Rights twx;
+    private MailboxACLRights full;
+    private MailboxACLRights none;
     
     @Before
     public void setUp() throws Exception {
@@ -50,75 +47,157 @@ public class Rfc4314RightsTest {
         full = SimpleMailboxACL.FULL_RIGHTS;
         none = SimpleMailboxACL.NO_RIGHTS;
     }
+    
+    @Test(expected=NullPointerException.class)
+    public void newInstanceShouldThrowWhenNullString() throws 
UnsupportedRightException {
+        new SimpleMailboxACL.Rfc4314Rights((String) null);
+    }
+    
+    @Test
+    public void newInstanceShouldHaveNoRightsWhenEmptyString() throws 
UnsupportedRightException {
+        Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights("");
+        assertThat(rights).isEmpty();
+    }
+    
+    @Test
+    public void containsShouldReturnFalseWhenNotMatching() throws 
UnsupportedRightException {
+        assertThat(aeik.contains('x')).isFalse();
+    }
+    
+    @Test
+    public void containsShouldReturnTrueWhenMatching() throws 
UnsupportedRightException {
+        assertThat(aeik.contains('e')).isTrue();
+    }
+    
     @Test
-    public void testExceptFull() throws UnsupportedRightException {
-        assertEquals(none, full.except(aeik).except(lprs).except(twx));
+    public void exceptShouldRemoveAllWhenChaining() throws 
UnsupportedRightException {
+        assertThat(full.except(aeik).except(lprs).except(twx)).isEqualTo(none);
     }
     
     @Test
-    public void testExceptNonExistent() throws UnsupportedRightException {
-        assertEquals(aeik, aeik.except(lprs));
+    public void exceptShouldReturnOriginWhenExceptingNull() throws 
UnsupportedRightException {
+        assertThat(aeik.except(null)).isEqualTo(aeik);
+    }
+    
+    @Test
+    public void exceptShouldReturnOriginWhenExceptingNonExistent() throws 
UnsupportedRightException {
+        assertThat(aeik.except(lprs)).isEqualTo(aeik);
     }
 
+    @Test(expected=UnsupportedRightException.class)
+    public void rfc4314RightsShouldThrowWhenUnknownFlag() throws 
UnsupportedRightException {
+        new SimpleMailboxACL.Rfc4314Rights("z");
+    }
+    
+    @Test
+    public void exceptShouldReturnOriginWhenExceptingEmpty() throws 
UnsupportedRightException {
+        assertThat(aeik.except(none)).isEqualTo(aeik);
+    }
+    
     @Test
-    public void testExceptUnsupportedFlag() {
-        try {
-            String unsupportedFlag = "z";
-            new SimpleMailboxACL.Rfc4314Rights(unsupportedFlag );
-            Assert.fail(UnsupportedRightException.class.getName() +" expected 
for unsupported right flag '"+ unsupportedFlag +"'.");
-        } catch (UnsupportedRightException e) {
-            /* OK */
-        }
+    public void fullRightsShouldContainsAllRights() {
+        assertThat(full).containsOnly(
+                Rfc4314Rights.a_Administer_RIGHT, 
+                Rfc4314Rights.e_PerformExpunge_RIGHT, 
+                Rfc4314Rights.i_Insert_RIGHT, 
+                Rfc4314Rights.k_CreateMailbox_RIGHT,
+                Rfc4314Rights.l_Lookup_RIGHT,
+                Rfc4314Rights.p_Post_RIGHT,
+                Rfc4314Rights.r_Read_RIGHT,
+                Rfc4314Rights.s_WriteSeenFlag_RIGHT,
+                Rfc4314Rights.t_DeleteMessages_RIGHT,
+                Rfc4314Rights.w_Write_RIGHT,
+                Rfc4314Rights.x_DeleteMailbox_RIGHT);
     }
     
     @Test
-    public void testExceptZero() throws UnsupportedRightException {
-        assertEquals(aeik, aeik.except(none));
+    public void noneRightsShouldContainsNoRights() {
+        assertThat(none).isEmpty();
     }
     
     @Test
-    public void testIterable() {
-        testIterable(full);
-        testIterable(none);
-        testIterable(aeik);
-        testIterable(lprs);
-        testIterable(twx);
+    public void rightsShouldContainsSpecificRightsWhenAEIK() {
+        assertThat(aeik).containsOnly(
+                Rfc4314Rights.a_Administer_RIGHT, 
+                Rfc4314Rights.e_PerformExpunge_RIGHT, 
+                Rfc4314Rights.i_Insert_RIGHT, 
+                Rfc4314Rights.k_CreateMailbox_RIGHT);
     }
     
-    private static void testIterable(MailboxACLRights rights) {
-        String stringRights = rights.serialize();
-        int i = 0;
-        for (MailboxACLRight r : rights) {
-            assertEquals(stringRights.charAt(i++), r.getValue());
-        }
-        assertEquals(stringRights.length(), i);
+    @Test
+    public void rightsShouldContainsSpecificRightsWhenLPRS() {
+        assertThat(lprs).containsOnly(
+                Rfc4314Rights.l_Lookup_RIGHT, 
+                Rfc4314Rights.p_Post_RIGHT, 
+                Rfc4314Rights.r_Read_RIGHT, 
+                Rfc4314Rights.s_WriteSeenFlag_RIGHT);
+    }
+    
+    @Test
+    public void rightsShouldContainsSpecificRightsWhenTWX() {
+        assertThat(twx).containsOnly(
+                Rfc4314Rights.t_DeleteMessages_RIGHT, 
+                Rfc4314Rights.w_Write_RIGHT, 
+                Rfc4314Rights.x_DeleteMailbox_RIGHT);
+    }
 
+    @Test
+    public void getValueShouldReturnSigmaWhenAeik() throws 
UnsupportedRightException {
+        assertThat(aeik.getValue()).isEqualTo(Rfc4314Rights.a_Administer_MASK 
| Rfc4314Rights.e_PerformExpunge_MASK | Rfc4314Rights.i_Insert_MASK | 
Rfc4314Rights.k_CreateMailbox_MASK);
     }
 
     @Test
-    public void testParse() throws UnsupportedRightException {
-        assertEquals(aeik.getValue(), Rfc4314Rights.a_Administer_MASK | 
Rfc4314Rights.e_PerformExpunge_MASK | Rfc4314Rights.i_Insert_MASK | 
Rfc4314Rights.k_CreateMailbox_MASK);
-        assertEquals(lprs.getValue(), Rfc4314Rights.l_Lookup_MASK | 
Rfc4314Rights.p_Post_MASK | Rfc4314Rights.s_WriteSeenFlag_MASK | 
Rfc4314Rights.r_Read_MASK);
-        assertEquals(twx.getValue(), Rfc4314Rights.t_DeleteMessages_MASK | 
Rfc4314Rights.w_Write_MASK | Rfc4314Rights.x_DeleteMailbox_MASK);
+    public void getValueShouldReturnSigmaWhenLprs() throws 
UnsupportedRightException {
+        assertThat(lprs.getValue()).isEqualTo(Rfc4314Rights.l_Lookup_MASK | 
Rfc4314Rights.p_Post_MASK | Rfc4314Rights.s_WriteSeenFlag_MASK | 
Rfc4314Rights.r_Read_MASK);
     }
 
     @Test
-    public void testSerialize() throws UnsupportedRightException {
-        assertEquals("aeik", aeik.serialize());
-        assertEquals("lprs", lprs.serialize());
-        assertEquals("twx", twx.serialize());
-        assertEquals("aeiklprstwx", full.serialize());
-        assertEquals("", none.serialize());
+    public void getValueShouldReturnSigmaWhenTwx() throws 
UnsupportedRightException {
+        
assertThat(twx.getValue()).isEqualTo(Rfc4314Rights.t_DeleteMessages_MASK | 
Rfc4314Rights.w_Write_MASK | Rfc4314Rights.x_DeleteMailbox_MASK);
     }
-    
+
     @Test
-    public void testUnionFull() throws UnsupportedRightException {
-        assertEquals(full, aeik.union(lprs).union(twx));
+    public void getValueShouldReturnEmptyWhenNone() throws 
UnsupportedRightException {
+        assertThat(new 
SimpleMailboxACL.Rfc4314Rights("").getValue()).isEqualTo(Rfc4314Rights.EMPTY_MASK);
     }
+
     @Test
-    public void testUnionZero() throws UnsupportedRightException {
-        assertEquals(lprs, lprs.union(none));
+    public void serializeShouldReturnStringWhenAeik() throws 
UnsupportedRightException {
+        assertThat(aeik.serialize()).isEqualTo("aeik");
     }
 
+    @Test
+    public void serializeShouldReturnStringWhenLprs() throws 
UnsupportedRightException {
+        assertThat(lprs.serialize()).isEqualTo("lprs");
+    }
 
+    @Test
+    public void serializeShouldReturnStringWhenTwx() throws 
UnsupportedRightException {
+        assertThat(twx.serialize()).isEqualTo("twx");
+    }
+    
+    @Test
+    public void serializeShouldReturnStringWhenAeiklprstwx() throws 
UnsupportedRightException {
+        assertThat(full.serialize()).isEqualTo("aeiklprstwx");
+    }
+
+    @Test
+    public void serializeShouldReturnEmptyStringWhenEmpty() throws 
UnsupportedRightException {
+        assertThat(none.serialize()).isEmpty();
+    }
+    
+    @Test
+    public void unionShouldReturnFullWhenChaining() throws 
UnsupportedRightException {
+        assertThat(aeik.union(lprs).union(twx)).isEqualTo(full);
+    }
+    
+    @Test
+    public void unionShouldReturnOriginWhenAppliedWithEmpty() throws 
UnsupportedRightException {
+        assertThat(lprs.union(none)).isEqualTo(lprs);
+    }
+    
+    @Test(expected=NullPointerException.class)
+    public void unionShouldThrowWhenAppliedWithNull() throws 
UnsupportedRightException {
+        assertThat(lprs.union(null)).isEqualTo(lprs);
+    }
 }



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

Reply via email to