Move new configuration packages and add test for PropertyMap

This commit is contained in:
ljacqu 2016-01-05 21:59:08 +01:00
parent cb07b3df3d
commit 204a564a9a
17 changed files with 114 additions and 61 deletions

View File

@ -1,12 +1,12 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.SettingsClass;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.custom.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.custom.domain.PropertyType.STRING;
import static fr.xephi.authme.settings.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.domain.PropertyType.STRING;
public class ConverterSettings implements SettingsClass {

View File

@ -1,13 +1,13 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.SettingsClass;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.custom.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.custom.domain.PropertyType.STRING;
import static fr.xephi.authme.settings.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.domain.PropertyType.STRING;
public class DatabaseSettings implements SettingsClass {

View File

@ -1,16 +1,16 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.SettingsClass;
import java.util.List;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.custom.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.custom.domain.PropertyType.INTEGER;
import static fr.xephi.authme.settings.custom.domain.PropertyType.STRING;
import static fr.xephi.authme.settings.custom.domain.PropertyType.STRING_LIST;
import static fr.xephi.authme.settings.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.domain.PropertyType.INTEGER;
import static fr.xephi.authme.settings.domain.PropertyType.STRING;
import static fr.xephi.authme.settings.domain.PropertyType.STRING_LIST;
public class EmailSettings implements SettingsClass {

View File

@ -1,11 +1,11 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.PropertyType;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.PropertyType;
import fr.xephi.authme.settings.domain.SettingsClass;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.Property.newProperty;
public class HooksSettings implements SettingsClass {

View File

@ -1,10 +1,10 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.custom.propertymap.PropertyMap;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.SettingsClass;
import fr.xephi.authme.settings.propertymap.PropertyMap;
import fr.xephi.authme.util.CollectionUtils;
import fr.xephi.authme.util.StringUtils;
import org.bukkit.configuration.file.YamlConfiguration;

View File

@ -1,15 +1,15 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.SettingsClass;
import java.util.List;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.custom.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.custom.domain.PropertyType.INTEGER;
import static fr.xephi.authme.settings.custom.domain.PropertyType.STRING_LIST;
import static fr.xephi.authme.settings.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.domain.PropertyType.INTEGER;
import static fr.xephi.authme.settings.domain.PropertyType.STRING_LIST;
public class ProtectionSettings implements SettingsClass {

View File

@ -1,13 +1,13 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.SettingsClass;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.custom.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.custom.domain.PropertyType.INTEGER;
import static fr.xephi.authme.settings.custom.domain.PropertyType.STRING;
import static fr.xephi.authme.settings.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.domain.PropertyType.INTEGER;
import static fr.xephi.authme.settings.domain.PropertyType.STRING;
public class PurgeSettings implements SettingsClass {

View File

@ -1,12 +1,12 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.settings.custom.domain.Comment;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.SettingsClass;
import fr.xephi.authme.settings.domain.Comment;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.SettingsClass;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.custom.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.custom.domain.PropertyType.INTEGER;
import static fr.xephi.authme.settings.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.PropertyType.BOOLEAN;
import static fr.xephi.authme.settings.domain.PropertyType.INTEGER;
public class SecuritySettings implements SettingsClass {

View File

@ -1,4 +1,4 @@
package fr.xephi.authme.settings.custom.domain;
package fr.xephi.authme.settings.domain;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@ -1,4 +1,4 @@
package fr.xephi.authme.settings.custom.domain;
package fr.xephi.authme.settings.domain;
import org.bukkit.configuration.file.YamlConfiguration;

View File

@ -1,4 +1,4 @@
package fr.xephi.authme.settings.custom.domain;
package fr.xephi.authme.settings.domain;
import org.bukkit.configuration.file.YamlConfiguration;

View File

@ -1,4 +1,4 @@
package fr.xephi.authme.settings.custom.domain;
package fr.xephi.authme.settings.domain;
/**
* Marker for classes that define {@link Property} fields.

View File

@ -1,4 +1,4 @@
package fr.xephi.authme.settings.custom.propertymap;
package fr.xephi.authme.settings.propertymap;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,6 +1,6 @@
package fr.xephi.authme.settings.custom.propertymap;
package fr.xephi.authme.settings.propertymap;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.domain.Property;
import java.util.Map;
import java.util.Set;

View File

@ -1,6 +1,6 @@
package fr.xephi.authme.settings.custom.propertymap;
package fr.xephi.authme.settings.propertymap;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.domain.Property;
import java.util.Comparator;

View File

@ -1,8 +1,8 @@
package fr.xephi.authme.settings.custom;
import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.settings.custom.domain.Property;
import fr.xephi.authme.settings.custom.domain.PropertyType;
import fr.xephi.authme.settings.domain.Property;
import fr.xephi.authme.settings.domain.PropertyType;
import org.bukkit.configuration.file.YamlConfiguration;
import org.junit.Test;
import org.mockito.invocation.InvocationOnMock;
@ -12,7 +12,7 @@ import java.io.File;
import java.net.URL;
import java.util.List;
import static fr.xephi.authme.settings.custom.domain.Property.newProperty;
import static fr.xephi.authme.settings.domain.Property.newProperty;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.equalTo;

View File

@ -0,0 +1,53 @@
package fr.xephi.authme.settings.propertymap;
import fr.xephi.authme.settings.domain.Property;
import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.hamcrest.Matchers.contains;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/**
* Test for {@link PropertyMap}.
*/
public class PropertyMapTest {
@Test
public void shouldKeepEntriesByInsertionAndGroup() {
// given
List<String> paths = Arrays.asList("japan", "indonesia.jakarta", "japan.tokyo", "china.shanghai", "egypt.cairo",
"china.shenzhen", "china", "indonesia.jakarta.tugu", "egypt", "japan.nagoya", "japan.tokyo.taito");
PropertyMap map = new PropertyMap();
// when
for (String path : paths) {
Property<?> property = createPropertyWithPath(path);
map.put(property, new String[0]);
}
// then
Set<Map.Entry<Property, String[]>> entrySet = map.entrySet();
List<String> resultPaths = new ArrayList<>(entrySet.size());
for (Map.Entry<Property, String[]> entry : entrySet) {
resultPaths.add(entry.getKey().getPath());
}
Assert.assertThat(resultPaths, contains("japan", "japan.tokyo", "japan.tokyo.taito", "japan.nagoya",
"indonesia.jakarta", "indonesia.jakarta.tugu", "china", "china.shanghai", "china.shenzhen",
"egypt", "egypt.cairo"));
}
private static Property<?> createPropertyWithPath(String path) {
Property<?> property = mock(Property.class);
when(property.getPath()).thenReturn(path);
return property;
}
}