001/** 002 * Copyright 2015 DuraSpace, Inc. 003 * 004 * Licensed under the Apache 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.apache.org/licenses/LICENSE-2.0 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.fcrepo.auth.webac; 017 018import static org.fcrepo.auth.webac.URIConstants.WEBAC_MODE_READ; 019import static org.fcrepo.auth.webac.URIConstants.WEBAC_MODE_WRITE; 020import static org.junit.Assert.assertEquals; 021import static org.junit.Assert.assertTrue; 022 023import java.net.URI; 024import java.util.Arrays; 025import java.util.HashSet; 026import java.util.List; 027import java.util.Set; 028 029import org.junit.Test; 030 031/** 032 * @author acoburn 033 * @since 9/2/15 034 */ 035public class WebACAuthorizationTest { 036 037 private final String AGENT1 = "me"; 038 private final String AGENT2 = "you"; 039 private final String AGENT_CLASS1 = "this"; 040 private final String AGENT_CLASS2 = "that"; 041 private final String ACCESS_TO1 = "/foo"; 042 private final String ACCESS_TO2 = "/bar"; 043 private final String ACCESS_TO3 = "/baz"; 044 private final String ACCESS_TO_CLASS1 = "ex:Image"; 045 private final String ACCESS_TO_CLASS2 = "ex:Archive"; 046 047 @Test 048 public void testLists() { 049 final List<String> agents = Arrays.asList(AGENT1, AGENT2, AGENT1); 050 final List<String> agentClasses = Arrays.asList(AGENT_CLASS1, AGENT_CLASS2, AGENT_CLASS2); 051 final List<URI> modes = Arrays.asList(WEBAC_MODE_READ, WEBAC_MODE_WRITE, WEBAC_MODE_READ); 052 final List<String> accessTo = Arrays.asList(ACCESS_TO1, ACCESS_TO2, ACCESS_TO3); 053 final List<String> accessToClass = Arrays.asList(ACCESS_TO_CLASS1, ACCESS_TO_CLASS2); 054 055 final WebACAuthorization auth = new WebACAuthorization(agents, agentClasses, 056 modes, accessTo, accessToClass); 057 058 assertEquals(2, auth.getAgents().size()); 059 assertTrue(auth.getAgents().contains(AGENT1)); 060 assertEquals(2, auth.getAgentClasses().size()); 061 assertTrue(auth.getAgentClasses().contains(AGENT_CLASS2)); 062 assertEquals(2, auth.getModes().size()); 063 assertTrue(auth.getModes().contains(WEBAC_MODE_READ)); 064 assertEquals(3, auth.getAccessToURIs().size()); 065 assertTrue(auth.getAccessToURIs().contains(ACCESS_TO3)); 066 assertEquals(2, auth.getAccessToClassURIs().size()); 067 assertTrue(auth.getAccessToClassURIs().contains(ACCESS_TO_CLASS2)); 068 } 069 070 @Test 071 public void testSets() { 072 final Set<String> agents = new HashSet<>(Arrays.asList(AGENT1, AGENT2)); 073 final Set<String> agentClasses = new HashSet<>(Arrays.asList(AGENT_CLASS1, AGENT_CLASS2)); 074 final Set<URI> modes = new HashSet<>(Arrays.asList(WEBAC_MODE_WRITE, WEBAC_MODE_READ)); 075 final Set<String> accessTo = new HashSet<>(Arrays.asList(ACCESS_TO1, ACCESS_TO2, ACCESS_TO3)); 076 final Set<String> accessToClass = new HashSet<>(Arrays.asList(ACCESS_TO_CLASS1, ACCESS_TO_CLASS2)); 077 078 final WebACAuthorization auth = new WebACAuthorization(agents, agentClasses, 079 modes, accessTo, accessToClass); 080 081 assertEquals(2, auth.getAgents().size()); 082 assertTrue(auth.getAgents().contains(AGENT1)); 083 assertEquals(2, auth.getAgentClasses().size()); 084 assertTrue(auth.getAgentClasses().contains(AGENT_CLASS2)); 085 assertEquals(2, auth.getModes().size()); 086 assertTrue(auth.getModes().contains(WEBAC_MODE_READ)); 087 assertEquals(3, auth.getAccessToURIs().size()); 088 assertTrue(auth.getAccessToURIs().contains(ACCESS_TO3)); 089 assertEquals(2, auth.getAccessToClassURIs().size()); 090 assertTrue(auth.getAccessToClassURIs().contains(ACCESS_TO_CLASS2)); 091 } 092 093 094}