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

Commit 7db1ef3

Browse files
author
N. Taylor Mullen
committed
Transition test project to use CaseSensitiveTagHelperDescriptorComparer.
- Also added `OutputElementHint` test. `DesignTimeTagHelperDescriptor`s weren't being created with `OutputElementHint`s for a while due to a bad comparer being used. #18
1 parent d991593 commit 7db1ef3

2 files changed

Lines changed: 73 additions & 1 deletion

File tree

test/Microsoft.AspNet.Tooling.Razor.Test/RazorPluginTest.cs

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Microsoft.AspNet.Razor;
88
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
99
using Microsoft.AspNet.Razor.TagHelpers;
10+
using Microsoft.AspNet.Razor.Test.Internal;
1011
using Microsoft.AspNet.Tooling.Razor.Models.OutgoingMessages;
1112
using Microsoft.AspNet.Tooling.Razor.Tests;
1213
using Microsoft.Framework.Runtime;
@@ -175,7 +176,65 @@ public void ProcessMessage_ResolveTagHelperDescriptors_ResolvesTagHelperDescript
175176
var responseData = responseMessage.Data;
176177
Assert.Equal(CustomTagHelperAssembly, responseData.AssemblyName, StringComparer.Ordinal);
177178
var actualDescriptor = Assert.Single(responseData.Descriptors);
178-
Assert.Equal(CustomTagHelperDescriptor, actualDescriptor, TagHelperDescriptorComparer.Default);
179+
Assert.Equal(
180+
CustomTagHelperDescriptor,
181+
actualDescriptor,
182+
CaseSensitiveTagHelperDescriptorComparer.Default);
183+
Assert.Empty(responseData.Errors);
184+
Assert.True(handled);
185+
}
186+
187+
[Fact]
188+
public void ProcessMessage_ResolveTagHelperDescriptors_ResolvesDesignTimeTagHelperDescriptors()
189+
{
190+
// Arrange
191+
var expectedSourceLocation = new SourceLocation(absoluteIndex: 1, lineIndex: 2, characterIndex: 3);
192+
var sourceLocationJson = JsonConvert.SerializeObject(expectedSourceLocation);
193+
var messageData = new JObject
194+
{
195+
{ "AssemblyName", CustomTagHelperAssembly },
196+
{ "SourceLocation", JObject.Parse(sourceLocationJson) }
197+
};
198+
var message = new JObject
199+
{
200+
{ "MessageType", RazorPluginMessageTypes.ResolveTagHelperDescriptors },
201+
{ "Data", messageData },
202+
};
203+
ResolveTagHelperDescriptorsMessage responseMessage = null;
204+
var messageBroker = new TestPluginMessageBroker(
205+
data => responseMessage = (ResolveTagHelperDescriptorsMessage)data);
206+
var assembly = new TestAssembly(typeof(DesignTimeTagHelper));
207+
var assemblyNameLookups = new Dictionary<string, Assembly>
208+
{
209+
{ CustomTagHelperAssembly, assembly }
210+
};
211+
var assemblyLoadContext = new TestAssemblyLoadContext(assemblyNameLookups);
212+
var plugin = new RazorPlugin(messageBroker);
213+
var expectedDescriptor = new TagHelperDescriptor(
214+
DefaultPrefix,
215+
"design-time",
216+
typeof(DesignTimeTagHelper).FullName,
217+
typeof(DesignTimeTagHelper).Assembly.GetName().Name,
218+
attributes: new TagHelperAttributeDescriptor[0],
219+
requiredAttributes: new string[0],
220+
designTimeDescriptor: new TagHelperDesignTimeDescriptor(
221+
summary: null,
222+
remarks: null,
223+
outputElementHint: "strong"));
224+
225+
// Act
226+
var handled = plugin.ProcessMessage(message, assemblyLoadContext);
227+
228+
// Assert
229+
Assert.NotNull(responseMessage);
230+
Assert.Equal(
231+
RazorPluginMessageTypes.ResolveTagHelperDescriptors,
232+
responseMessage.MessageType,
233+
StringComparer.Ordinal);
234+
var responseData = responseMessage.Data;
235+
Assert.Equal(CustomTagHelperAssembly, responseData.AssemblyName, StringComparer.Ordinal);
236+
var actualDescriptor = Assert.Single(responseData.Descriptors);
237+
Assert.Equal(expectedDescriptor, actualDescriptor, CaseSensitiveTagHelperDescriptorComparer.Default);
179238
Assert.Empty(responseData.Errors);
180239
Assert.True(handled);
181240
}
@@ -244,4 +303,9 @@ Assembly IAssemblyLoadContext.Load(AssemblyName assemblyName)
244303
public class CustomTagHelper : TagHelper
245304
{
246305
}
306+
307+
[OutputElementHint("strong")]
308+
public class DesignTimeTagHelper : TagHelper
309+
{
310+
}
247311
}

test/Microsoft.AspNet.Tooling.Razor.Test/project.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
{
22
"dependencies": {
33
"Microsoft.AspNet.Tooling.Razor": "1.0.0-*",
4+
"Microsoft.AspNet.Razor.Test.Sources": {
5+
"version": "1.0.0-*",
6+
"type": "build"
7+
},
8+
"Microsoft.Framework.HashCodeCombiner.Sources": {
9+
"version": "1.0.0-*",
10+
"type": "build"
11+
},
412
"xunit.runner.aspnet": "2.0.0-aspnet-*"
513
},
614
"frameworks": {

0 commit comments

Comments
 (0)