Fix tests, create DummySettings

feat/data-edit-commands
William 3 years ago
parent 2f700b2d93
commit 593c88c8ba

@ -16,6 +16,7 @@ dependencies {
testImplementation 'org.xerial.snappy:snappy-java:1.1.8.4'
testImplementation 'com.github.plan-player-analytics:Plan:5.4.1690'
testCompileOnly 'dev.dejvokep:boosted-yaml:1.3'
testCompileOnly 'org.jetbrains:annotations:23.0.0'
}

@ -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}
*

@ -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
));
}
}

@ -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);

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

Loading…
Cancel
Save