Fix TagHelperDescriptor.Kind serialization
This commit is contained in:
parent
a9004e503e
commit
fcd4484542
|
|
@ -39,7 +39,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor.Serialization
|
||||||
var diagnostics = descriptor[nameof(TagHelperDescriptor.Diagnostics)].Value<JArray>();
|
var diagnostics = descriptor[nameof(TagHelperDescriptor.Diagnostics)].Value<JArray>();
|
||||||
var metadata = descriptor[nameof(TagHelperDescriptor.Metadata)].Value<JObject>();
|
var metadata = descriptor[nameof(TagHelperDescriptor.Metadata)].Value<JObject>();
|
||||||
|
|
||||||
var builder = TagHelperDescriptorBuilder.Create(typeName, assemblyName);
|
var builder = TagHelperDescriptorBuilder.Create(descriptorKind, typeName, assemblyName);
|
||||||
|
|
||||||
builder.Documentation = documentation;
|
builder.Documentation = documentation;
|
||||||
builder.TagOutputHint = tagOutputHint;
|
builder.TagOutputHint = tagOutputHint;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Razor.Extensions;
|
||||||
using Microsoft.AspNetCore.Razor.Language;
|
using Microsoft.AspNetCore.Razor.Language;
|
||||||
using Microsoft.AspNetCore.Razor.Language.Legacy;
|
|
||||||
using Microsoft.VisualStudio.LanguageServices.Razor.Serialization;
|
using Microsoft.VisualStudio.LanguageServices.Razor.Serialization;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
@ -18,6 +18,51 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var expectedDescriptor = CreateTagHelperDescriptor(
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
|
kind: TagHelperConventions.DefaultKind,
|
||||||
|
tagName: "tag-name",
|
||||||
|
typeName: "type name",
|
||||||
|
assemblyName: "assembly name",
|
||||||
|
attributes: new Action<BoundAttributeDescriptorBuilder>[]
|
||||||
|
{
|
||||||
|
builder => builder
|
||||||
|
.Name("test-attribute")
|
||||||
|
.PropertyName("TestAttribute")
|
||||||
|
.TypeName("string"),
|
||||||
|
},
|
||||||
|
ruleBuilders: new Action<TagMatchingRuleDescriptorBuilder>[]
|
||||||
|
{
|
||||||
|
builder => builder
|
||||||
|
.RequireAttributeDescriptor(attribute => attribute
|
||||||
|
.Name("required-attribute-one")
|
||||||
|
.NameComparisonMode(RequiredAttributeDescriptor.NameComparisonMode.PrefixMatch))
|
||||||
|
.RequireAttributeDescriptor(attribute => attribute
|
||||||
|
.Name("required-attribute-two")
|
||||||
|
.NameComparisonMode(RequiredAttributeDescriptor.NameComparisonMode.FullMatch)
|
||||||
|
.Value("something")
|
||||||
|
.ValueComparisonMode(RequiredAttributeDescriptor.ValueComparisonMode.PrefixMatch))
|
||||||
|
.RequireParentTag("parent-name")
|
||||||
|
.RequireTagStructure(TagStructure.WithoutEndTag),
|
||||||
|
},
|
||||||
|
configureAction: builder =>
|
||||||
|
{
|
||||||
|
builder.AllowChildTag("allowed-child-one");
|
||||||
|
builder.AddMetadata("foo", "bar");
|
||||||
|
});
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var serializedDescriptor = JsonConvert.SerializeObject(expectedDescriptor, TagHelperDescriptorJsonConverter.Instance, RazorDiagnosticJsonConverter.Instance);
|
||||||
|
var descriptor = JsonConvert.DeserializeObject<TagHelperDescriptor>(serializedDescriptor, TagHelperDescriptorJsonConverter.Instance, RazorDiagnosticJsonConverter.Instance);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ViewComponentTagHelperDescriptor_RoundTripsProperly()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
|
kind: ViewComponentTagHelperConventions.Kind,
|
||||||
tagName: "tag-name",
|
tagName: "tag-name",
|
||||||
typeName: "type name",
|
typeName: "type name",
|
||||||
assemblyName: "assembly name",
|
assemblyName: "assembly name",
|
||||||
|
|
@ -61,6 +106,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var expectedDescriptor = CreateTagHelperDescriptor(
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
|
kind: TagHelperConventions.DefaultKind,
|
||||||
tagName: "tag-name",
|
tagName: "tag-name",
|
||||||
typeName: "type name",
|
typeName: "type name",
|
||||||
assemblyName: "assembly name",
|
assemblyName: "assembly name",
|
||||||
|
|
@ -105,6 +151,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var expectedDescriptor = CreateTagHelperDescriptor(
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
|
kind: TagHelperConventions.DefaultKind,
|
||||||
tagName: "tag-name",
|
tagName: "tag-name",
|
||||||
typeName: "type name",
|
typeName: "type name",
|
||||||
assemblyName: "assembly name",
|
assemblyName: "assembly name",
|
||||||
|
|
@ -146,6 +193,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||||
}
|
}
|
||||||
|
|
||||||
private static TagHelperDescriptor CreateTagHelperDescriptor(
|
private static TagHelperDescriptor CreateTagHelperDescriptor(
|
||||||
|
string kind,
|
||||||
string tagName,
|
string tagName,
|
||||||
string typeName,
|
string typeName,
|
||||||
string assemblyName,
|
string assemblyName,
|
||||||
|
|
@ -153,7 +201,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||||
IEnumerable<Action<TagMatchingRuleDescriptorBuilder>> ruleBuilders = null,
|
IEnumerable<Action<TagMatchingRuleDescriptorBuilder>> ruleBuilders = null,
|
||||||
Action<TagHelperDescriptorBuilder> configureAction = null)
|
Action<TagHelperDescriptorBuilder> configureAction = null)
|
||||||
{
|
{
|
||||||
var builder = TagHelperDescriptorBuilder.Create(typeName, assemblyName);
|
var builder = TagHelperDescriptorBuilder.Create(kind, typeName, assemblyName);
|
||||||
builder.SetTypeName(typeName);
|
builder.SetTypeName(typeName);
|
||||||
|
|
||||||
if (attributes != null)
|
if (attributes != null)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue