From 7505b734d635b9af56ea27fc2e1f41694dfa2554 Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Tue, 2 Dec 2008 12:17:13 +0000 Subject: [PATCH] Converted to use jmock. --- .../domain/AccessControlImplEntryTests.java | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java new file mode 100644 index 0000000000..e4a9d5e7ba --- /dev/null +++ b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java @@ -0,0 +1,106 @@ +package org.springframework.security.acls.domain; + +import static org.junit.Assert.*; + +import org.jmock.Expectations; +import org.jmock.Mockery; +import org.jmock.integration.junit4.JUnit4Mockery; +import org.junit.Test; +import org.springframework.security.acls.AccessControlEntry; +import org.springframework.security.acls.Acl; +import org.springframework.security.acls.AuditableAccessControlEntry; +import org.springframework.security.acls.objectidentity.ObjectIdentity; +import org.springframework.security.acls.sid.PrincipalSid; +import org.springframework.security.acls.sid.Sid; + +/** + * Tests for {@link AccessControlEntryImpl}. + * + * @author Andrei Stefan + * @version $Id$ + */ +public class AccessControlImplEntryTests { + Mockery jmock = new JUnit4Mockery(); + + //~ Methods ======================================================================================================== + + @Test + public void testConstructorRequiredFields() { + // Check Acl field is present + try { + AccessControlEntry ace = new AccessControlEntryImpl(null, null, new PrincipalSid("johndoe"), + BasePermission.ADMINISTRATION, true, true, true); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + + // Check Sid field is present + try { + AccessControlEntry ace = new AccessControlEntryImpl(null, jmock.mock(Acl.class), null, + BasePermission.ADMINISTRATION, true, true, true); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + + // Check Permission field is present + try { + AccessControlEntry ace = new AccessControlEntryImpl(null, jmock.mock(Acl.class), new PrincipalSid("johndoe"), null, + true, true, true); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + } + + @Test + public void testAccessControlEntryImplGetters() { + Acl mockAcl = jmock.mock(Acl.class); + Sid sid = new PrincipalSid("johndoe"); + + // Create a sample entry + AccessControlEntry ace = new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.ADMINISTRATION, + true, true, true); + + // and check every get() method + assertEquals(new Long(1), ace.getId()); + assertEquals(mockAcl, ace.getAcl()); + assertEquals(sid, ace.getSid()); + assertTrue(ace.isGranting()); + assertEquals(BasePermission.ADMINISTRATION, ace.getPermission()); + assertTrue(((AuditableAccessControlEntry) ace).isAuditFailure()); + assertTrue(((AuditableAccessControlEntry) ace).isAuditSuccess()); + } + + @Test + public void testEquals() { + final Acl mockAcl = jmock.mock(Acl.class); + final ObjectIdentity oid = jmock.mock(ObjectIdentity.class); + jmock.checking(new Expectations() {{ + allowing(mockAcl).getObjectIdentity(); will(returnValue(oid)); + }}); + Sid sid = new PrincipalSid("johndoe"); + + AccessControlEntry ace = new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.ADMINISTRATION, + true, true, true); + + assertFalse(ace.equals(null)); + assertFalse(ace.equals(new Long(100))); + assertTrue(ace.equals(ace)); + assertTrue(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid, + BasePermission.ADMINISTRATION, true, true, true))); + assertFalse(ace.equals(new AccessControlEntryImpl(new Long(2), mockAcl, sid, + BasePermission.ADMINISTRATION, true, true, true))); + assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, new PrincipalSid("scott"), + BasePermission.ADMINISTRATION, true, true, true))); + assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.WRITE, true, + true, true))); + assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid, + BasePermission.ADMINISTRATION, false, true, true))); + assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid, + BasePermission.ADMINISTRATION, true, false, true))); + assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid, + BasePermission.ADMINISTRATION, true, true, false))); + } +}