Moved VCTH types to Razor.Extensions
This commit is contained in:
parent
6664efb6d9
commit
74fef5f722
|
|
@ -1,5 +1,5 @@
|
|||
// <auto-generated />
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
using System.Globalization;
|
||||
using System.Reflection;
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
internal class ViewComponentDiagnosticFactory
|
||||
{
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
/// <summary>
|
||||
/// A library of methods used to generate <see cref="TagHelperDescriptor"/>s for view components.
|
||||
|
|
@ -6,8 +6,9 @@ using System.Collections.Generic;
|
|||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
internal class ViewComponentTagHelperDescriptorFactory
|
||||
{
|
||||
|
|
@ -4,8 +4,10 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.Razor;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
public sealed class ViewComponentTagHelperDescriptorProvider : RazorEngineFeatureBase, ITagHelperDescriptorProvider
|
||||
{
|
||||
|
|
@ -4,8 +4,9 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
internal class ViewComponentTypeVisitor : SymbolVisitor
|
||||
{
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
internal static class ViewComponentTypes
|
||||
{
|
||||
|
|
@ -11,6 +11,5 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="$(RoslynVersion)" />
|
||||
<ProjectReference Include="..\Microsoft.AspNetCore.Razor.Language\Microsoft.AspNetCore.Razor.Language.csproj" />
|
||||
<ProjectReference Include="..\Microsoft.CodeAnalysis.Razor\Microsoft.CodeAnalysis.Razor.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.CodeAnalysis.Host;
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Mvc.Razor.Extensions;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis.Razor;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.CodeAnalysis.Remote.Razor
|
||||
{
|
||||
internal class DefaultTagHelperResolver : TagHelperResolver
|
||||
{
|
||||
|
|
@ -21,7 +23,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
|
||||
var providers = new ITagHelperDescriptorProvider[]
|
||||
{
|
||||
new DefaultTagHelperDescriptorProvider() { DesignTime = true, },
|
||||
new DefaultTagHelperDescriptorProvider() { DesignTime = DesignTime, },
|
||||
new ViewComponentTagHelperDescriptorProvider(),
|
||||
};
|
||||
|
||||
|
|
@ -19,5 +19,6 @@
|
|||
<PackageReference Include="StreamJsonRpc" Version="$(StreamJsonRpcVersion)" />
|
||||
<ProjectReference Include="..\Microsoft.CodeAnalysis.Razor.Workspaces\Microsoft.CodeAnalysis.Razor.Workspaces.csproj" />
|
||||
<ProjectReference Include="..\Microsoft.AspNetCore.Razor.Language\Microsoft.AspNetCore.Razor.Language.csproj" />
|
||||
<ProjectReference Include="..\Microsoft.AspNetCore.Mvc.Razor.Extensions\Microsoft.AspNetCore.Mvc.Razor.Extensions.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ using System.Collections.Generic;
|
|||
using System.Composition;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc.Razor.Extensions;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.Razor;
|
||||
using Microsoft.VisualStudio.Shell;
|
||||
|
|
@ -56,8 +58,8 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
|||
}
|
||||
|
||||
// The OOP host is turned off, so let's do this in process.
|
||||
var resolver = new CodeAnalysis.Razor.DefaultTagHelperResolver(designTime: true);
|
||||
result = await resolver.GetTagHelpersAsync(project, CancellationToken.None).ConfigureAwait(false);
|
||||
var compilation = await project.GetCompilationAsync(CancellationToken.None).ConfigureAwait(false);
|
||||
result = GetTagHelpers(compilation, designTime: true);
|
||||
return result;
|
||||
}
|
||||
catch (Exception exception)
|
||||
|
|
@ -79,6 +81,32 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
|||
}
|
||||
}
|
||||
|
||||
private TagHelperResolutionResult GetTagHelpers(Compilation compilation, bool designTime)
|
||||
{
|
||||
var descriptors = new List<TagHelperDescriptor>();
|
||||
|
||||
var providers = new ITagHelperDescriptorProvider[]
|
||||
{
|
||||
new DefaultTagHelperDescriptorProvider() { DesignTime = designTime, },
|
||||
new ViewComponentTagHelperDescriptorProvider(),
|
||||
};
|
||||
|
||||
var results = new List<TagHelperDescriptor>();
|
||||
var context = TagHelperDescriptorProviderContext.Create(results);
|
||||
context.SetCompilation(compilation);
|
||||
|
||||
for (var i = 0; i < providers.Length; i++)
|
||||
{
|
||||
var provider = providers[i];
|
||||
provider.Execute(context);
|
||||
}
|
||||
|
||||
var diagnostics = new List<RazorDiagnostic>();
|
||||
var resolutionResult = new TagHelperResolutionResult(results, diagnostics);
|
||||
|
||||
return resolutionResult;
|
||||
}
|
||||
|
||||
private TagHelperResolutionResult GetTagHelperResolutionResult(JObject jsonObject)
|
||||
{
|
||||
var serializer = new JsonSerializer();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis.Razor;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
|
|
|
|||
|
|
@ -3,19 +3,22 @@
|
|||
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Xunit;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
public class ViewComponentTagHelperDescriptorFactoryTest
|
||||
{
|
||||
private static readonly Assembly _assembly = typeof(ViewComponentTagHelperDescriptorFactoryTest).GetTypeInfo().Assembly;
|
||||
|
||||
[Fact]
|
||||
public void CreateDescriptor_UnderstandsStringParameters()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(StringParameterViewComponent).FullName);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
var expectedDescriptor = TagHelperDescriptorBuilder.Create(
|
||||
|
|
@ -53,7 +56,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_UnderstandsVariousParameterTypes()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(VariousParameterViewComponent).FullName);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
var expectedDescriptor = TagHelperDescriptorBuilder.Create(
|
||||
|
|
@ -99,7 +102,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_UnderstandsGenericParameters()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(GenericParameterViewComponent).FullName);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
var expectedDescriptor = TagHelperDescriptorBuilder.Create(
|
||||
|
|
@ -137,7 +140,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_AddsDiagnostic_ForViewComponentWithNoInvokeMethod()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(ViewComponentWithoutInvokeMethod).FullName);
|
||||
|
|
@ -154,7 +157,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_ForViewComponentWithInvokeAsync_UnderstandsGenericTask()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(AsyncViewComponentWithGenericTask).FullName);
|
||||
|
|
@ -170,7 +173,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_ForViewComponentWithInvokeAsync_UnderstandsNonGenericTask()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(AsyncViewComponentWithNonGenericTask).FullName);
|
||||
|
|
@ -186,7 +189,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_ForViewComponentWithInvokeAsync_DoesNotUnderstandVoid()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(AsyncViewComponentWithString).FullName);
|
||||
|
|
@ -203,7 +206,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_ForViewComponentWithInvokeAsync_DoesNotUnderstandString()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(AsyncViewComponentWithString).FullName);
|
||||
|
|
@ -220,7 +223,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_ForViewComponentWithInvoke_DoesNotUnderstandVoid()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(SyncViewComponentWithVoid).FullName);
|
||||
|
|
@ -237,7 +240,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_ForViewComponentWithInvoke_DoesNotUnderstandNonGenericTask()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(SyncViewComponentWithNonGenericTask).FullName);
|
||||
|
|
@ -254,7 +257,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public void CreateDescriptor_ForViewComponentWithInvoke_DoesNotUnderstandGenericTask()
|
||||
{
|
||||
// Arrange
|
||||
var testCompilation = TestCompilation.Create();
|
||||
var testCompilation = TestCompilation.Create(_assembly);
|
||||
var factory = new ViewComponentTagHelperDescriptorFactory(testCompilation);
|
||||
|
||||
var viewComponent = testCompilation.GetTypeByMetadataName(typeof(SyncViewComponentWithGenericTask).FullName);
|
||||
|
|
@ -2,15 +2,20 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.Razor;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
// This is just a basic integration test. There are detailed tests for the VCTH visitor and descriptor factory.
|
||||
public class ViewComponentTagHelperDescriptorProviderTest
|
||||
{
|
||||
private static readonly Assembly _assembly = typeof(ViewComponentTagHelperDescriptorProviderTest).GetTypeInfo().Assembly;
|
||||
|
||||
[Fact]
|
||||
public void DescriptorProvider_FindsVCTH()
|
||||
{
|
||||
|
|
@ -22,7 +27,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
}
|
||||
";
|
||||
|
||||
var testCompilation = TestCompilation.Create(CSharpSyntaxTree.ParseText(code));
|
||||
var testCompilation = TestCompilation.Create(_assembly, CSharpSyntaxTree.ParseText(code));
|
||||
|
||||
var context = TagHelperDescriptorProviderContext.Create();
|
||||
context.SetCompilation(testCompilation);
|
||||
|
|
@ -3,13 +3,17 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
{
|
||||
public class ViewComponentTypeVisitorTest
|
||||
{
|
||||
private static Compilation Compilation { get; } = TestCompilation.Create();
|
||||
private static readonly Assembly _assembly = typeof(ViewComponentTypeVisitorTest).GetTypeInfo().Assembly;
|
||||
|
||||
private static Compilation Compilation { get; } = TestCompilation.Create(_assembly);
|
||||
|
||||
// In practice MVC will provide a marker attribute for ViewComponents. To prevent a circular reference between MVC and Razor
|
||||
// we can use a test class as a marker.
|
||||
|
|
@ -13,6 +13,8 @@
|
|||
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Razor.Language\Microsoft.AspNetCore.Razor.Language.csproj" />
|
||||
|
||||
<PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(AspNetCoreVersion)" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(RoslynVersion)" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(DependencyModelVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -1,43 +1,37 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.Extensions.DependencyModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.Extensions.DependencyModel;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.CodeAnalysis
|
||||
{
|
||||
public static class TestCompilation
|
||||
{
|
||||
private static IEnumerable<MetadataReference> _metadataReferences;
|
||||
private static Dictionary<Assembly, IEnumerable<MetadataReference>> _assemblyMetadataReferences =
|
||||
new Dictionary<Assembly, IEnumerable<MetadataReference>>();
|
||||
|
||||
public static IEnumerable<MetadataReference> MetadataReferences
|
||||
public static IEnumerable<MetadataReference> GetMetadataReferences(Assembly assembly)
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_metadataReferences == null)
|
||||
{
|
||||
var currentAssembly = typeof(TestCompilation).GetTypeInfo().Assembly;
|
||||
var dependencyContext = DependencyContext.Load(currentAssembly);
|
||||
var dependencyContext = DependencyContext.Load(assembly);
|
||||
|
||||
_metadataReferences = dependencyContext.CompileLibraries
|
||||
.SelectMany(l => l.ResolveReferencePaths())
|
||||
.Select(assemblyPath => MetadataReference.CreateFromFile(assemblyPath))
|
||||
.ToArray();
|
||||
}
|
||||
var metadataReferences = dependencyContext.CompileLibraries
|
||||
.SelectMany(l => l.ResolveReferencePaths())
|
||||
.Select(assemblyPath => MetadataReference.CreateFromFile(assemblyPath))
|
||||
.ToArray();
|
||||
|
||||
return _metadataReferences;
|
||||
}
|
||||
return metadataReferences;
|
||||
}
|
||||
|
||||
public static string AssemblyName => "TestAssembly";
|
||||
|
||||
public static Compilation Create(SyntaxTree syntaxTree = null)
|
||||
public static Compilation Create(Assembly assembly, SyntaxTree syntaxTree = null)
|
||||
{
|
||||
IEnumerable<SyntaxTree> syntaxTrees = null;
|
||||
|
||||
|
|
@ -46,7 +40,13 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
syntaxTrees = new[] { syntaxTree };
|
||||
}
|
||||
|
||||
var compilation = CSharpCompilation.Create(AssemblyName, syntaxTrees, MetadataReferences);
|
||||
if (!_assemblyMetadataReferences.TryGetValue(assembly, out IEnumerable<MetadataReference> metadataReferences))
|
||||
{
|
||||
metadataReferences = GetMetadataReferences(assembly);
|
||||
_assemblyMetadataReferences[assembly] = metadataReferences;
|
||||
}
|
||||
|
||||
var compilation = CSharpCompilation.Create(AssemblyName, syntaxTrees, metadataReferences);
|
||||
|
||||
EnsureValidCompilation(compilation);
|
||||
|
||||
|
|
@ -1,27 +1,28 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.AspNetCore.Razor.Language.Legacy;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.Razor.Workspaces.Test;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
||||
{
|
||||
public class DefaultTagHelperDescriptorFactoryTest
|
||||
{
|
||||
protected static readonly AssemblyName TagHelperDescriptorFactoryTestAssembly =
|
||||
typeof(DefaultTagHelperDescriptorFactoryTest).GetTypeInfo().Assembly.GetName();
|
||||
private static readonly Assembly _assembly = typeof(DefaultTagHelperDescriptorFactoryTest).GetTypeInfo().Assembly;
|
||||
|
||||
protected static readonly AssemblyName TagHelperDescriptorFactoryTestAssembly = _assembly.GetName();
|
||||
|
||||
protected static readonly string AssemblyName = TagHelperDescriptorFactoryTestAssembly.Name;
|
||||
|
||||
private static Compilation Compilation { get; } = TestCompilation.Create();
|
||||
private static Compilation Compilation { get; } = TestCompilation.Create(_assembly);
|
||||
|
||||
public static TheoryData RequiredAttributeParserErrorData
|
||||
{
|
||||
|
|
@ -1329,7 +1330,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
{{
|
||||
}}";
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(text);
|
||||
var compilation = TestCompilation.Create(syntaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var tagHelperType = compilation.GetTypeByMetadataName("DynamicTestTagHelper");
|
||||
var attribute = tagHelperType.GetAttributes().Single();
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: false);
|
||||
|
|
@ -1510,7 +1511,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public string SomeAttribute {{ get; set; }}
|
||||
}}";
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(text);
|
||||
var compilation = TestCompilation.Create(syntaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var tagHelperType = compilation.GetTypeByMetadataName("DynamicTestTagHelper");
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: false);
|
||||
|
||||
|
|
@ -1550,7 +1551,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public System.Collections.Generic.IDictionary<string, int> SomeAttribute {{ get; set; }}
|
||||
}}";
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(text);
|
||||
var compilation = TestCompilation.Create(syntaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var tagHelperType = compilation.GetTypeByMetadataName("DynamicTestTagHelper");
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: false);
|
||||
|
||||
|
|
@ -1593,7 +1594,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public string InvalidProperty {{ get; set; }}
|
||||
}}";
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(text);
|
||||
var compilation = TestCompilation.Create(syntaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var tagHelperType = compilation.GetTypeByMetadataName("DynamicTestTagHelper");
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: false);
|
||||
|
||||
|
|
@ -1636,7 +1637,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public System.Collections.Generic.IDictionary<string, int> InvalidProperty {{ get; set; }}
|
||||
}}";
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(text);
|
||||
var compilation = TestCompilation.Create(syntaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var tagHelperType = compilation.GetTypeByMetadataName("DynamicTestTagHelper");
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: false);
|
||||
|
||||
|
|
@ -1678,7 +1679,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
{{
|
||||
}}";
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(text);
|
||||
var compilation = TestCompilation.Create(syntaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var tagHelperType = compilation.GetTypeByMetadataName("DynamicTestTagHelper");
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: false);
|
||||
|
||||
|
|
@ -1719,7 +1720,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
{{
|
||||
}}";
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(text);
|
||||
var compilation = TestCompilation.Create(syntaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var tagHelperType = compilation.GetTypeByMetadataName("DynamicTestTagHelper");
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: false);
|
||||
|
||||
|
|
@ -2031,7 +2032,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
{
|
||||
// Arrange
|
||||
var errorSink = new ErrorSink();
|
||||
var sytnaxTree = CSharpSyntaxTree.ParseText(@"
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(@"
|
||||
using Microsoft.AspNetCore.Razor.TagHelpers;
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -2043,7 +2044,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
public class DocumentedTagHelper : " + typeof(AspNetCore.Razor.TagHelpers.TagHelper).Name + @"
|
||||
{
|
||||
}");
|
||||
var compilation = TestCompilation.Create(sytnaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: true);
|
||||
var typeSymbol = compilation.GetTypeByMetadataName("DocumentedTagHelper");
|
||||
var expectedDocumentation =
|
||||
|
|
@ -2069,7 +2070,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
{
|
||||
// Arrange
|
||||
var errorSink = new ErrorSink();
|
||||
var sytnaxTree = CSharpSyntaxTree.ParseText(@"
|
||||
var syntaxTree = CSharpSyntaxTree.ParseText(@"
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class DocumentedTagHelper : " + typeof(AspNetCore.Razor.TagHelpers.TagHelper).FullName + @"
|
||||
|
|
@ -2092,7 +2093,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
|||
/// </remarks>
|
||||
public List<bool> RemarksAndSummaryProperty { get; set; }
|
||||
}");
|
||||
var compilation = TestCompilation.Create(sytnaxTree);
|
||||
var compilation = TestCompilation.Create(_assembly, syntaxTree);
|
||||
var factory = new DefaultTagHelperDescriptorFactory(compilation, designTime: true);
|
||||
var typeSymbol = compilation.GetTypeByMetadataName("DocumentedTagHelper");
|
||||
var expectedDocumentations = new[]
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Razor.Language\Microsoft.AspNetCore.Razor.Language.csproj" />
|
||||
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Razor.Runtime\Microsoft.AspNetCore.Razor.Runtime.csproj" />
|
||||
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Razor\Microsoft.AspNetCore.Razor.csproj" />
|
||||
<ProjectReference Include="..\Microsoft.AspNetCore.Razor.Test.Common\Microsoft.AspNetCore.Razor.Test.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -4,12 +4,15 @@
|
|||
using Microsoft.AspNetCore.Razor.TagHelpers;
|
||||
using System.Collections.Generic;
|
||||
using Xunit;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor.Workspaces
|
||||
{
|
||||
public class TagHelperTypeVisitorTest
|
||||
{
|
||||
private static Compilation Compilation { get; } = TestCompilation.Create();
|
||||
private static readonly Assembly _assembly = typeof(TagHelperTypeVisitorTest).GetTypeInfo().Assembly;
|
||||
|
||||
private static Compilation Compilation { get; } = TestCompilation.Create(_assembly);
|
||||
|
||||
private static INamedTypeSymbol ITagHelperSymbol { get; } = Compilation.GetTypeByMetadataName(TagHelperTypes.ITagHelper);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue