private static string BuildTagExpression(SupportedTagAttribute supportedTag) { // HTML tag names are case folded to lower case var queryTagName = supportedTag.TagName.ToLowerInvariant(); if (supportedTag.HasAttributeFilter) { const string AttributeFilterQuery = "*[local-name() = '{0}' and {1}='{2}']"; // HTML attribute names are case folded to lower case // Searching by the SupportedTagAttribute attribute value must be case insensitive var attributeName = supportedTag.AttributeName.ToLowerInvariant(); var queryAttributeName = QueryFactory.CaseQuery("@" + attributeName, true); // This literal value can be converted to lower case here rather than within the execution of the XPath query var queryAttributeValue = supportedTag.AttributeValue.ToLowerInvariant(); return(string.Format( CultureInfo.CurrentCulture, AttributeFilterQuery, queryTagName, queryAttributeName, queryAttributeValue)); } return("*[local-name() = '" + queryTagName + "']"); }
public void ToStringReturnsTagRepresentationWithAttributeTest() { var target = new SupportedTagAttribute("test", "name", "Value"); var actual = target.ToString(); actual.Should().Be("<test name=\"Value\" />"); }
public void ToStringReturnsTagRepresentationTest() { var target = new SupportedTagAttribute("test"); var actual = target.ToString(); actual.Should().Be("<test />"); }
public void EqualsReturnsFalseWhenSecondIsNullTest() { var tag = new SupportedTagAttribute(Guid.NewGuid().ToString()); var target = new SupportedTagAttributeComparer(); var actual = target.Equals(tag, null); actual.Should().BeFalse(); }
public void EqualsReturnsFalseWhenAttributeFilterDoesNotMatchTest() { var first = new SupportedTagAttribute(Guid.NewGuid().ToString()); var second = new SupportedTagAttribute(first.TagName, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); var target = new SupportedTagAttributeComparer(); var actual = target.Equals(first, second); actual.Should().BeFalse(); }
public void EqualsReturnsTrueWhenTagsMatchWithoutAttributesTest() { var first = new SupportedTagAttribute(Guid.NewGuid().ToString()); var second = new SupportedTagAttribute(first.TagName); var target = new SupportedTagAttributeComparer(); var actual = target.Equals(first, second); actual.Should().BeTrue(); }
public void HasAttributeFilterReturnsFalseIfAttributeValueIsWhiteSpaceTest() { var tagValue = Guid.NewGuid().ToString(); var attributeName = Guid.NewGuid().ToString(); var target = new SupportedTagAttribute(tagValue, attributeName, " "); var actual = target.HasAttributeFilter; actual.Should().BeFalse(); }
public void HasAttributeFilterReturnsFalseIfAttributeNameIsEmptyTest() { var tagName = Guid.NewGuid().ToString(); var attributeValue = Guid.NewGuid().ToString(); var target = new SupportedTagAttribute(tagName, string.Empty, attributeValue); var actual = target.HasAttributeFilter; actual.Should().BeFalse(); }
public void GetHashCodeReturnsSameValueForMatchingTagTest() { var first = new SupportedTagAttribute(Guid.NewGuid().ToString()); var second = new SupportedTagAttribute(first.TagName); var target = new SupportedTagAttributeComparer(); var firstCode = target.GetHashCode(first); var secondCode = target.GetHashCode(second); firstCode.Should().Be(secondCode); }
public void GetHashCodeReturnsDifferentValueForMismatchedTagTest() { var first = new SupportedTagAttribute(Guid.NewGuid().ToString()); var second = new SupportedTagAttribute(Guid.NewGuid().ToString()); var target = new SupportedTagAttributeComparer(); var firstCode = target.GetHashCode(first); var secondCode = target.GetHashCode(second); firstCode.Should().NotBe(secondCode); }
public void ReturnsConstructorValuesTest() { var tagName = Guid.NewGuid().ToString(); var attributeName = Guid.NewGuid().ToString(); var attributeValue = Guid.NewGuid().ToString(); var target = new SupportedTagAttribute(tagName, attributeName, attributeValue); target.TagName.Should().Be(tagName); target.AttributeName.Should().Be(attributeName); target.AttributeValue.Should().Be(attributeValue); }
public void HasAttributeFilterReturnsTrueIfAttributeIsDefinedTest() { var tagName = Guid.NewGuid().ToString(); var attributeName = Guid.NewGuid().ToString(); var attributeValue = Guid.NewGuid().ToString(); var target = new SupportedTagAttribute(tagName, attributeName, attributeValue); var actual = target.HasAttributeFilter; actual.Should().BeTrue(); }