public void TryGetAttributeInfo_EmptyAttribute_ReturnsFalse() { // Arrange var node = GetNodeAt("<p >", 3); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out _, out _, out _, out _, out _); // Assert Assert.False(result); }
public void TryGetAttributeInfo_NonAttribute_ReturnsFalse() { // Arrange var node = GetNodeAt("@DateTime.Now", 4); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out _, out _, out _, out _, out _); // Assert Assert.False(result); }
public void TryGetElementInfo_NoAttributes_ReturnsEmptyAttributeCollection() { // Arrange var node = GetNodeAt("<p>", 2); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out _, out var attributes); // Assert Assert.True(result); Assert.Empty(attributes); }
public void TryGetAttributeInfo_PartialDirectiveAttribute_ReturnsTrue() { var node = GetNodeAt("<input type=\"text\" @bind />", 22); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation); // Assert Assert.True(result); Assert.Equal("@bind", name); Assert.Equal(new TextSpan(19, 5), nameLocation); Assert.Null(parameterName); }
public void TryGetElementInfo_SingleAttribute_ReturnsAttributeName() { // Arrange var node = GetNodeAt("<p class='hello @DateTime.Now'>", 2); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out _, out var attributes); // Assert Assert.True(result); var attributeName = Assert.Single(attributes); Assert.Equal("class", attributeName); }
public void TryGetAttributeInfo_FullAttribute_ReturnsTrue() { // Arrange var node = GetNodeAt("<p foo=\"anything\">", 4); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation); // Assert Assert.True(result); Assert.Equal("foo", name); Assert.Equal(new TextSpan(3, 3), nameLocation); Assert.Null(parameterName); }
public void TryGetAttributeInfo_PartialTransitionedAttribute_ReturnsTrue() { // Arrange var node = GetNodeAt("<p @>", 4); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation); // Assert Assert.True(result); Assert.Equal("@", name); Assert.Equal(new TextSpan(3, 1), nameLocation); Assert.Null(parameterName); }
public void IntersectsWithAttributeNameOrPrefix_OutsideOfNameAndPrefix_ReturnsFalse() { // Arrange // <p class=|""></p> var location = new SourceSpan(9, 0); var prefixLocation = new TextSpan(2, 1); var attributeNameLocation = new TextSpan(3, 5); // Act var result = DirectiveAttributeCompletionItemProviderBase.IntersectsWithAttributeNameOrPrefix(location, prefixLocation, attributeNameLocation); // Assert Assert.False(result); }
public void IntersectsWithAttributeNameOrPrefix_WithinName_ReturnsTrue() { // Arrange // <p cl|ass=""></p> var location = new SourceSpan(5, 0); var prefixLocation = new TextSpan(2, 1); var attributeNameLocation = new TextSpan(3, 5); // Act var result = DirectiveAttributeCompletionItemProviderBase.IntersectsWithAttributeNameOrPrefix(location, prefixLocation, attributeNameLocation); // Assert Assert.True(result); }
public void TryGetElementInfo_MixedAttributes_ReturnsStringifiedAttributesResult() { // Arrange var node = GetNodeAt(@"<input type=""text"" @bind:format=""MM/dd/yyyy"" something @bind=""@CurrentDate"" /> @code { public DateTime CurrentDate { get; set; } = DateTime.Now; }", 2); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out _, out var attributes); // Assert Assert.True(result); Assert.Equal(new[] { "type", "@bind:format", "something", "@bind" }, attributes); }
public void TryGetElementInfo_TagHelperParent() { // Arrange var node = GetNodeAt(@"<input type=""text"" @bind=""@CurrentDate"" /> @code { public DateTime CurrentDate { get; set; } = DateTime.Now; }", 2); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out var tagName, out var attributes); // Assert Assert.True(result); Assert.Equal("input", tagName); Assert.Equal(new[] { "type", "@bind" }, attributes); }
public void TryGetAttributeInfo_DirectiveAttribute_ReturnsTrue() { var node = GetNodeAt(@"<input type=""text"" @bind=""@CurrentDate"" /> @code { public DateTime CurrentDate { get; set; } = DateTime.Now; }", 22); // Act var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation); // Assert Assert.True(result); Assert.Equal("@bind", name); Assert.Equal(new TextSpan(19, 5), nameLocation); Assert.Null(parameterName); }