001/**
002 * Copyright 2005-2014 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.Ignore;
019import org.junit.Test;
020import org.kuali.rice.kim.api.common.assignee.Assignee;
021import org.kuali.rice.kim.api.permission.PermissionService;
022import org.kuali.rice.kim.api.services.KimApiServiceLocator;
023import org.kuali.rice.kim.impl.common.template.TemplateBo;
024import org.kuali.rice.kim.impl.permission.PermissionBo;
025import org.kuali.rice.kim.test.KIMTestCase;
026import org.kuali.rice.test.BaselineTestCase;
027
028import java.util.Collections;
029import java.util.HashMap;
030import java.util.List;
031
032import static org.junit.Assert.*;
033
034/**
035 * Test the PermissionService
036 * 
037 * @author Kuali Rice Team (rice.collab@kuali.org)
038 *
039 */
040@BaselineTestCase.BaselineMode(BaselineTestCase.Mode.NONE)
041public class PermissionServiceTest extends KIMTestCase {
042
043        private PermissionService permissionService;
044
045        @Override
046        public void setUp() throws Exception {
047                super.setUp();
048                setPermissionService(KimApiServiceLocator.getPermissionService());
049        }
050
051        @Test
052        public void testHasPermission() {
053                assertTrue(getPermissionService().hasPermission("entity123pId", "KR-NS", "perm1"));
054                assertTrue(getPermissionService().hasPermission("entity123pId", "KR-NS", "perm2"));
055                assertFalse(getPermissionService().hasPermission("entity124pId", "KR-NS", "perm2"));
056        }
057        
058        @Test
059        public void testIsAuthorized() {
060                assertTrue(getPermissionService().isAuthorized("entity123pId", "KR-NS", "perm1", new HashMap<String, String>()));
061                assertTrue(getPermissionService().isAuthorized("entity123pId", "KR-NS", "perm2", new HashMap<String, String>()));
062                assertFalse(getPermissionService().isAuthorized("entity124pId", "KR-NS", "perm2", new HashMap<String, String>()));
063        }
064        
065        @Test
066        public void testHasPermissionByTemplateName() {
067                assertTrue(getPermissionService().hasPermissionByTemplate("entity123pId", "KUALI", "Default",
068                new HashMap<String, String>()));
069                // TODO - getting a SOAPFaultException on this call; fix and un-comment
070                // assertFalse(getPermissionService().hasPermissionByTemplate("entity124pId", "KUALI", "Default", new Map<String, String>()));
071        }
072        
073        @Test
074    @Ignore // TODO implement testIsAuthorizedByTemplateName
075    public void testIsAuthorizedByTemplateName() {
076                // assertTrue(getPermissionService().isAuthorizedByTemplate(principalId, namespaceCode, permissionTemplateName, permissionDetails, qualification)("entity123pId", "KR-NS", "1", new Map<String, String>()));
077        }
078        
079        @Test
080        public void testGetPermissionAssignees() {
081                
082                List<Assignee> assignees = getPermissionService().getPermissionAssignees("KUALI", "Log In Kuali Portal", Collections.<String, String>emptyMap());
083                assertNotNull(assignees);
084                assertEquals(1, assignees.size());
085                Assignee permInfo = assignees.get(0);
086                assertEquals("entity123pId", permInfo.getPrincipalId());
087                assignees = getPermissionService().getPermissionAssignees("KUALI", "Not A Valid Permission Name", Collections.<String, String>emptyMap());
088                // TODO - jax-ws remoted service returns null; local return empty List. Fix webservice return
089                assertTrue(null == assignees || assignees.size() == 0);
090        }
091        
092        @Test
093    @Ignore // TODO implement testGetPermissionAssigneesForTemplateName
094    public void testGetPermissionAssigneesForTemplateName() {
095                /*
096                List<PermissionAssigneeInfo> assignees = getPermissionService().getPermissionAssignees("KUALI", "Log In", null, null);
097                assertNotNull(assignees);
098                assertEquals(1, assignees.size());
099                PermissionAssigneeInfo permInfo = assignees.get(0);
100                assertEquals("entity123pId", permInfo.getPrincipalId());
101                assignees = getPermissionService().getPermissionAssignees("KUALI", "Not A Valid Permission Name", null, null);
102                assertNull(assignees);
103                */
104        }
105        
106        @Test
107    @Ignore // TODO implement testIsPermissionDefined
108    public void testIsPermissionDefined() {
109        }
110        
111        @Test
112    @Ignore // TODO implement testIsPermissionDefinedForTemplateName
113    public void testIsPermissionDefinedForTemplateName() {
114        }
115        
116        @Test
117    @Ignore // TODO implement testGetAuthorizedPermissions
118    public void testGetAuthorizedPermissions() {
119        }
120        
121        @Test
122    @Ignore // TODO implement testGetAuthorizedPermissionsByTemplateName
123    public void testGetAuthorizedPermissionsByTemplateName() {
124        }
125        
126        @Test
127        public void testGetPermission() {
128                PermissionBo permissionBo = PermissionBo.from(getPermissionService().getPermission("p1"));
129
130                assertNotNull(permissionBo);
131                assertEquals("perm1", permissionBo.getName());
132                assertEquals("KR-NS", permissionBo.getNamespaceCode());
133                assertEquals(0, permissionBo.getDetails().size());
134                assertTrue(permissionBo.isActive());
135                
136                TemplateBo templateBo = permissionBo.getTemplate();
137                assertNotNull(templateBo);
138                assertTrue(templateBo.isActive());
139                assertEquals("1", templateBo.getKimTypeId());
140                assertEquals("Default", templateBo.getName());
141                assertEquals("KUALI", templateBo.getNamespaceCode());
142                
143                permissionBo = PermissionBo.from(getPermissionService().getPermission("p0"));
144                assertNull(permissionBo);
145        }
146        
147        @Test
148    @Ignore // TODO implement testGetPermissionsByTemplateName
149    public void testGetPermissionsByTemplateName() {
150        }
151        
152        @Test
153    @Ignore // TODO implement testGetPermissionsByName
154    public void testGetPermissionsByName() {
155        }
156        
157        @Test
158    @Ignore // TODO implement testLookupPermissions
159    public void testLookupPermissions() {
160        }
161        
162        @Test
163    @Ignore // TODO implement testGetRoleIdsForPermission
164    public void testGetRoleIdsForPermission() {
165        }
166        
167        @Test
168    @Ignore // TODO implement testGetRoleIdsForPermissions
169    public void testGetRoleIdsForPermissions() {
170        }
171        
172        @Test
173    @Ignore // TODO implement testGetPermissionDetailLabel
174    public void testGetPermissionDetailLabel() {
175        }
176
177        public PermissionService getPermissionService() {
178                return this.permissionService;
179        }
180
181        public void setPermissionService(PermissionService permissionService) {
182                this.permissionService = permissionService;
183        }
184
185}