コード例 #1
0
        public void CanResolveMessage()
        {
            var loader = new TileLoader();
            var mobiles = loader.Load(_level, MobilesMap.TileBuilder);
            var messageHandler = new MessageHandler(mobiles, null);

            var player = mobiles.WithName("player");

            var previousPlayerLocation = player.Location;

            var message = new Message{
                Name = "player",
                Type = "movement",
                From = player.Location.ToString(),
                To = new Point(player.Location.X - 1, player.Location.Y).ToString()
            };

            messageHandler.Resolve(message);

            Assert.AreNotEqual(previousPlayerLocation,player.Location);
            Assert.AreEqual(previousPlayerLocation.X - 1, player.Location.X);

            messageHandler.Resolve(message.Invert());
            Assert.AreEqual(previousPlayerLocation, player.Location);
        }