package org.jboss.as.domain.management.security.adduser;
import org.jboss.as.domain.management.security.PropertiesFileLoader;
import org.jboss.as.domain.management.security.UserPropertiesFileLoader;
import org.jboss.msc.service.StartException;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class PropertyPatternTestCase {
@Test
public void testPropertyPatternMatcher() throws IOException {
List<String> content = Arrays.asList(
"#Guillaume.Grossetie=developer",
"Aldo.Raine@Inglorious-Basterds.com=sergent,2division",
"# Comment",
"",
"#",
"#Omar.Ulmer=soldier"
);
List<String> keys = new ArrayList<String>();
List<String> values = new ArrayList<String>();
Pattern propertyPattern = PropertiesFileLoader.PROPERTY_PATTERN;
for (String line : content) {
Matcher matcher = propertyPattern.matcher(line.trim());
if (matcher.matches()) {
keys.add(matcher.group(1));
values.add(matcher.group(2));
}
}
assertEquals(3, keys.size());
assertEquals("Guillaume.Grossetie", keys.get(0));
assertEquals("Aldo.Raine@Inglorious-Basterds.com", keys.get(1));
assertEquals("Omar.Ulmer", keys.get(2));
assertEquals(3, values.size());
assertEquals("developer", values.get(0));
assertEquals("sergent,2division", values.get(1));
assertEquals("soldier", values.get(2));
}
@Test
public void testLoadEnabledDisabledUsers() throws IOException, StartException {
File usersPropertyFile = File.createTempFile("User", null);
usersPropertyFile.deleteOnExit();
List<String> content = Arrays.asList(
"#Guillaume.Grossetie=abc123",
"Aldo.Raine@Inglorious-Basterds.com=def456",
"# Comment",
"",
"#",
"#Omar.Ulmer=ghi789"
);
PrintWriter writer = new PrintWriter(usersPropertyFile, "UTF-8");
try {
for (String line : content) {
writer.println(line);
}
} finally {
writer.close();
}
UserPropertiesFileLoader propertiesLoad = new UserPropertiesFileLoader(usersPropertyFile.getAbsolutePath(), null);
propertiesLoad.start(null);
assertEquals(1, propertiesLoad.getEnabledUserNames().size());
assertEquals(2, propertiesLoad.getDisabledUserNames().size());
assertEquals(3, propertiesLoad.getUserNames().size());
assertTrue(propertiesLoad.getEnabledUserNames().contains("Aldo.Raine@Inglorious-Basterds.com"));
assertTrue(propertiesLoad.getDisabledUserNames().contains("Guillaume.Grossetie"));
propertiesLoad.stop(null);
}
}