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); }
public void XmlStatement_InnerText() { // Arrange string testXml = BuildXmlElement("int", "This is invalid."); // Act, Assert Assert.Throws <SyntaxException>(() => XmlStatement.Parse(XElement.Parse(testXml))); }
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); }
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); }
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); }
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); }
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); } }