public void Visit_PutActionWithCardSetType_LogsNoError()
        {
            // Arrange
            PutActionNode putActionNode = new PutActionNode(DummySrcPos);

            putActionNode.Source = DeckReferenceNode;
            putActionNode.Target = DeckReferenceNode;

            // Act
            Checker.Visit(putActionNode);

            // Assert
            Assert.IsTrue(ErrorLogger.Errors.Count == 0);
        }
        public void Visit_PutActionWithNonCardSetType_LogsExpectedTypeError()
        {
            // Arrange
            PutActionNode putActionNode = new PutActionNode(DummySrcPos);

            putActionNode.Source = PlayerReferenceNode;
            putActionNode.Target = DeckReferenceNode;

            // Act
            Checker.Visit(putActionNode);

            // Assert
            Assert.IsTrue(ErrorLogger.Errors.Count == 1 && ErrorLogger.Errors.First() is ExpectedTypeError);
        }
Exemple #3
0
        public void Visit_PutActionNode_EmitsCorrectCode()
        {
            // Arrange
            PutActionNode putActionNode = new PutActionNode(DummySrcPos);

            putActionNode.Source = HandReferenceNode;
            putActionNode.Target = DeckReferenceNode;

            StringBuilder builder = new StringBuilder();

            builder.Append("deck.AddRange(hand);\n");
            builder.Append("hand.Clear();\n");

            string expectedResult = builder.ToString();

            // Act
            string actualResult = CodeGenerator.Visit(putActionNode);

            // Assert
            Assert.AreEqual(expectedResult, actualResult);
        }