001/* 002 * The contents of this file are subject to the license and copyright 003 * detailed in the LICENSE and NOTICE files at the root of the source 004 * tree. 005 */ 006package org.fcrepo.auth.webac; 007 008import static org.fcrepo.auth.webac.URIConstants.WEBAC_MODE_READ; 009import static org.fcrepo.auth.webac.URIConstants.WEBAC_MODE_WRITE; 010import static org.junit.Assert.assertEquals; 011import static org.junit.Assert.assertTrue; 012 013import java.net.URI; 014import java.util.Arrays; 015import java.util.Collections; 016import java.util.HashSet; 017import java.util.List; 018import java.util.Set; 019 020import org.junit.Test; 021 022/** 023 * @author acoburn 024 * @since 9/2/15 025 */ 026public class WebACAuthorizationTest { 027 028 private final String AGENT1 = "me"; 029 private final String AGENT2 = "you"; 030 private final String AGENT_CLASS1 = "this"; 031 private final String AGENT_CLASS2 = "that"; 032 private final String ACCESS_TO1 = "/foo"; 033 private final String ACCESS_TO2 = "/bar"; 034 private final String ACCESS_TO3 = "/baz"; 035 private final String ACCESS_TO_CLASS1 = "ex:Image"; 036 private final String ACCESS_TO_CLASS2 = "ex:Archive"; 037 private final String ACCESS_GROUP1 = "/groupA"; 038 private final String ACCESS_GROUP2 = "/groupB"; 039 private final String DEFAULT_1 = "/foo"; 040 041 @Test 042 public void testLists() { 043 final List<String> agents = Arrays.asList(AGENT1, AGENT2, AGENT1); 044 final List<String> agentClasses = Arrays.asList(AGENT_CLASS1, AGENT_CLASS2, AGENT_CLASS2); 045 final List<URI> modes = Arrays.asList(WEBAC_MODE_READ, WEBAC_MODE_WRITE, WEBAC_MODE_READ); 046 final List<String> accessTo = Arrays.asList(ACCESS_TO1, ACCESS_TO2, ACCESS_TO3); 047 final List<String> accessToClass = Arrays.asList(ACCESS_TO_CLASS1, ACCESS_TO_CLASS2); 048 final List<String> accessGroups = Arrays.asList(ACCESS_GROUP1, ACCESS_GROUP2); 049 final List<String> defaults = Collections.singletonList(DEFAULT_1); 050 051 final WebACAuthorizationImpl auth = new WebACAuthorizationImpl(agents, agentClasses, 052 modes, accessTo, accessToClass, accessGroups, defaults); 053 054 assertEquals(2, auth.getAgents().size()); 055 assertTrue(auth.getAgents().contains(AGENT1)); 056 assertEquals(2, auth.getAgentClasses().size()); 057 assertTrue(auth.getAgentClasses().contains(AGENT_CLASS2)); 058 assertEquals(2, auth.getModes().size()); 059 assertTrue(auth.getModes().contains(WEBAC_MODE_READ)); 060 assertEquals(3, auth.getAccessToURIs().size()); 061 assertTrue(auth.getAccessToURIs().contains(ACCESS_TO3)); 062 assertEquals(2, auth.getAccessToClassURIs().size()); 063 assertTrue(auth.getAccessToClassURIs().contains(ACCESS_TO_CLASS2)); 064 assertEquals(2, auth.getAgentGroups().size()); 065 assertTrue(auth.getAgentGroups().contains(ACCESS_GROUP1)); 066 assertTrue(auth.getAgentGroups().contains(ACCESS_GROUP2)); 067 assertEquals(1, auth.getDefaults().size()); 068 069 } 070 071 @Test 072 public void testSets() { 073 final Set<String> agents = new HashSet<>(Arrays.asList(AGENT1, AGENT2)); 074 final Set<String> agentClasses = new HashSet<>(Arrays.asList(AGENT_CLASS1, AGENT_CLASS2)); 075 final Set<URI> modes = new HashSet<>(Arrays.asList(WEBAC_MODE_WRITE, WEBAC_MODE_READ)); 076 final Set<String> accessTo = new HashSet<>(Arrays.asList(ACCESS_TO1, ACCESS_TO2, ACCESS_TO3)); 077 final Set<String> accessToClass = new HashSet<>(Arrays.asList(ACCESS_TO_CLASS1, ACCESS_TO_CLASS2)); 078 final Set<String> accessGroups = new HashSet<>(Arrays.asList(ACCESS_GROUP1, ACCESS_GROUP2)); 079 final Set<String> defaults = new HashSet<>(Collections.singletonList(DEFAULT_1)); 080 081 final WebACAuthorizationImpl auth = new WebACAuthorizationImpl(agents, agentClasses, 082 modes, accessTo, accessToClass, accessGroups, defaults); 083 084 assertEquals(2, auth.getAgents().size()); 085 assertTrue(auth.getAgents().contains(AGENT1)); 086 assertEquals(2, auth.getAgentClasses().size()); 087 assertTrue(auth.getAgentClasses().contains(AGENT_CLASS2)); 088 assertEquals(2, auth.getModes().size()); 089 assertTrue(auth.getModes().contains(WEBAC_MODE_READ)); 090 assertEquals(3, auth.getAccessToURIs().size()); 091 assertTrue(auth.getAccessToURIs().contains(ACCESS_TO3)); 092 assertEquals(2, auth.getAccessToClassURIs().size()); 093 assertTrue(auth.getAccessToClassURIs().contains(ACCESS_TO_CLASS2)); 094 assertEquals(1, auth.getDefaults().size()); 095 assertEquals(2, auth.getAgentGroups().size()); 096 assertTrue(auth.getAgentGroups().contains(ACCESS_GROUP1)); 097 assertTrue(auth.getAgentGroups().contains(ACCESS_GROUP2)); 098 } 099 100 101}