001/**
002 * Copyright 2005-2011 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.kim.test.service;
017
018import org.junit.Test;
019import org.kuali.rice.kim.api.common.assignee.Assignee;
020import org.kuali.rice.kim.api.permission.PermissionService;
021import org.kuali.rice.kim.api.services.KimApiServiceLocator;
022import org.kuali.rice.kim.impl.common.template.TemplateBo;
023import org.kuali.rice.kim.impl.permission.PermissionBo;
024import org.kuali.rice.kim.test.KIMTestCase;
025import org.kuali.rice.test.BaselineTestCase;
026
027import java.util.Collections;
028import java.util.HashMap;
029import java.util.List;
030
031import static org.junit.Assert.*;
032
033/**
034 * Test the PermissionService
035 * 
036 * @author Kuali Rice Team (rice.collab@kuali.org)
037 *
038 */
039@BaselineTestCase.BaselineMode(BaselineTestCase.Mode.NONE)
040public class PermissionServiceTest extends KIMTestCase {
041
042        private PermissionService permissionService;
043
044        @Override
045        public void setUp() throws Exception {
046                super.setUp();
047                setPermissionService(KimApiServiceLocator.getPermissionService());
048        }
049
050        @Test
051        public void testHasPermission() {
052                assertTrue(getPermissionService().hasPermission("entity123pId", "KR-NS", "perm1"));
053                assertTrue(getPermissionService().hasPermission("entity123pId", "KR-NS", "perm2"));
054                assertFalse(getPermissionService().hasPermission("entity124pId", "KR-NS", "perm2"));
055        }
056        
057        @Test
058        public void testIsAuthorized() {
059                assertTrue(getPermissionService().isAuthorized("entity123pId", "KR-NS", "perm1", new HashMap<String, String>()));
060                assertTrue(getPermissionService().isAuthorized("entity123pId", "KR-NS", "perm2", new HashMap<String, String>()));
061                assertFalse(getPermissionService().isAuthorized("entity124pId", "KR-NS", "perm2", new HashMap<String, String>()));
062        }
063        
064        @Test
065        public void testHasPermissionByTemplateName() {
066                assertTrue(getPermissionService().hasPermissionByTemplate("entity123pId", "KUALI", "Default",
067                new HashMap<String, String>()));
068                // TODO - getting a SOAPFaultException on this call; fix and un-comment
069                // assertFalse(getPermissionService().hasPermissionByTemplate("entity124pId", "KUALI", "Default", new Map<String, String>()));
070        }
071        
072        @Test
073        public void testIsAuthorizedByTemplateName() {
074                // assertTrue(getPermissionService().isAuthorizedByTemplate(principalId, namespaceCode, permissionTemplateName, permissionDetails, qualification)("entity123pId", "KR-NS", "1", new Map<String, String>()));
075        }
076        
077        @Test
078        public void testGetPermissionAssignees() {
079                
080                List<Assignee> assignees = getPermissionService().getPermissionAssignees("KUALI", "Log In Kuali Portal", Collections.<String, String>emptyMap());
081                assertNotNull(assignees);
082                assertEquals(1, assignees.size());
083                Assignee permInfo = assignees.get(0);
084                assertEquals("entity123pId", permInfo.getPrincipalId());
085                assignees = getPermissionService().getPermissionAssignees("KUALI", "Not A Valid Permission Name", Collections.<String, String>emptyMap());
086                // TODO - jax-ws remoted service returns null; local return empty List. Fix webservice return
087                assertTrue(null == assignees || assignees.size() == 0);
088        }
089        
090        @Test
091        public void testGetPermissionAssigneesForTemplateName() {
092                /*
093                List<PermissionAssigneeInfo> assignees = getPermissionService().getPermissionAssignees("KUALI", "Log In", null, null);
094                assertNotNull(assignees);
095                assertEquals(1, assignees.size());
096                PermissionAssigneeInfo permInfo = assignees.get(0);
097                assertEquals("entity123pId", permInfo.getPrincipalId());
098                assignees = getPermissionService().getPermissionAssignees("KUALI", "Not A Valid Permission Name", null, null);
099                assertNull(assignees);
100                */
101        }
102        
103        @Test
104        public void testIsPermissionDefined() {
105        }
106        
107        @Test
108        public void testIsPermissionDefinedForTemplateName() {
109        }
110        
111        @Test
112        public void testGetAuthorizedPermissions() {
113        }
114        
115        @Test
116        public void testGetAuthorizedPermissionsByTemplateName() {
117        }
118        
119        @Test
120        public void testGetPermission() {
121                PermissionBo permissionBo = PermissionBo.from(getPermissionService().getPermission("p1"));
122
123                assertNotNull(permissionBo);
124                assertEquals("perm1", permissionBo.getName());
125                assertEquals("KR-NS", permissionBo.getNamespaceCode());
126                assertEquals(0, permissionBo.getDetails().size());
127                assertTrue(permissionBo.isActive());
128                
129                TemplateBo templateBo = permissionBo.getTemplate();
130                assertNotNull(templateBo);
131                assertTrue(templateBo.isActive());
132                assertEquals("1", templateBo.getKimTypeId());
133                assertEquals("Default", templateBo.getName());
134                assertEquals("KUALI", templateBo.getNamespaceCode());
135                
136                permissionBo = PermissionBo.from(getPermissionService().getPermission("p0"));
137                assertNull(permissionBo);
138        }
139        
140        @Test
141        public void testGetPermissionsByTemplateName() {
142        }
143        
144        @Test
145        public void testGetPermissionsByName() {
146        }
147        
148        @Test
149        public void testLookupPermissions() {
150        }
151        
152        @Test
153        public void testGetRoleIdsForPermission() {
154        }
155        
156        @Test
157        public void testGetRoleIdsForPermissions() {
158        }
159        
160        @Test
161        public void testGetPermissionDetailLabel() {
162        }
163
164        public PermissionService getPermissionService() {
165                return this.permissionService;
166        }
167
168        public void setPermissionService(PermissionService permissionService) {
169                this.permissionService = permissionService;
170        }
171
172}