package org.apereo.cas.services; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.io.FileUtils; import org.apereo.cas.authentication.principal.Principal; import org.apereo.cas.authentication.principal.Service; import org.apereo.cas.authentication.principal.ShibbolethCompatiblePersistentIdGenerator; import org.junit.Test; import java.io.File; import java.io.IOException; import static org.junit.Assert.*; import static org.mockito.Mockito.*; /** * @author Misagh Moayyed * @since 4.1.0 */ public class AnonymousRegisteredServiceUsernameAttributeProviderTests { private static final File JSON_FILE = new File(FileUtils.getTempDirectoryPath(), "anonymousRegisteredServiceUsernameAttributeProvider.json"); private static final ObjectMapper MAPPER = new ObjectMapper(); private static final String CASROX = "casrox"; @Test public void verifyPrincipalResolution() { final AnonymousRegisteredServiceUsernameAttributeProvider provider = new AnonymousRegisteredServiceUsernameAttributeProvider( new ShibbolethCompatiblePersistentIdGenerator(CASROX)); final Service service = mock(Service.class); when(service.getId()).thenReturn("id"); final Principal principal = mock(Principal.class); when(principal.getId()).thenReturn("uid"); final String id = provider.resolveUsername(principal, service, RegisteredServiceTestUtils.getRegisteredService("id")); assertNotNull(id); } @Test public void verifyEquality() { final AnonymousRegisteredServiceUsernameAttributeProvider provider = new AnonymousRegisteredServiceUsernameAttributeProvider( new ShibbolethCompatiblePersistentIdGenerator(CASROX)); final AnonymousRegisteredServiceUsernameAttributeProvider provider2 = new AnonymousRegisteredServiceUsernameAttributeProvider( new ShibbolethCompatiblePersistentIdGenerator(CASROX)); assertEquals(provider, provider2); } @Test public void verifySerializeADefaultRegisteredServiceUsernameProviderToJson() throws IOException { final AnonymousRegisteredServiceUsernameAttributeProvider providerWritten = new AnonymousRegisteredServiceUsernameAttributeProvider( new ShibbolethCompatiblePersistentIdGenerator(CASROX)); MAPPER.writeValue(JSON_FILE, providerWritten); final RegisteredServiceUsernameAttributeProvider providerRead = MAPPER.readValue(JSON_FILE, AnonymousRegisteredServiceUsernameAttributeProvider.class); assertEquals(providerWritten, providerRead); } }