Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class HelpMessagesService {
private final HelpMessagesFileHandler helpMessagesFileHandler;

@Inject
HelpMessagesService(HelpMessagesFileHandler helpMessagesFileHandler) {
public HelpMessagesService(HelpMessagesFileHandler helpMessagesFileHandler) {
this.helpMessagesFileHandler = helpMessagesFileHandler;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import org.bukkit.configuration.file.YamlConfiguration;

import javax.annotation.PostConstruct;
import javax.inject.Inject;
import java.io.File;
import java.util.concurrent.ConcurrentHashMap;

Expand All @@ -27,19 +26,17 @@ public abstract class AbstractMessageFileHandler implements Reloadable {

private final ConsoleLogger logger = ConsoleLoggerFactory.get(AbstractMessageFileHandler.class);

@DataFolder
@Inject
private File dataFolder;

@Inject
private Settings settings;
private final File dataFolder;
private final Settings settings;

private String filename;
private FileConfiguration configuration;
private final String defaultFile;
private final ConcurrentHashMap<String, FileConfiguration> languageCache = new ConcurrentHashMap<>();

protected AbstractMessageFileHandler() {
protected AbstractMessageFileHandler(@DataFolder File dataFolder, Settings settings) {
this.dataFolder = dataFolder;
this.settings = settings;
this.defaultFile = createFilePath(DEFAULT_LANGUAGE);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package fr.xephi.authme.message;

import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.initialization.DataFolder;
import fr.xephi.authme.output.ConsoleLoggerFactory;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.util.FileUtils;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;

import javax.inject.Inject;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;

Expand All @@ -21,8 +24,9 @@ public class HelpMessagesFileHandler extends AbstractMessageFileHandler {

private FileConfiguration defaultConfiguration;

@Inject // Trigger injection in the superclass
HelpMessagesFileHandler() {
@Inject
public HelpMessagesFileHandler(@DataFolder File dataFolder, Settings settings) {
super(dataFolder, settings);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package fr.xephi.authme.message;

import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.initialization.DataFolder;
import fr.xephi.authme.output.ConsoleLoggerFactory;
import fr.xephi.authme.message.updater.MessageUpdater;
import fr.xephi.authme.settings.Settings;

import javax.inject.Inject;

import java.io.File;

import static fr.xephi.authme.message.MessagePathHelper.DEFAULT_LANGUAGE;

/**
Expand All @@ -15,10 +19,12 @@ public class MessagesFileHandler extends AbstractMessageFileHandler {

private final ConsoleLogger logger = ConsoleLoggerFactory.get(MessagesFileHandler.class);

@Inject
private MessageUpdater messageUpdater;
private final MessageUpdater messageUpdater;

MessagesFileHandler() {
@Inject
MessagesFileHandler(@DataFolder File dataFolder, Settings settings, MessageUpdater messageUpdater) {
super(dataFolder, settings);
this.messageUpdater = messageUpdater;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,19 @@
*/
public class HelpTranslationGenerator {

@Inject
private CommandInitializer commandInitializer;

@Inject
private HelpMessagesService helpMessagesService;
private final CommandInitializer commandInitializer;
private final HelpMessagesService helpMessagesService;
private final Settings settings;
private final File dataFolder;

@Inject
private Settings settings;

@DataFolder
@Inject
private File dataFolder;
HelpTranslationGenerator(CommandInitializer commandInitializer, HelpMessagesService helpMessagesService,
Settings settings, @DataFolder File dataFolder) {
this.commandInitializer = commandInitializer;
this.helpMessagesService = helpMessagesService;
this.settings = settings;
this.dataFolder = dataFolder;
}

/**
* Updates the help file to contain entries for all commands.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,12 @@ public boolean isUnrestricted(String name) {
* @return true if the player may join, false if the player does not satisfy the name restrictions
*/
public boolean fulfillsNameRestrictions(Player player) {
InetSocketAddress socketAddress = player.getAddress();
Collection<String> restrictions = restrictedNames.get(player.getName().toLowerCase(Locale.ROOT));
if (Utils.isCollectionEmpty(restrictions)) {
return true;
}

InetSocketAddress socketAddress = player.getAddress();
String ip = socketAddress.getAddress().getHostAddress();
String domain = getHostName(socketAddress);
return matchesRestrictions(restrictions, ip, domain);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package fr.xephi.authme;

import org.mockito.quality.Strictness;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.junit.jupiter.MockitoExtension;
import org.junit.jupiter.api.extension.ExtendWith;
import ch.jalu.configme.resource.PropertyReader;
import ch.jalu.configme.resource.PropertyResource;
import ch.jalu.injector.Injector;
Expand All @@ -17,6 +13,7 @@
import fr.xephi.authme.listener.LegacyPlayerLoginListener;
import fr.xephi.authme.listener.LegacyPlayerSpawnLocationListener;
import fr.xephi.authme.listener.PlayerListener;
import fr.xephi.authme.permission.PermissionsManager;
import fr.xephi.authme.platform.ChatAdapter;
import fr.xephi.authme.platform.CommandRegistrationAdapter;
import fr.xephi.authme.platform.DialogAdapter;
Expand All @@ -25,7 +22,6 @@
import fr.xephi.authme.platform.PlatformAdapter;
import fr.xephi.authme.platform.SchedulingAdapter;
import fr.xephi.authme.platform.TeleportAdapter;
import fr.xephi.authme.permission.PermissionsManager;
import fr.xephi.authme.process.Management;
import fr.xephi.authme.process.login.ProcessSyncPlayerLogin;
import fr.xephi.authme.security.PasswordSecurity;
Expand All @@ -43,22 +39,20 @@
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import fr.xephi.authme.TempFolder;
import org.mockito.ArgumentCaptor;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.io.TempDir;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.logging.Logger;

import static fr.xephi.authme.settings.properties.AuthMeSettingsRetriever.buildConfigurationData;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.nullValue;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
Expand All @@ -68,8 +62,7 @@
* with the {@link Injector}.
*/
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.WARN)
public class AuthMeInitializationTest {
class AuthMeInitializationTest {

@Mock
private Server server;
Expand All @@ -78,12 +71,12 @@ public class AuthMeInitializationTest {
private PluginManager pluginManager;

private AuthMe authMe;
private File dataFolder;
public TempFolder temporaryFolder = new TempFolder();

@TempDir
File dataFolder;

@BeforeEach
public void initAuthMe() throws IOException {
dataFolder = temporaryFolder.newFolder();
void initAuthMe() throws IOException {
File settingsFile = new File(dataFolder, "config.yml");
given(server.getLogger()).willReturn(Logger.getAnonymousLogger());
JavaPluginLoader pluginLoader = new JavaPluginLoader(server);
Expand All @@ -101,19 +94,19 @@ public void initAuthMe() throws IOException {
}

@Test
public void shouldInitializeAllServices() {
void shouldInitializeAllServices() {
// given
PropertyReader reader = mock(PropertyReader.class);
PropertyResource resource = mock(PropertyResource.class);
given(resource.createReader()).willReturn(reader);
Settings settings = new Settings(dataFolder, resource, null, buildConfigurationData());

given(server.getPluginManager()).willReturn(pluginManager);
TestHelper.setupLogger();

Injector injector = new InjectorBuilder()
.addDefaultHandlers("fr.xephi.authme")
.create();
given(server.getPluginManager()).willReturn(pluginManager);
injector.provide(DataFolder.class, dataFolder);
injector.register(Server.class, server);
injector.register(PluginManager.class, pluginManager);
Expand Down Expand Up @@ -152,7 +145,7 @@ public void shouldInitializeAllServices() {
}

@Test
public void shouldRegisterPlatformListenersFromAdapter() {
void shouldRegisterPlatformListenersFromAdapter() {
// given
Injector injector = mock(Injector.class);
PlatformAdapter platformAdapter = mock(PlatformAdapter.class);
Expand Down Expand Up @@ -180,7 +173,7 @@ public void shouldRegisterPlatformListenersFromAdapter() {
}

@Test
public void shouldHandlePrematureShutdownGracefully() {
void shouldHandlePrematureShutdownGracefully() {
// given
BukkitScheduler scheduler = mock(BukkitScheduler.class);
given(server.getScheduler()).willReturn(scheduler);
Expand All @@ -195,5 +188,3 @@ public void shouldHandlePrematureShutdownGracefully() {
verify(scheduler).getActiveWorkers(); // via TaskCloser
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import fr.xephi.authme.data.captcha.CaptchaCodeStorage;
import fr.xephi.authme.command.PlayerCommand;
import fr.xephi.authme.data.captcha.CaptchaCodeStorage;
import fr.xephi.authme.datasource.AbstractSqlDataSource;
import fr.xephi.authme.datasource.Columns;
import fr.xephi.authme.datasource.columnshandler.DataSourceColumn;
Expand All @@ -14,7 +14,6 @@
import fr.xephi.authme.security.crypts.AbstractPbkdf2;
import fr.xephi.authme.initialization.HasCleanup;
import fr.xephi.authme.process.register.executors.RegistrationMethod;

import fr.xephi.authme.util.expiring.ExpiringMap;
import fr.xephi.authme.util.expiring.ExpiringSet;
import fr.xephi.authme.util.expiring.TimedCounter;
Expand All @@ -34,14 +33,14 @@
import java.util.Set;
import java.util.stream.Collectors;

import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.jupiter.api.Assertions.fail;

/**
* Contains consistency tests across all AuthMe classes.
*/
public class ClassesConsistencyTest {
class ClassesConsistencyTest {

/** Contains all production classes. */
private static final List<Class<?>> ALL_CLASSES =
Expand Down Expand Up @@ -74,7 +73,7 @@ int.class, long.class, float.class, String.class, File.class, Enum.class, collec
* Checks that there aren't two classes with the same name; this is confusing and should be avoided.
*/
@Test
public void shouldNotHaveSameName() {
void shouldNotHaveSameName() {
// given
Set<String> names = new HashSet<>();

Expand All @@ -90,7 +89,7 @@ public void shouldNotHaveSameName() {
* Checks that fields of classes are either private or static final fields of an immutable type.
*/
@Test
public void shouldHaveNonPrivateConstantsOnly() {
void shouldHaveNonPrivateConstantsOnly() {
// given / when
Set<String> invalidFields = ALL_CLASSES.stream()
.filter(clz -> !CLASSES_EXCLUDED_FROM_VISIBILITY_TEST.contains(clz))
Expand Down Expand Up @@ -123,7 +122,7 @@ private static boolean hasIllegalFieldVisibility(Field field) {
Object value = ReflectionTestUtils.getFieldValue(field, null);
valueType = value.getClass();
} else {
valueType = field.getType();
valueType = field.getType();
}

// Field is static, final, and not private -> check that it is immutable type
Expand All @@ -148,7 +147,7 @@ private static String formatField(Field field) {
* interface to regularly clean up expired data.
*/
@Test
public void shouldImplementHasCleanup() {
void shouldImplementHasCleanup() {
// given / when / then
for (Class<?> clazz : ALL_CLASSES) {
if (hasExpiringCollectionAsField(clazz) && !EXPIRING_STRUCTURES.contains(clazz)) {
Expand All @@ -174,4 +173,3 @@ private static Class<?> collectionsUnmodifiableList() {
return Collections.unmodifiableList(new ArrayList<>()).getClass();
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@
import java.io.File;
import java.util.List;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.fail;

/**
* Consistency test for the CodeClimate configuration file.
*/
public class CodeClimateConfigTest {
class CodeClimateConfigTest {

private static final String CONFIG_FILE = "../.codeclimate.yml";

@Test
public void shouldHaveExistingClassesInExclusions() {
void shouldHaveExistingClassesInExclusions() {
// given / when
FileConfiguration configuration = YamlConfiguration.loadConfiguration(new File(CONFIG_FILE));
List<String> excludePaths = configuration.getStringList("exclude_patterns");
Expand All @@ -42,4 +42,3 @@ private static void removeTestsExclusionOrThrow(List<String> excludePaths) {
wasRemoved, equalTo(true));
}
}

Loading
Loading