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.services.persondir.util.CaseCanonicalizationMode;
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 DefaultRegisteredServiceUsernameProviderTests {
private static final File JSON_FILE = new File(FileUtils.getTempDirectoryPath(), "defaultRegisteredServiceUsernameProvider.json");
private static final ObjectMapper MAPPER = new ObjectMapper();
@Test
public void verifyRegServiceUsernameUpper() {
final DefaultRegisteredServiceUsernameProvider provider = new DefaultRegisteredServiceUsernameProvider();
provider.setCanonicalizationMode(CaseCanonicalizationMode.UPPER.name());
final Principal principal = mock(Principal.class);
when(principal.getId()).thenReturn("id");
final String id = provider.resolveUsername(principal, RegisteredServiceTestUtils.getService(),
RegisteredServiceTestUtils.getRegisteredService("usernameAttributeProviderService"));
assertEquals(id, principal.getId().toUpperCase());
}
@Test
public void verifyRegServiceUsername() {
final DefaultRegisteredServiceUsernameProvider provider = new DefaultRegisteredServiceUsernameProvider();
final Principal principal = mock(Principal.class);
when(principal.getId()).thenReturn("id");
final String id = provider.resolveUsername(principal, RegisteredServiceTestUtils.getService(),
RegisteredServiceTestUtils.getRegisteredService("id"));
assertEquals(id, principal.getId());
}
@Test
public void verifyEquality() {
final DefaultRegisteredServiceUsernameProvider provider =
new DefaultRegisteredServiceUsernameProvider();
final DefaultRegisteredServiceUsernameProvider provider2 =
new DefaultRegisteredServiceUsernameProvider();
assertEquals(provider, provider2);
}
@Test
public void verifySerializeADefaultRegisteredServiceUsernameProviderToJson() throws IOException {
final DefaultRegisteredServiceUsernameProvider providerWritten = new DefaultRegisteredServiceUsernameProvider();
MAPPER.writeValue(JSON_FILE, providerWritten);
final RegisteredServiceUsernameAttributeProvider providerRead = MAPPER.readValue(JSON_FILE, DefaultRegisteredServiceUsernameProvider.class);
assertEquals(providerWritten, providerRead);
}
}