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 PlaceArmiesResponseTest()
        {
            int playerId   = 1;
            var placements = new List <(int RegionId, int Army)>()
            {
                (1, 2),
                (2, 5)
            };

            PlaceArmiesResponseToken responseToken = new PlaceArmiesResponseToken(playerId, placements);

            string translatedResponse = translator.Translate(responseToken);

            Assert.AreEqual("player1 place_armies 1 2, player1 place_armies 2 5", translatedResponse);
        }
示例#3
0
        private string TranslatePlaceArmiesResponse(PlaceArmiesResponseToken token)
        {
            if (token.Changes == null || token.Changes.Count == 0)
            {
                return(NoMoves);
            }

            StringBuilder sb = new StringBuilder();

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

            foreach (var deployment in token.Changes)
            {
                sb.Append($"{playerName} {PlaceArmies} {deployment.RegionId} {deployment.Army}, ");
            }

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

            return(sb.ToString());
        }