package org.apereo.cas.grouper.services; import org.apache.commons.io.FileUtils; import org.apereo.cas.services.AbstractRegisteredService; import org.apereo.cas.services.JsonServiceRegistryDao; import org.apereo.cas.services.RegisteredServiceTestUtils; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationEventPublisher; import org.springframework.core.io.ClassPathResource; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import static org.mockito.Mockito.*; /** * The {@link GrouperRegisteredServiceAccessStrategyRegistryTests} includes * tests for making sure the strategy can be configured correctly inside the registry. * * @author Misagh Moayyed * @since 4.2 */ public class GrouperRegisteredServiceAccessStrategyRegistryTests { private static final ClassPathResource RESOURCE = new ClassPathResource("services"); @BeforeClass public static void prepTests() throws Exception { FileUtils.cleanDirectory(RESOURCE.getFile()); } @Test public void checkAccessStrategyJson() throws Exception { final Map<String, Set<String>> attributes = new HashMap<>(); final Set<String> v1 = new HashSet<>(); v1.add("admin"); attributes.put("memberOf", v1); final AbstractRegisteredService service = RegisteredServiceTestUtils.getRegisteredService("test"); final GrouperRegisteredServiceAccessStrategy grouper = new GrouperRegisteredServiceAccessStrategy(); grouper.setRequiredAttributes(attributes); service.setAccessStrategy(grouper); final JsonServiceRegistryDao dao = new JsonServiceRegistryDao(RESOURCE, false, mock(ApplicationEventPublisher.class)); dao.save(service); dao.load(); } }