package com.github.marschall.memoryfilesystem;
import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.nio.file.attribute.UserPrincipal;
import java.nio.file.attribute.UserPrincipalLookupService;
import java.nio.file.attribute.UserPrincipalNotFoundException;
import java.util.List;
import java.util.Locale;
import org.junit.Test;
public class MemoryUserPrincipalLookupServiceTest {
@Test
public void identiy() throws IOException {
List<String> users = singletonList("user");
List<String> groups = singletonList("group");
StringTransformer transformer = StringTransformers.IDENTIY;
UserPrincipalLookupService lookupService = new MemoryUserPrincipalLookupService(users, groups, transformer,
new ClosedFileSystemChecker());
UserPrincipal user = lookupService.lookupPrincipalByName("user");
assertEquals("user", user.getName());
assertEquals(user,lookupService.lookupPrincipalByName("user"));
try {
lookupService.lookupPrincipalByName("USER");
fail("lookup should fail");
} catch (UserPrincipalNotFoundException e) {
assertEquals("USER", e.getName());
}
try {
lookupService.lookupPrincipalByName("group");
fail("lookup should fail");
} catch (UserPrincipalNotFoundException e) {
assertEquals("group", e.getName());
}
UserPrincipal group = lookupService.lookupPrincipalByGroupName("group");
assertEquals("group", group.getName());
assertEquals(group,lookupService.lookupPrincipalByGroupName("group"));
try {
lookupService.lookupPrincipalByGroupName("GROUP");
fail("lookup should fail");
} catch (UserPrincipalNotFoundException e) {
assertEquals("GROUP", e.getName());
}
try {
lookupService.lookupPrincipalByGroupName("user");
fail("lookup should fail");
} catch (UserPrincipalNotFoundException e) {
assertEquals("user", e.getName());
}
}
@Test
public void caseInsenstive() throws IOException {
List<String> users = singletonList("usEr");
List<String> groups = singletonList("grOup");
StringTransformer transformer = StringTransformers.caseInsensitive(Locale.US);
UserPrincipalLookupService lookupService = new MemoryUserPrincipalLookupService(users, groups, transformer,
new ClosedFileSystemChecker());
UserPrincipal user = lookupService.lookupPrincipalByName("user");
assertEquals("usEr", user.getName());
assertEquals(user,lookupService.lookupPrincipalByName("USER"));
try {
lookupService.lookupPrincipalByName("group");
fail("lookup should fail");
} catch (UserPrincipalNotFoundException e) {
assertEquals("group", e.getName());
}
UserPrincipal group = lookupService.lookupPrincipalByGroupName("group");
assertEquals("grOup", group.getName());
assertEquals(group,lookupService.lookupPrincipalByGroupName("GROUP"));
try {
lookupService.lookupPrincipalByGroupName("user");
fail("lookup should fail");
} catch (UserPrincipalNotFoundException e) {
assertEquals("user", e.getName());
}
}
}