public void Visit_ForAllWithSetParentType_LogsNoError()
        {
            // Arrange
            ForAllNode forAllNode = new ForAllNode(DummySrcPos);

            forAllNode.Block  = new BlockNode(DummySrcPos);
            forAllNode.Parent = SuitReferenceNode;
            forAllNode.Child  = new DeclarationNode(new CardValueTypeNode(DummySrcPos), new IdentifierNode("child", DummySrcPos), DummySrcPos);

            // Act
            Checker.Visit(forAllNode);

            // Assert
            Assert.IsTrue(ErrorLogger.Errors.Count == 0);
        }
Esempio n. 2
0
        public void Visit_ForAllNode_EmitsCorrectCode()
        {
            // Arrange
            ForAllNode forAllNode = new ForAllNode(DummySrcPos);

            forAllNode.Block  = new BlockNode(DummySrcPos);
            forAllNode.Parent = SuitReferenceNode;
            forAllNode.Child  = new DeclarationNode(new CardValueTypeNode(DummySrcPos), new IdentifierNode("child", DummySrcPos), DummySrcPos);

            StringBuilder builder = new StringBuilder();

            builder.Append("for(int i_1 = 0; i_1 < suit.Count; i_1++)\n");
            builder.Append("{\n var child = suit[i_1];\n");
            builder.Append("{\n}\n}");

            string expectedResult = builder.ToString();

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

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