/** * Licensed to Apereo under one or more contributor license agreements. See the NOTICE file * distributed with this work for additional information regarding copyright ownership. Apereo * licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use * this file except in compliance with the License. You may obtain a copy of the License at the * following location: * * <p>http://www.apache.org/licenses/LICENSE-2.0 * * <p>Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package org.apereo.portal.groups; import java.util.Collections; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; import org.apereo.portal.security.IPerson; import org.apereo.portal.security.PersonFactory; import org.junit.Assert; import org.junit.Test; public class GroupsCacheAuthenticationListenerTest { @Test public void testUserAuthenticated() { final IPerson person = PersonFactory.createPerson(); person.setAttribute(IPerson.USERNAME, "mock.person"); final IEntityGroup group = new MockEntityGroup("mock.group", IPerson.class); final CacheManager cacheManager = CacheManager.getInstance(); final Cache parentGroupsCache = new Cache("parentGroupsCache", 100, false, false, 0, 0); cacheManager.addCache(parentGroupsCache); parentGroupsCache.put( new Element(person.getEntityIdentifier(), Collections.singleton(group))); final Cache childrenCache = new Cache("childrenCache", 100, false, false, 0, 0); cacheManager.addCache(childrenCache); childrenCache.put(new Element(group.getUnderlyingEntityIdentifier(), new Object())); Assert.assertEquals(parentGroupsCache.getSize(), 1); Assert.assertEquals(childrenCache.getSize(), 1); final LocalGroupsCacheAuthenticationListener listener = new LocalGroupsCacheAuthenticationListener(); listener.setParentGroupsCache(parentGroupsCache); listener.setChildrenCache(childrenCache); listener.userAuthenticated(person); Assert.assertEquals(parentGroupsCache.getSize(), 0); Assert.assertEquals(childrenCache.getSize(), 0); } }