Exemplo n.º 1
0
        public void XmlStatement_Nested()
        {
            // Arrange
            ExpectedStatement expInnerStmt = new ExpectedStatement();

            expInnerStmt.Keyword       = ReservedWords.Keywords.DataTypes.Int;
            expInnerStmt.Type          = StatementType.FileObjectDefinition;
            expInnerStmt.HasParameters = false;
            expInnerStmt.HasNested     = false;

            ExpectedStatement expOuterStmt = new ExpectedStatement();

            expOuterStmt.Keyword       = ReservedWords.Keywords.DataTypes.Struct;
            expOuterStmt.Type          = StatementType.FileObjectDefinition;
            expOuterStmt.HasParameters = false;
            expOuterStmt.HasNested     = true;
            expOuterStmt.Nested.Add(expInnerStmt);

            // <struct><int/></struct>
            string testInnerXml = BuildXmlElement(expInnerStmt.Keyword);
            string testOuterXml = BuildXmlElement(expOuterStmt.Keyword, testInnerXml);

            // Act
            XmlStatement testStmt = XmlStatement.Parse(XElement.Parse(testOuterXml));

            // Assert
            StatementAssertEqual(expOuterStmt, testStmt);
        }
Exemplo n.º 2
0
        public void XmlStatement_InnerText()
        {
            // Arrange
            string testXml = BuildXmlElement("int", "This is invalid.");

            // Act, Assert
            Assert.Throws <SyntaxException>(() => XmlStatement.Parse(XElement.Parse(testXml)));
        }
Exemplo n.º 3
0
            protected override void Initialize()
            {
                // Read metadata from root element attributes
                foreach (XAttribute attr in Document.Root.Attributes())
                {
                    _metadata[attr.Name.LocalName] = attr.Value;
                }

                // Parse XML data
                RootStatement = XmlStatement.Parse(Document.Root);
            }
Exemplo n.º 4
0
        public void XmlStatement_Directive()
        {
            // Arrange
            ExpectedStatement expStmt = new ExpectedStatement();

            expStmt.Keyword       = ReservedWords.Keywords.Directives.Typedef;
            expStmt.Type          = StatementType.Directive;
            expStmt.HasParameters = false;
            expStmt.HasNested     = false;

            string testXml = BuildXmlElement(expStmt.Keyword);

            // Act
            XmlStatement testStmt = XmlStatement.Parse(XElement.Parse(testXml));

            // Assert
            StatementAssertEqual(expStmt, testStmt);
        }
Exemplo n.º 5
0
        public void XmlStatement_FileObject()
        {
            // Arrange
            ExpectedStatement expStmt = new ExpectedStatement();

            expStmt.Keyword       = ReservedWords.Keywords.DataTypes.Int;
            expStmt.Type          = StatementType.FileObjectDefinition;
            expStmt.HasParameters = false;
            expStmt.HasNested     = false;

            string testXml = BuildXmlElement(expStmt.Keyword);

            // Act
            XmlStatement testStmt = XmlStatement.Parse(XElement.Parse(testXml));

            // Assert
            StatementAssertEqual(expStmt, testStmt);
        }
Exemplo n.º 6
0
        public void XmlStatement_WithParameters()
        {
            // Arrange
            Tuple <string, string>[] expParams = new Tuple <string, string>[]
            {
                new Tuple <string, string>("name", "Foo"),
                new Tuple <string, string>("count", "4")
            };
            ExpectedStatement expStmt = new ExpectedStatement(expParams);

            expStmt.Keyword       = ReservedWords.Keywords.DataTypes.Int;
            expStmt.Type          = StatementType.FileObjectDefinition;
            expStmt.HasParameters = true;
            expStmt.HasNested     = false;

            string testXml = BuildXmlElement(expStmt.Keyword, expParams);

            // Act
            XmlStatement testStmt = XmlStatement.Parse(XElement.Parse(testXml));

            // Assert
            StatementAssertEqual(expStmt, testStmt);
        }
Exemplo n.º 7
0
        public void XmlStatement_Equality(string leftXml, string rightXml, bool expResult)
        {
            // Arrange
            XmlStatement leftStmt  = XmlStatement.Parse(XElement.Parse(leftXml));
            XmlStatement rightStmt = XmlStatement.Parse(XElement.Parse(rightXml));

            // Act
            bool result1 = leftStmt.Equals(rightStmt);
            bool result2 = rightStmt.Equals(leftStmt);
            int  hash1   = leftStmt.GetHashCode();
            int  hash2   = rightStmt.GetHashCode();

            // Assert
            Assert.Equal(expResult, result1);
            Assert.Equal(expResult, result2);
            if (expResult == true)
            {
                Assert.True(hash1 == hash2);
            }
            else
            {
                Assert.False(hash1 == hash2);
            }
        }