Exemple #1
0
        public void TestBoardSquare()
        {
            var original = new BoardSquare(BoardLocation.C3, new Piece(Side.Player2, 2, new ShapeOrientationCollection(new[] { new ShapeOrientation(Shape.Blades, Orientation.Original) }, false)));

            Assert.AreEqual(BoardLocation.C3, original.Position);
            Assert.AreEqual(BoardSquareContents.Piece, original.Contents);
            Assert.AreEqual(Side.Player2, original.Piece.Owner);
            Assert.AreEqual(2, original.Piece.StackLimit);
            Assert.AreEqual(1, original.Piece.Shapes.Count);
            Assert.AreEqual(Shape.Blades, original.Piece.Shapes[0].Shape);
            Assert.AreEqual(Orientation.Original, original.Piece.Shapes[0].Orientation);

            var clone = original.DeepClone();

            Assert.IsNotNull(clone);
            Assert.AreEqual(BoardLocation.C3, clone.Position);
            Assert.AreEqual(BoardSquareContents.Piece, clone.Contents);
            Assert.AreEqual(Side.Player2, clone.Piece.Owner);
            Assert.AreEqual(2, clone.Piece.StackLimit);
            Assert.AreEqual(1, clone.Piece.Shapes.Count);
            Assert.AreEqual(Shape.Blades, clone.Piece.Shapes[0].Shape);
            Assert.AreEqual(Orientation.Original, clone.Piece.Shapes[0].Orientation);

            original.Position = BoardLocation.B3;
            Assert.AreEqual(BoardLocation.B3, original.Position);
            Assert.AreEqual(BoardLocation.C3, clone.Position);

            original.Contents = BoardSquareContents.Blockade;
            Assert.AreEqual(BoardSquareContents.Blockade, original.Contents);
            Assert.IsNull(original.Piece);
            Assert.AreEqual(BoardSquareContents.Piece, clone.Contents);
            Assert.AreEqual(Side.Player2, clone.Piece.Owner);
            Assert.AreEqual(2, clone.Piece.StackLimit);
            Assert.AreEqual(1, clone.Piece.Shapes.Count);
            Assert.AreEqual(Shape.Blades, clone.Piece.Shapes[0].Shape);
            Assert.AreEqual(Orientation.Original, clone.Piece.Shapes[0].Orientation);
        }