9
0
mirror of https://github.com/WiIIiam278/HuskSync.git synced 2025-12-27 10:39:11 +00:00

Fix tests, create DummySettings

This commit is contained in:
William
2022-08-08 19:44:12 +01:00
parent 2f700b2d93
commit 593c88c8ba
5 changed files with 34 additions and 13 deletions

View File

@@ -4,10 +4,7 @@ import dev.dejvokep.boostedyaml.YamlDocument;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.*;
/**
* Settings used for the plugin, as read from the config file
@@ -17,7 +14,7 @@ public class Settings {
/**
* Map of {@link ConfigOption}s read from the config file
*/
private final HashMap<ConfigOption, Object> configOptions;
private final Map<ConfigOption, Object> configOptions;
// Load the settings from the document
private Settings(@NotNull YamlDocument config) {
@@ -33,6 +30,11 @@ public class Settings {
}));
}
// Default constructor for empty settings
protected Settings(@NotNull Map<ConfigOption, Object> configOptions) {
this.configOptions = configOptions;
}
/**
* Get the value of the specified {@link ConfigOption}
*

View File

@@ -0,0 +1,17 @@
package net.william278.husksync.config;
import org.jetbrains.annotations.NotNull;
import java.util.Map;
public class DummySettings extends Settings {
private DummySettings(@NotNull Map<ConfigOption, Object> settings) {
super(settings);
}
public static DummySettings get() {
return new DummySettings(Map.of(
ConfigOption.SYNCHRONIZATION_SAVE_DEAD_PLAYER_INVENTORIES, true
));
}
}

View File

@@ -1,21 +1,17 @@
package net.william278.husksync.data;
import net.william278.husksync.config.DummySettings;
import net.william278.husksync.logger.DummyLogger;
import net.william278.husksync.player.DummyPlayer;
import net.william278.husksync.player.OnlineUser;
import net.william278.husksync.player.User;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import static java.util.Map.*;
/**
* Tests for the data system {@link DataAdapter}
*/
@@ -25,7 +21,7 @@ public class DataAdaptionTests {
public void testJsonDataAdapter() {
final OnlineUser dummyUser = DummyPlayer.create();
final AtomicBoolean isEquals = new AtomicBoolean(false);
dummyUser.getUserData(new DummyLogger()).join().ifPresent(dummyUserData -> {
dummyUser.getUserData(new DummyLogger(), DummySettings.get()).join().ifPresent(dummyUserData -> {
final DataAdapter dataAdapter = new JsonDataAdapter();
final byte[] data = dataAdapter.toBytes(dummyUserData);
final UserData deserializedUserData = dataAdapter.fromBytes(data);
@@ -53,7 +49,7 @@ public class DataAdaptionTests {
final OnlineUser dummyUser = DummyPlayer.create();
final String expectedJson = "{\"status\":{\"health\":20.0,\"max_health\":20.0,\"health_scale\":0.0,\"hunger\":20,\"saturation\":5.0,\"saturation_exhaustion\":5.0,\"selected_item_slot\":1,\"total_experience\":100,\"experience_level\":1,\"experience_progress\":1.0,\"game_mode\":\"SURVIVAL\",\"is_flying\":false},\"inventory\":{\"serialized_items\":\"\"},\"ender_chest\":{\"serialized_items\":\"\"},\"potion_effects\":{\"serialized_potion_effects\":\"\"},\"advancements\":[],\"statistics\":{\"untyped_statistics\":{},\"block_statistics\":{},\"item_statistics\":{},\"entity_statistics\":{}},\"location\":{\"world_name\":\"dummy_world\",\"world_uuid\":\"00000000-0000-0000-0000-000000000000\",\"world_environment\":\"NORMAL\",\"x\":0.0,\"y\":64.0,\"z\":0.0,\"yaw\":90.0,\"pitch\":180.0},\"persistent_data_container\":{\"persistent_data_map\":{}},\"minecraft_version\":\"1.19-beta123456\",\"format_version\":2}";
AtomicReference<String> json = new AtomicReference<>();
dummyUser.getUserData(new DummyLogger()).join().ifPresent(dummyUserData -> {
dummyUser.getUserData(new DummyLogger(), DummySettings.get()).join().ifPresent(dummyUserData -> {
final DataAdapter dataAdapter = new JsonDataAdapter();
final byte[] data = dataAdapter.toBytes(dummyUserData);
json.set(new String(data, StandardCharsets.UTF_8));
@@ -65,7 +61,7 @@ public class DataAdaptionTests {
public void testCompressedDataAdapter() {
final OnlineUser dummyUser = DummyPlayer.create();
AtomicBoolean isEquals = new AtomicBoolean(false);
dummyUser.getUserData(new DummyLogger()).join().ifPresent(dummyUserData -> {
dummyUser.getUserData(new DummyLogger(), DummySettings.get()).join().ifPresent(dummyUserData -> {
final DataAdapter dataAdapter = new CompressedDataAdapter();
final byte[] data = dataAdapter.toBytes(dummyUserData);
final UserData deserializedUserData = dataAdapter.fromBytes(data);

View File

@@ -155,4 +155,9 @@ public class DummyPlayer extends OnlineUser {
// do nothing
}
@Override
public boolean isDead() {
return false;
}
}