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); }
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()); }