using System.IO; using System.Text; using System.Threading.Tasks; using NUnit.Framework; using Robust.Shared.IoC; using Robust.Shared.Serialization; using Robust.Shared.Utility; namespace Robust.UnitTesting.Shared; [Parallelizable(ParallelScope.All)] internal sealed class TestRobustSerializerHash : RobustIntegrationTest { /// /// Test that the serializer hash on client and server matches. /// [Test] public async Task Test() { var server = StartServer(); var client = StartClient(); var manifestServerStream = new MemoryStream(); var manifestClientStream = new MemoryStream(); await server.WaitPost(() => { var serializer = (RobustSerializer) IoCManager.Resolve(); serializer.GetHashManifest(manifestServerStream, writeNewline: true); }); await client.WaitPost(() => { var serializer = (RobustSerializer) IoCManager.Resolve(); serializer.GetHashManifest(manifestClientStream, writeNewline: true); }); var manifestServer = Encoding.UTF8.GetString(manifestServerStream.AsSpan()); var manifestClient = Encoding.UTF8.GetString(manifestClientStream.AsSpan()); Assert.That(manifestServer, NUnit.Framework.Is.EqualTo(manifestClient)); } }