public static Assignment AsAssignment(HElement element) { var name = element.Descendants("b").First().Value; var parts = element.Attribute("href").Value.Split("(),".ToCharArray()); var assignment = new Assignment { Name = name, CourseId = parts[1], AssignmentId = parts[3] }; return(assignment); }
public void TestAttributes() { // Attributes are empty var elm = new HElement("test"); Assert.Equal(0, elm.Attributes().Count()); Assert.Null(elm.Attribute(null)); Assert.Null(elm.Attribute("")); Assert.Null(elm.Attribute(" ")); Assert.Null(elm.Attribute("attr2")); // Adding two attributes elm.Add( new HAttribute("attr1", "val1"), new HAttribute("attr3", "val3") ); Assert.Equal(2, elm.Attributes().Count()); Assert.Equal(0, elm.Attributes("Attr2").Count()); Assert.Null(elm.Attribute(null)); Assert.Null(elm.Attribute("")); Assert.Null(elm.Attribute(" ")); Assert.Null(elm.Attribute("attr2")); // Adding a third attribute elm.Add(new HAttribute("attr2", "val2")); Assert.Equal(3, elm.Attributes().Count()); Assert.Equal(1, elm.Attributes("Attr2").Count()); Assert.Null(elm.Attribute(null)); Assert.Null(elm.Attribute("")); Assert.Null(elm.Attribute(" ")); Assert.NotNull(elm.Attribute("attr2")); Assert.NotNull(elm.Attribute("Attr2")); // Can't adding an attribute with a name already defined var ioex = Assert.Throws <InvalidOperationException>(() => elm.Add(new HAttribute("attr2", "value"))); Assert.Equal("The attribute 'attr2' already defined", ioex.Message); // Test adding an attribute already defined in another element var otherElement = new HElement("OtherTest"); var a1 = elm.Attribute("Attr2"); otherElement.Add(a1); var a2 = otherElement.Attribute("attr2"); Assert.NotSame(a1, a2); Assert.Equal(a1.Name, a2.Name); Assert.Equal(a1.Value, a2.Value); }
public void TestAttribute() { var element = new HElement("div"); // The value is null so the attribute is not created element.Attribute("style", null); Assert.Null(element.Attribute("Style")); // Create the attribute element.Attribute("style", "font-size:red"); Assert.Equal("font-size:red", element.Attribute("Style").Value); // Update the attribute element.Attribute("style", "font-size:blue"); Assert.Equal("font-size:blue", element.Attribute("Style").Value); // Delete the attribute element.Attribute("style", ""); Assert.Null(element.Attribute("Style")); }