#3851: Remove output from tests and "base" from dialog json

This commit is contained in:
md_5 2025-06-22 09:44:38 +10:00
parent bccce74c3c
commit 5e59b6dc85
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11
2 changed files with 18 additions and 5 deletions

View File

@ -121,6 +121,7 @@ public class DialogSerializer implements JsonDeserializer<Dialog>, JsonSerialize
JsonObject base = (JsonObject) context.serialize( src.getBase() );
object.asMap().putAll( base.asMap() );
object.remove( "base" );
return object;
} finally

View File

@ -1,5 +1,6 @@
package net.md_5.bungee.dialog;
import static org.junit.jupiter.api.Assertions.*;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.dialog.Dialog;
@ -11,15 +12,26 @@ import org.junit.jupiter.api.Test;
public class SimpleTest
{
public static void testDissembleReassemble(Dialog notice)
{
String json = VersionedComponentSerializer.getDefault().getDialogSerializer().toString( notice );
Dialog parsed = VersionedComponentSerializer.getDefault().getDialogSerializer().deserialize( json );
assertEquals( notice, parsed );
}
@Test
public void testNotice()
public void testSimple()
{
String json = "{type:\"minecraft:notice\",title:\"Hello\"}";
Dialog deserialized = VersionedComponentSerializer.getDefault().getDialogSerializer().deserialize( json );
System.err.println( deserialized );
String serialized = VersionedComponentSerializer.getDefault().getDialogSerializer().toString( deserialized );
Dialog notice = new NoticeDialog( new DialogBase( new ComponentBuilder( "Hello" ).color( ChatColor.RED ).build() ) );
String newJson = VersionedComponentSerializer.getDefault().getDialogSerializer().toString( notice );
System.err.println( newJson );
assertEquals( "{\"type\":\"minecraft:notice\",\"title\":{\"text\":\"Hello\"}}", serialized );
}
@Test
public void testNotice()
{
testDissembleReassemble( new NoticeDialog( new DialogBase( new ComponentBuilder( "Hello" ).color( ChatColor.RED ).build() ) ) );
}
}