package org.apache.hadoop.fs.nfs.topology;
import static org.junit.Assert.assertEquals;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.LinkedList;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class TestUserGroupMapping {
static List<UserName> users;
static UserName user1, user2, user3, user4;
static List<GroupName> groups;
static GroupName group1, group2, group3, group4;
@BeforeClass
public static void setup() {
users = new LinkedList<>();
user1 = new UserName("user1", "101");
user2 = new UserName("user2", "102");
groups = new LinkedList<>();
group1 = new GroupName("group1", "201");
group2 = new GroupName("group2", "202");
users.add(user1);
users.add(user2);
groups.add(group1);
groups.add(group2);
}
@Test
public void testGenerateUserGroupMapping() throws Exception {
SimpleUserGroupAuthentication ug = new SimpleUserGroupAuthentication();
ug.createUserMap(users);
ug.createGroupMap(groups);
assertEquals(ug.getUserIdFromUserName("user1"), "101");
assertEquals(ug.getUserIdFromUserName("user2"), "102");
assertEquals(ug.getUserNameFromUserId("101"), "user1");
assertEquals(ug.getUserNameFromUserId("102"), "user2");
assertEquals(ug.getGroupIdFromGroupName("group1"), "201");
assertEquals(ug.getGroupIdFromGroupName("group2"), "202");
assertEquals(ug.getGroupNameFromGroupId("201"), "group1");
assertEquals(ug.getGroupNameFromGroupId("202"), "group2");
}
@Test
public void testGenerateFromFile() throws Exception {
SimpleUserGroupAuthentication.UserMapping UserMapping = new SimpleUserGroupAuthentication.UserMapping(users);
BufferedWriter writer = new BufferedWriter(new FileWriter("/tmp/user-mapping.json"));
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().setPrettyPrinting().create();
writer.append(gson.toJson(UserMapping));
writer.flush();
writer.close();
SimpleUserGroupAuthentication.GroupMapping GroupMapping = new SimpleUserGroupAuthentication.GroupMapping(groups);
writer = new BufferedWriter(new FileWriter("/tmp/group-mapping.json"));
writer.append(gson.toJson(GroupMapping));
writer.flush();
writer.close();
NamespaceOptions options = new NamespaceOptions();
options.setNfsUserConfigFile("/tmp/user-mapping.json");
options.setNfsGroupConfigFile("/tmp/group-mapping.json");
options.CreatUserGroupMapping();
assertEquals(options.getUserIdFromUserName("user1"), "101");
assertEquals(options.getUserIdFromUserName("user2"), "102");
assertEquals(options.getUserNameFromUserId("101"), "user1");
assertEquals(options.getUserNameFromUserId("102"), "user2");
assertEquals(options.getGroupIdFromGroupName("group1"), "201");
assertEquals(options.getGroupIdFromGroupName("group2"), "202");
assertEquals(options.getGroupNameFromGroupId("201"), "group1");
assertEquals(options.getGroupNameFromGroupId("202"), "group2");
}
}