using System; using System.IO; using NUnit.Framework; using Robust.Server.Reflection; using Robust.Shared.Configuration; using Robust.Shared.ContentPack; using Robust.Shared.GameObjects; using Robust.Shared.IoC; using Robust.Shared.Log; using Robust.Shared.Map; using Robust.Shared.Network; using Robust.Shared.Reflection; using Robust.Shared.Serialization; using Robust.Shared.Timing; namespace Robust.UnitTesting.Shared.GameObjects { [TestFixture, Serializable] class EntityState_Tests { /// /// Used to measure the size of s in bytes. This is not actually a test, /// but a useful benchmark tool, so i'm leaving it here. /// [Test] public void ComponentChangedSerialized() { var container = new DependencyCollection(); container.Register(); container.Register(); container.Register(); container.Register(); container.Register(); container.Register(); container.Register(); container.Register(); container.Register(); container.BuildGraph(); var cfg = container.Resolve(); cfg.Initialize(true); cfg.LoadCVarsFromAssembly(typeof(IConfigurationManager).Assembly); container.Resolve().LoadAssemblies(AppDomain.CurrentDomain.GetAssemblyByName("Robust.Shared")); IoCManager.InitThread(container, replaceExisting: true); cfg.LoadCVarsFromAssembly(typeof(IConfigurationManager).Assembly); // Robust.Shared container.Resolve().Initialize(true); var serializer = container.Resolve(); serializer.Initialize(); IoCManager.Resolve().LockStrings(); byte[] array; using(var stream = new MemoryStream()) { var payload = new EntityState( new EntityUid(512), new [] { new ComponentChange(0, true, false, new MapGridComponentState(new GridId(0))) }); serializer.Serialize(stream, payload); array = stream.ToArray(); } IoCManager.Clear(); Assert.Pass($"Size in Bytes: {array.Length.ToString()}"); } } }