From 4e2924407645b04c30d4a2823a1d9d0983c2c790 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 2 Mar 2024 15:16:27 -0500 Subject: 24w09a --- .../ItemStackComponentizationFixerTest.java | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/test/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixerTest.java (limited to 'src/test/java/de/hysky/skyblocker/utils/datafixer') diff --git a/src/test/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixerTest.java b/src/test/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixerTest.java new file mode 100644 index 00000000..11951c44 --- /dev/null +++ b/src/test/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixerTest.java @@ -0,0 +1,47 @@ +package de.hysky.skyblocker.utils.datafixer; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.mojang.serialization.JsonOps; + +import net.minecraft.Bootstrap; +import net.minecraft.SharedConstants; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.StringNbtReader; + +public class ItemStackComponentizationFixerTest { + private final NbtCompound NBT = convertToNbt("{id:\"minecraft:diamond_sword\",Count:1,tag:{ExtraAttributes:{id:\"TEST\"}}}"); + private final Gson GSON = new Gson(); + + @BeforeAll + public static void setup() { + SharedConstants.createGameVersion(); + Bootstrap.initialize(); + } + + @Test + void testNbtConversion() { + Assertions.assertNotEquals(NBT, new NbtCompound()); + } + + @Test + void testDataFixer() { + ItemStack fixedStack = ItemStackComponentizationFixer.fixUpItem(NBT); + JsonElement stackJson = ItemStack.CODEC.encodeStart(JsonOps.INSTANCE, fixedStack).result().orElseThrow(); + + Assertions.assertEquals("{\"id\":\"minecraft:diamond_sword\",\"components\":{\"minecraft:custom_data\":{\"ExtraAttributes\":{\"id\":\"TEST\"}}}}", GSON.toJson(stackJson)); + } + + private static NbtCompound convertToNbt(String nbt) { + try { + return StringNbtReader.parse(nbt); + } catch (Exception e) { + return new NbtCompound(); + } + } +} -- cgit