Пример #1
0
 public void TestStringConversion()
 {
     Assert.AreEqual(PieceType.King, PieceTypeMethods.Parse("king"));
     Assert.AreEqual(PieceType.King, PieceTypeMethods.Parse("KING"));
     Assert.AreEqual(PieceType.Queen, PieceTypeMethods.Parse("queen"));
     Assert.AreEqual(PieceType.Queen, PieceTypeMethods.Parse("QUEEN"));
     Assert.AreEqual(PieceType.Bishop, PieceTypeMethods.Parse("bishop"));
     Assert.AreEqual(PieceType.Bishop, PieceTypeMethods.Parse("BISHOP"));
     Assert.AreEqual(PieceType.Knight, PieceTypeMethods.Parse("knight"));
     Assert.AreEqual(PieceType.Knight, PieceTypeMethods.Parse("KNIGHT"));
     Assert.AreEqual(PieceType.Rook, PieceTypeMethods.Parse("rook"));
     Assert.AreEqual(PieceType.Rook, PieceTypeMethods.Parse("ROOK"));
     Assert.AreEqual(PieceType.Rook, PieceTypeMethods.Parse("castle"));
     Assert.AreEqual(PieceType.Rook, PieceTypeMethods.Parse("CASTLE"));
     Assert.AreEqual(PieceType.Pawn, PieceTypeMethods.Parse("pawn"));
     Assert.AreEqual(PieceType.Pawn, PieceTypeMethods.Parse("PAWN"));
 }
Пример #2
0
        public MoveCommand(IReadOnlyDictionary <string, IReadOnlyList <string> > commandParams) : this()
        {
            IReadOnlyList <string> paramsList;

            if (Type == CommandType.Move)
            {
                if (commandParams.TryGetValue("piece", out paramsList))
                {
                    Piece = PieceTypeMethods.Parse(paramsList.FirstOrDefault());
                }
                var destLetter = commandParams["destinationLetter"].FirstOrDefault();
                var destNumber = commandParams["destinationNumber"].FirstOrDefault();
                Destination = new Position(destLetter, destNumber);
                var destUsedNato = commandParams["destinationUsedNato"].FirstOrDefault();
                DestinationUsedNatoAlphabet = destUsedNato.Equals("true", StringComparison.OrdinalIgnoreCase);
            }

            if (Type == CommandType.Move || Type == CommandType.ConfirmPiece)
            {
                string posLetter   = null;
                string posNumber   = null;
                string posUsedNato = null;
                if (commandParams.TryGetValue("positionLetter", out paramsList))
                {
                    posLetter = paramsList.FirstOrDefault();
                }
                if (commandParams.TryGetValue("positionNumber", out paramsList))
                {
                    posNumber = paramsList.FirstOrDefault();
                }
                if (commandParams.TryGetValue("positionUsedNato", out paramsList))
                {
                    posUsedNato = paramsList.FirstOrDefault();
                }
                if (!String.IsNullOrWhiteSpace(posLetter) &&
                    !String.IsNullOrWhiteSpace(posNumber) &&
                    !String.IsNullOrWhiteSpace(posUsedNato))
                {
                    Position = new Position(posLetter, posNumber);
                    PositionUsedNatoAlphabet = posUsedNato.Equals("true", StringComparison.OrdinalIgnoreCase);
                }
            }
        }
Пример #3
0
        public ConfirmPieceCommand(IReadOnlyDictionary <string, IReadOnlyList <string> > commandParams) : this()
        {
            IReadOnlyList <string> paramsList;

            if (commandParams.TryGetValue("piece", out paramsList))
            {
                Piece = PieceTypeMethods.Parse(paramsList.FirstOrDefault());
            }

            string posLetter   = null;
            string posNumber   = null;
            string posUsedNato = null;

            if (commandParams.TryGetValue("pieceLetter", out paramsList))
            {
                posLetter = paramsList.FirstOrDefault();
            }
            if (commandParams.TryGetValue("pieceNumber", out paramsList))
            {
                posNumber = paramsList.FirstOrDefault();
            }
            if (commandParams.TryGetValue("usedNato", out paramsList))
            {
                posUsedNato = paramsList.FirstOrDefault();
            }
            if (!String.IsNullOrWhiteSpace(posLetter) &&
                !String.IsNullOrWhiteSpace(posNumber) &&
                !String.IsNullOrWhiteSpace(posUsedNato))
            {
                Position = new Position(posLetter, posNumber);
                PositionUsedNatoAlphabet = posUsedNato.Equals("true", StringComparison.OrdinalIgnoreCase);
            }
            else
            {
                throw new ArgumentException($"Cannot create valid {nameof(ConfirmPieceCommand)} without a valid {nameof(Position)}");
            }
        }
Пример #4
0
 public void TestFailedStringConversion()
 {
     PieceTypeMethods.Parse("");
     PieceTypeMethods.Parse("test");
 }