public void ParseAttributeTest() { //Parse tokens MarkupParser markupParser = new MarkupParser(Init("#id1")); Attribute parsedAttribute = markupParser.ParseAttribute(); //Check attribute Assert.AreEqual(typeof(IdAttribute), parsedAttribute.GetType()); //Check id attribute Assert.AreEqual("#id1", parsedAttribute.ToString()); }
public void ParseDesignatorWithAttributeTest() { //Parse tokens MarkupParser markupParser = new MarkupParser(Init("img@100%50")); Designator parsedDesignator = markupParser.ParseDesignator(); //Check designator Assert.AreEqual("img", parsedDesignator.GetIdentifier()); Assert.AreEqual(1, parsedDesignator.GetAttributes().Count); //Check attribute Attribute parsedAttribute = (Attribute)parsedDesignator.GetAttributes().Get(0); Assert.AreEqual(typeof(Width_HeightAttribute), parsedAttribute.GetType()); //Check Width_HeightAttribute contents Width_HeightAttribute attribute = (Width_HeightAttribute)parsedAttribute; Assert.AreEqual(100, attribute.GetWidth()); Assert.AreEqual(50, attribute.GetHeight()); }
/// <summary> /// Parser for Attribute /// </summary> /// <returns>Parsed Attribute</returns> public Attribute ParseAttribute() { CurrentToken = TokenStream.NextToken(); Attribute attribute = null; switch (CurrentToken.GetValue().ToString()) { //Determine different types of attributes case "#": //Id attribute attribute = ParseIdAttribute(); break; case ".": //Class attribute attribute = ParseClassAttribute(); break; case "$": //Name attribute attribute = ParseNameAttribute(); break; case ":": //Type attribute attribute = ParseTypeAttribute(); break; case "@": //Width_(Height) attribute if (TokenStream.Peek(2).GetValue().ToString() == "%") { //Width-Height attribute attribute = ParseWidth_HeightAttribute(); } else { //Only width attribute attribute = ParseWidthAttribute(); } break; default: throw new UnexpectedToken("Expected attribute, but found:", CurrentToken.GetValue().ToString(), CurrentToken.GetLine()); } return(attribute); }