2022-04-10 15:49:33 +02:00
|
|
|
package net.minestom.server.tag;
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
2022-10-10 20:44:50 +02:00
|
|
|
import static net.minestom.testing.TestUtils.assertEqualsSNBT;
|
2022-04-10 15:49:33 +02:00
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
2022-04-14 16:26:57 +02:00
|
|
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
2022-04-10 15:49:33 +02:00
|
|
|
|
|
|
|
public class TagHandlerCopyTest {
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void copy() {
|
2022-04-25 07:26:26 +02:00
|
|
|
var handler = TagHandler.newHandler();
|
|
|
|
handler.setTag(Tag.String("key"), "test");
|
|
|
|
|
|
|
|
var copy = handler.copy();
|
|
|
|
assertEquals(handler.getTag(Tag.String("key")), copy.getTag(Tag.String("key")));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void copyCachePath() {
|
|
|
|
var tag = Tag.String("key").path("path");
|
|
|
|
var handler = TagHandler.newHandler();
|
|
|
|
handler.setTag(tag, "test");
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"path":{"key":"test"}}
|
|
|
|
""", handler.asCompound());
|
|
|
|
|
|
|
|
var copy = handler.copy();
|
|
|
|
handler.setTag(tag, "test2");
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"path":{"key":"test2"}}
|
|
|
|
""", handler.asCompound());
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"path":{"key":"test"}}
|
|
|
|
""", copy.asCompound());
|
|
|
|
|
|
|
|
copy.setTag(tag, "test3");
|
|
|
|
assertEquals("test3", copy.getTag(tag));
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"path":{"key":"test3"}}
|
|
|
|
""", copy.asCompound());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void copyCache() {
|
|
|
|
var tag = Tag.String("key");
|
|
|
|
var handler = TagHandler.newHandler();
|
|
|
|
handler.setTag(tag, "test");
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"key":"test"}
|
|
|
|
""", handler.asCompound());
|
|
|
|
|
|
|
|
var copy = handler.copy();
|
|
|
|
handler.setTag(tag, "test2");
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"key":"test2"}
|
|
|
|
""", handler.asCompound());
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"key":"test"}
|
|
|
|
""", copy.asCompound());
|
2022-04-10 15:49:33 +02:00
|
|
|
|
2022-04-25 07:26:26 +02:00
|
|
|
copy.setTag(tag, "test3");
|
|
|
|
assertEquals("test3", copy.getTag(tag));
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"key":"test2"}
|
|
|
|
""", handler.asCompound());
|
|
|
|
assertEqualsSNBT("""
|
|
|
|
{"key":"test3"}
|
|
|
|
""", copy.asCompound());
|
2022-04-10 15:49:33 +02:00
|
|
|
}
|
2022-04-14 16:26:57 +02:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void copyRehashing() {
|
|
|
|
var handler = TagHandler.newHandler();
|
|
|
|
TagHandler handlerCopy;
|
|
|
|
for (int i = 0; i < 1000; i++) {
|
|
|
|
handlerCopy = handler.copy();
|
|
|
|
var tag = Tag.Integer("copyRehashing" + i);
|
|
|
|
handler.setTag(tag, i);
|
|
|
|
assertNull(handlerCopy.getTag(tag));
|
|
|
|
}
|
|
|
|
}
|
2022-04-10 15:49:33 +02:00
|
|
|
}
|