1
1
// Licensed to the .NET Foundation under one or more agreements.
2
2
// The .NET Foundation licenses this file to you under the MIT license.
3
3
4
+ using System . Collections . Generic ;
4
5
using Xunit ;
5
- using static Microsoft . AspNetCore . Razor . Language . CommonMetadata ;
6
6
7
7
namespace Microsoft . AspNetCore . Razor . Language ;
8
8
@@ -12,34 +12,34 @@ public class DefaultRequiredAttributeDescriptorBuilderTest
12
12
public void Build_DisplayNameIsName_NameComparisonFullMatch ( )
13
13
{
14
14
// Arrange
15
- var tagHelperBuilder = new TagHelperDescriptorBuilder ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" ) ;
16
- var tagMatchingRuleBuilder = new TagMatchingRuleDescriptorBuilder ( tagHelperBuilder ) ;
17
- var builder = new RequiredAttributeDescriptorBuilder ( tagMatchingRuleBuilder ) ;
18
-
19
- builder . Name ( "asp-action" , RequiredAttributeNameComparison . FullMatch ) ;
15
+ var builder = TagHelperDescriptorBuilder . Create ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" )
16
+ . TagMatchingRuleDescriptor ( rule => rule
17
+ . RequireAttributeDescriptor ( attribute => attribute
18
+ . Name ( "asp-action" , RequiredAttributeNameComparison . FullMatch ) ) ) ;
20
19
21
20
// Act
22
- var descriptor = builder . Build ( ) ;
21
+ var tagHelper = builder . Build ( ) ;
22
+ var attribute = tagHelper . TagMatchingRules [ 0 ] . Attributes [ 0 ] ;
23
23
24
24
// Assert
25
- Assert . Equal ( "asp-action" , descriptor . DisplayName ) ;
25
+ Assert . Equal ( "asp-action" , attribute . DisplayName ) ;
26
26
}
27
27
28
28
[ Fact ]
29
29
public void Build_DisplayNameIsNameWithDots_NameComparisonPrefixMatch ( )
30
30
{
31
31
// Arrange
32
- var tagHelperBuilder = new TagHelperDescriptorBuilder ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" ) ;
33
- var tagMatchingRuleBuilder = new TagMatchingRuleDescriptorBuilder ( tagHelperBuilder ) ;
34
- var builder = new RequiredAttributeDescriptorBuilder ( tagMatchingRuleBuilder ) ;
35
-
36
- builder . Name ( "asp-route-" , RequiredAttributeNameComparison . PrefixMatch ) ;
32
+ var builder = TagHelperDescriptorBuilder . Create ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" )
33
+ . TagMatchingRuleDescriptor ( rule => rule
34
+ . RequireAttributeDescriptor ( attribute => attribute
35
+ . Name ( "asp-route-" , RequiredAttributeNameComparison . PrefixMatch ) ) ) ;
37
36
38
37
// Act
39
- var descriptor = builder . Build ( ) ;
38
+ var tagHelper = builder . Build ( ) ;
39
+ var attribute = tagHelper . TagMatchingRules [ 0 ] . Attributes [ 0 ] ;
40
40
41
41
// Assert
42
- Assert . Equal ( "asp-route-..." , descriptor . DisplayName ) ;
42
+ Assert . Equal ( "asp-route-..." , attribute . DisplayName ) ;
43
43
}
44
44
45
45
[ Fact ]
@@ -49,23 +49,24 @@ public void Metadata_Same()
49
49
// they should share the instance.
50
50
51
51
// Arrange
52
- var tagHelperBuilder = new TagHelperDescriptorBuilder ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" ) ;
53
- var tagMatchingRuleBuilder = new TagMatchingRuleDescriptorBuilder ( tagHelperBuilder ) ;
54
-
55
- var metadata = MetadataCollection . Create ( PropertyName ( "SomeProperty" ) ) ;
52
+ var metadata = MetadataCollection . Create ( KeyValuePair . Create < string , string ? > ( "TestKey" , "TestValue" ) ) ;
56
53
57
- var builder1 = new RequiredAttributeDescriptorBuilder ( tagMatchingRuleBuilder ) ;
58
- var builder2 = new RequiredAttributeDescriptorBuilder ( tagMatchingRuleBuilder ) ;
59
-
60
- builder1 . SetMetadata ( metadata ) ;
61
- builder2 . SetMetadata ( metadata ) ;
54
+ var builder = TagHelperDescriptorBuilder . Create ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" )
55
+ . TagMatchingRuleDescriptor ( rule => rule
56
+ . RequireAttributeDescriptor ( attribute => attribute
57
+ . Name ( "test1" )
58
+ . SetMetadata ( metadata ) )
59
+ . RequireAttributeDescriptor ( attribute => attribute
60
+ . Name ( "test2" )
61
+ . SetMetadata ( metadata ) ) ) ;
62
62
63
63
// Act
64
- var descriptor1 = builder1 . Build ( ) ;
65
- var descriptor2 = builder2 . Build ( ) ;
64
+ var tagHelper = builder . Build ( ) ;
65
+ var attribute1 = tagHelper . TagMatchingRules [ 0 ] . Attributes [ 0 ] ;
66
+ var attribute2 = tagHelper . TagMatchingRules [ 0 ] . Attributes [ 1 ] ;
66
67
67
68
// Assert
68
- Assert . Same ( descriptor1 . Metadata , descriptor2 . Metadata ) ;
69
+ Assert . Same ( attribute1 . Metadata , attribute2 . Metadata ) ;
69
70
}
70
71
71
72
[ Fact ]
@@ -75,20 +76,21 @@ public void Metadata_NotSame()
75
76
// they do not share the instance.
76
77
77
78
// Arrange
78
- var tagHelperBuilder = new TagHelperDescriptorBuilder ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" ) ;
79
- var tagMatchingRuleBuilder = new TagMatchingRuleDescriptorBuilder ( tagHelperBuilder ) ;
80
-
81
- var builder1 = new RequiredAttributeDescriptorBuilder ( tagMatchingRuleBuilder ) ;
82
- var builder2 = new RequiredAttributeDescriptorBuilder ( tagMatchingRuleBuilder ) ;
83
-
84
- builder1 . Metadata . Add ( PropertyName ( "SomeProperty" ) ) ;
85
- builder2 . Metadata . Add ( PropertyName ( "SomeProperty" ) ) ;
79
+ var builder = TagHelperDescriptorBuilder . Create ( TagHelperConventions . DefaultKind , "TestTagHelper" , "Test" )
80
+ . TagMatchingRuleDescriptor ( rule => rule
81
+ . RequireAttributeDescriptor ( attribute => attribute
82
+ . Name ( "test1" )
83
+ . Metadata . Add ( "TestKey" , "TestValue" ) )
84
+ . RequireAttributeDescriptor ( attribute => attribute
85
+ . Name ( "test2" )
86
+ . Metadata . Add ( "TestKey" , "TestValue" ) ) ) ;
86
87
87
88
// Act
88
- var descriptor1 = builder1 . Build ( ) ;
89
- var descriptor2 = builder2 . Build ( ) ;
89
+ var tagHelper = builder . Build ( ) ;
90
+ var attribute1 = tagHelper . TagMatchingRules [ 0 ] . Attributes [ 0 ] ;
91
+ var attribute2 = tagHelper . TagMatchingRules [ 0 ] . Attributes [ 1 ] ;
90
92
91
93
// Assert
92
- Assert . NotSame ( descriptor1 . Metadata , descriptor2 . Metadata ) ;
94
+ Assert . NotSame ( attribute1 . Metadata , attribute2 . Metadata ) ;
93
95
}
94
96
}
0 commit comments