Example #1
0
        public void TestSerializePositionInfo()
        {
            GameManager.Instance.CreateGame(new Player(), "test game");
            BaseUnit unit = new BaseUnit();

            unit.UnitClass = new UnitClass("Ship", GameConstants.UnitType.SurfaceShip);
            unit.UnitClass.TurnRangeDegrSec      = 10;
            unit.UnitClass.MaxAccelerationKphSec = 10;
            unit.UnitClass.MaxSpeedKph           = 40;
            unit.Position = new Position(60.0, 1.0, 0, 2);
            unit.Name     = "USS Neverdock";
            Position dest = new Position(61.0, 2.0);

            unit.MovementOrder.AddWaypoint(new Waypoint(dest));
            CommsMarshaller marshaller = new CommsMarshaller();
            PositionInfo    pos        = unit.GetPositionInfo();

            byte[] bytes1 = marshaller.SerializeObjectForSending(pos);
            marshaller.AddToReceiveBufferEnd(bytes1, bytes1.Length);
            IMarshallable obj1 = marshaller.DeSerializeNextObjectInReceiveBuffer();

            Assert.IsNotNull(obj1, "Should be 1 object in buffer.");
            PositionInfo posinfo = (PositionInfo)obj1;

            Assert.AreEqual(unit.Id, posinfo.UnitId, "Id should be the same");
            GameManager.Instance.TerminateGame();
        }