Skip to content
This repository has been archived by the owner on Feb 23, 2021. It is now read-only.

Commit

Permalink
React to aspnet/Razor#684.
Browse files Browse the repository at this point in the history
- Added the new `TagHelperRequiredAttributeDescriptor` to the VisualStudio validation test.
  • Loading branch information
NTaylorMullen committed Mar 8, 2016
1 parent 9ba6b5d commit 2097280
Showing 1 changed file with 71 additions and 5 deletions.
76 changes: 71 additions & 5 deletions test/dotnet-razor-tooling.Test/VisualStudioProtocolTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,24 @@ public void TagHelperDescrictorsAreCompatibleWithPinnedVisualStudioVersion()
AllowedChildren = new[] { "tr", "td" },
AssemblyName = "CustomAssembly",
Prefix = "th:",
RequiredAttributes = new[] { "runat" },
RequiredAttributes = new[]
{
new TagHelperRequiredAttributeDescriptor
{
Name = "runat"
},
new TagHelperRequiredAttributeDescriptor
{
Name = "condition",
Value = "(",
ValueComparison = TagHelperRequiredAttributeValueComparison.PrefixMatch
},
new TagHelperRequiredAttributeDescriptor
{
Name = "runat-",
NameComparison = TagHelperRequiredAttributeNameComparison.PrefixMatch
},
},
RequiredParent = "body",
TagName = "custom-table",
TagStructure = TagStructure.NormalOrSelfClosing,
Expand Down Expand Up @@ -69,7 +86,24 @@ public void TagHelperDescrictorsAreCompatibleWithPinnedVisualStudioVersion()
AllowedChildren = new[] { "tr", "td" },
AssemblyName = "CustomAssembly",
Prefix = "th:",
RequiredAttributes = new[] { "runat" },
RequiredAttributes = new[]
{
new VisualStudioTagHelperRequiredAttributeDescriptor
{
Name = "runat"
},
new VisualStudioTagHelperRequiredAttributeDescriptor
{
Name = "condition",
Value = "(",
ValueComparison = VisualStudioTagHelperRequiredAttributeValueComparison.PrefixMatch
},
new VisualStudioTagHelperRequiredAttributeDescriptor
{
Name = "runat-",
NameComparison = VisualStudioTagHelperRequiredAttributeNameComparison.PrefixMatch
},
},
RequiredParent = "body",
TagName = "custom-table",
TagStructure = VisualStudioTagStructure.NormalOrSelfClosing,
Expand Down Expand Up @@ -121,7 +155,19 @@ public void TagHelperDescrictorsAreCompatibleWithPinnedVisualStudioVersion()
Assert.Equal(expectedVSDescriptor.AllowedChildren, vsDescriptor.AllowedChildren, StringComparer.Ordinal);
Assert.Equal(expectedVSDescriptor.AssemblyName, vsDescriptor.AssemblyName, StringComparer.Ordinal);
Assert.Equal(expectedVSDescriptor.Prefix, vsDescriptor.Prefix, StringComparer.Ordinal);
Assert.Equal(expectedVSDescriptor.RequiredAttributes, vsDescriptor.RequiredAttributes, StringComparer.Ordinal);

var requiredAttributes = vsDescriptor.RequiredAttributes.ToArray();
var expectedRequiredAttributes = expectedVSDescriptor.RequiredAttributes.ToArray();
for (var i = 0; i < requiredAttributes.Length; i++)
{
var requiredAttribute = requiredAttributes[i];
var expectedRequiredAttribute = expectedRequiredAttributes[i];
Assert.Equal(expectedRequiredAttribute.Name, requiredAttribute.Name, StringComparer.Ordinal);
Assert.Equal(expectedRequiredAttribute.NameComparison, requiredAttribute.NameComparison);
Assert.Equal(expectedRequiredAttribute.Value, requiredAttribute.Value, StringComparer.Ordinal);
Assert.Equal(expectedRequiredAttribute.ValueComparison, requiredAttribute.ValueComparison);
}

Assert.Equal(expectedVSDescriptor.RequiredParent, vsDescriptor.RequiredParent, StringComparer.Ordinal);
Assert.Equal(expectedVSDescriptor.TagName, vsDescriptor.TagName, StringComparer.Ordinal);
Assert.Equal(expectedVSDescriptor.TagStructure, vsDescriptor.TagStructure);
Expand Down Expand Up @@ -250,7 +296,8 @@ private class VisualStudioTagHelperDescriptor
private string _assemblyName;
private IEnumerable<VisualStudioTagHelperAttributeDescriptor> _attributes =
Enumerable.Empty<VisualStudioTagHelperAttributeDescriptor>();
private IEnumerable<string> _requiredAttributes = Enumerable.Empty<string>();
private IEnumerable<VisualStudioTagHelperRequiredAttributeDescriptor> _requiredAttributes =
Enumerable.Empty<VisualStudioTagHelperRequiredAttributeDescriptor>();

public string Prefix
{
Expand Down Expand Up @@ -339,7 +386,7 @@ public IEnumerable<VisualStudioTagHelperAttributeDescriptor> Attributes
_attributes = value;
}
}
public IEnumerable<string> RequiredAttributes
public IEnumerable<VisualStudioTagHelperRequiredAttributeDescriptor> RequiredAttributes
{
get
{
Expand All @@ -366,6 +413,25 @@ public enum VisualStudioTagStructure
NormalOrSelfClosing,
WithoutEndTag
}
public class VisualStudioTagHelperRequiredAttributeDescriptor
{
public string Name { get; set; }
public VisualStudioTagHelperRequiredAttributeNameComparison NameComparison { get; set; }
public string Value { get; set; }
public VisualStudioTagHelperRequiredAttributeValueComparison ValueComparison { get; set; }
}
public enum VisualStudioTagHelperRequiredAttributeNameComparison
{
FullMatch,
PrefixMatch,
}
public enum VisualStudioTagHelperRequiredAttributeValueComparison
{
None,
FullMatch,
PrefixMatch,
SuffixMatch,
}
#endregion
}
}

0 comments on commit 2097280

Please sign in to comment.