From 6584b654894e80c51e543352aac2e40a8f32e95f Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Mon, 11 Jun 2012 16:24:57 -0500 Subject: [PATCH] SEC-1898: Added test to demonstrate JdbcAclService#readAclById throws NotFoundException when the Acl is missing --- .../acls/jdbc/JdbcAclServiceTests.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java new file mode 100644 index 0000000000..afa5f011a9 --- /dev/null +++ b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java @@ -0,0 +1,50 @@ +package org.springframework.security.acls.jdbc; + +import static org.mockito.Matchers.anyListOf; +import static org.mockito.Mockito.when; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.security.acls.domain.ObjectIdentityImpl; +import org.springframework.security.acls.domain.PrincipalSid; +import org.springframework.security.acls.model.Acl; +import org.springframework.security.acls.model.NotFoundException; +import org.springframework.security.acls.model.ObjectIdentity; +import org.springframework.security.acls.model.Sid; + +@RunWith(MockitoJUnitRunner.class) +public class JdbcAclServiceTests { + @Mock + private DataSource dataSource; + + @Mock + private LookupStrategy lookupStrategy; + + private JdbcAclService aclService; + + @Before + public void setUp() { + aclService = new JdbcAclService(dataSource, lookupStrategy); + } + + // SEC-1898 + @Test(expected = NotFoundException.class) + public void readAclByIdMissingAcl() { + Map result = new HashMap(); + when(lookupStrategy.readAclsById(anyListOf(ObjectIdentity.class), anyListOf(Sid.class))).thenReturn(result); + ObjectIdentity objectIdentity = new ObjectIdentityImpl(Object.class, 1); + List sids = Arrays. asList(new PrincipalSid("user")); + + aclService.readAclById(objectIdentity, sids); + } +} \ No newline at end of file