public void NoMovesTest()
        {
            int playerId = 2;

            var    attackResponseToken      = new AttackResponseToken(playerId);
            string translatedAttackResponse = translator.Translate(attackResponseToken);

            Assert.AreEqual("No moves", translatedAttackResponse);

            var    placeArmiesToken      = new PlaceArmiesResponseToken(playerId, null);
            string translatedPlaceArmies = translator.Translate(placeArmiesToken);

            Assert.AreEqual("No moves", translatedPlaceArmies);
        }
        public void AttackTransferResponseTest()
        {
            int playerId = 1;
            var attacks  = new List <(int AttackingRegionId, int DefendingRegionId, int Army)>()
            {
                (1, 2, 3),
                (2, 3, 8)
            };

            var attackResponseToken = new AttackResponseToken(playerId, attacks);

            string translatedResponse = translator.Translate(attackResponseToken);

            Assert.AreEqual("player1 attack/transfer 1 2 3, player1 attack/transfer 2 3 8", translatedResponse);
        }
Пример #3
0
        private string TranslateAttackResponse(AttackResponseToken token)
        {
            if (token.Attacks == null || token.Attacks.Count == 0)
            {
                return(NoMoves);
            }

            if (!NamesIdsMappingDictionary.TryGetValue(token.PlayerId, out string playerName))
            {
                throw new ArgumentException($"Player with id {token.PlayerId} is not defined");
            }

            StringBuilder sb = new StringBuilder();

            foreach (var attack in token.Attacks)
            {
                sb.Append($"{playerName} {AttackOrTransfer} {attack.AttackingRegionId} {attack.DefendingRegionId} {attack.Army}, ");
            }

            // remove last comma and space
            sb.Remove(sb.Length - 2, 2);

            return(sb.ToString());
        }