1
1
// Copyright (c) .NET Foundation. All rights reserved.
2
2
// Licensed under the MIT license. See License.txt in the project root for license information.
3
3
4
- #nullable disable
5
-
6
4
using Microsoft . AspNetCore . Razor . Test . Common ;
7
- using Microsoft . CodeAnalysis . Razor ;
5
+ using Microsoft . VisualStudio . Razor . Logging ;
6
+ using Microsoft . VisualStudio . Shell ;
8
7
using Microsoft . VisualStudio . Shell . Interop ;
9
8
using Moq ;
10
9
using Xunit ;
11
10
using Xunit . Abstractions ;
12
11
13
12
namespace Microsoft . VisualStudio . Razor ;
14
13
15
- public class VisualStudioLSPEditorFeatureDetectorTest : ToolingTestBase
14
+ public class VisualStudioLSPEditorFeatureDetectorTest ( ITestOutputHelper testOutput ) : ToolingTestBase ( testOutput )
16
15
{
17
- public VisualStudioLSPEditorFeatureDetectorTest ( ITestOutputHelper testOutput )
18
- : base ( testOutput )
19
- {
20
- }
21
-
22
- [ Fact ]
16
+ [ UIFact ]
23
17
public void IsLSPEditorAvailable_ProjectSupported_ReturnsTrue ( )
24
18
{
25
19
// Arrange
26
- var logger = GetRazorLogger ( ) ;
27
- var featureDetector = new TestLSPEditorFeatureDetector ( logger )
20
+ using var activityLog = GetRazorActivityLog ( ) ;
21
+ var featureDetector = new TestLSPEditorFeatureDetector ( activityLog )
28
22
{
29
23
ProjectSupportsLSPEditorValue = true ,
30
24
} ;
@@ -36,12 +30,12 @@ public void IsLSPEditorAvailable_ProjectSupported_ReturnsTrue()
36
30
Assert . True ( result ) ;
37
31
}
38
32
39
- [ Fact ]
33
+ [ UIFact ]
40
34
public void IsLSPEditorAvailable_LegacyEditorEnabled_ReturnsFalse ( )
41
35
{
42
36
// Arrange
43
- var logger = GetRazorLogger ( ) ;
44
- var featureDetector = new TestLSPEditorFeatureDetector ( logger )
37
+ using var activityLog = GetRazorActivityLog ( ) ;
38
+ var featureDetector = new TestLSPEditorFeatureDetector ( activityLog )
45
39
{
46
40
UseLegacyEditor = true ,
47
41
ProjectSupportsLSPEditorValue = true ,
@@ -54,12 +48,12 @@ public void IsLSPEditorAvailable_LegacyEditorEnabled_ReturnsFalse()
54
48
Assert . False ( result ) ;
55
49
}
56
50
57
- [ Fact ]
51
+ [ UIFact ]
58
52
public void IsLSPEditorAvailable_IsVSRemoteClient_ReturnsTrue ( )
59
53
{
60
54
// Arrange
61
- var logger = GetRazorLogger ( ) ;
62
- var featureDetector = new TestLSPEditorFeatureDetector ( logger )
55
+ using var activityLog = GetRazorActivityLog ( ) ;
56
+ var featureDetector = new TestLSPEditorFeatureDetector ( activityLog )
63
57
{
64
58
IsVSRemoteClientValue = true ,
65
59
ProjectSupportsLSPEditorValue = true ,
@@ -72,12 +66,12 @@ public void IsLSPEditorAvailable_IsVSRemoteClient_ReturnsTrue()
72
66
Assert . True ( result ) ;
73
67
}
74
68
75
- [ Fact ]
69
+ [ UIFact ]
76
70
public void IsLSPEditorAvailable_UnsupportedProject_ReturnsFalse ( )
77
71
{
78
72
// Arrange
79
- var logger = GetRazorLogger ( ) ;
80
- var featureDetector = new TestLSPEditorFeatureDetector ( logger )
73
+ using var activityLog = GetRazorActivityLog ( ) ;
74
+ var featureDetector = new TestLSPEditorFeatureDetector ( activityLog )
81
75
{
82
76
ProjectSupportsLSPEditorValue = false ,
83
77
} ;
@@ -89,12 +83,12 @@ public void IsLSPEditorAvailable_UnsupportedProject_ReturnsFalse()
89
83
Assert . False ( result ) ;
90
84
}
91
85
92
- [ Fact ]
86
+ [ UIFact ]
93
87
public void IsRemoteClient_VSRemoteClient_ReturnsTrue ( )
94
88
{
95
89
// Arrange
96
- var logger = GetRazorLogger ( ) ;
97
- var featureDetector = new TestLSPEditorFeatureDetector ( logger )
90
+ using var activityLog = GetRazorActivityLog ( ) ;
91
+ var featureDetector = new TestLSPEditorFeatureDetector ( activityLog )
98
92
{
99
93
IsVSRemoteClientValue = true ,
100
94
} ;
@@ -106,12 +100,12 @@ public void IsRemoteClient_VSRemoteClient_ReturnsTrue()
106
100
Assert . True ( result ) ;
107
101
}
108
102
109
- [ Fact ]
103
+ [ UIFact ]
110
104
public void IsRemoteClient_LiveShareGuest_ReturnsTrue ( )
111
105
{
112
106
// Arrange
113
- var logger = GetRazorLogger ( ) ;
114
- var featureDetector = new TestLSPEditorFeatureDetector ( logger )
107
+ using var activityLog = GetRazorActivityLog ( ) ;
108
+ var featureDetector = new TestLSPEditorFeatureDetector ( activityLog )
115
109
{
116
110
IsLiveShareGuestValue = true ,
117
111
} ;
@@ -123,12 +117,12 @@ public void IsRemoteClient_LiveShareGuest_ReturnsTrue()
123
117
Assert . True ( result ) ;
124
118
}
125
119
126
- [ Fact ]
120
+ [ UIFact ]
127
121
public void IsRemoteClient_UnknownEnvironment_ReturnsFalse ( )
128
122
{
129
123
// Arrange
130
- var logger = GetRazorLogger ( ) ;
131
- var featureDetector = new TestLSPEditorFeatureDetector ( logger ) ;
124
+ using var activityLog = GetRazorActivityLog ( ) ;
125
+ var featureDetector = new TestLSPEditorFeatureDetector ( activityLog ) ;
132
126
133
127
// Act
134
128
var result = featureDetector . IsRemoteClient ( ) ;
@@ -137,22 +131,24 @@ public void IsRemoteClient_UnknownEnvironment_ReturnsFalse()
137
131
Assert . False ( result ) ;
138
132
}
139
133
140
- private static RazorLogger GetRazorLogger ( )
134
+ private RazorActivityLog GetRazorActivityLog ( )
141
135
{
142
- var mock = new Mock < RazorLogger > ( MockBehavior . Strict ) ;
143
- mock . Setup ( l => l . LogVerbose ( It . IsAny < string > ( ) ) ) ;
136
+ var vsActivityLogMock = new StrictMock < IVsActivityLog > ( ) ;
137
+ vsActivityLogMock
138
+ . Setup ( x => x . LogEntry ( It . IsAny < uint > ( ) , "Razor" , It . IsAny < string > ( ) ) )
139
+ . Returns ( VSConstants . S_OK ) ;
144
140
145
- return mock . Object ;
141
+ var serviceProviderMock = new StrictMock < IAsyncServiceProvider > ( ) ;
142
+ serviceProviderMock
143
+ . Setup ( x => x . GetServiceAsync ( typeof ( SVsActivityLog ) ) )
144
+ . ReturnsAsync ( vsActivityLogMock . Object ) ;
145
+
146
+ return new RazorActivityLog ( serviceProviderMock . Object , JoinableTaskContext ) ;
146
147
}
147
148
148
- #pragma warning disable CS0618 // Type or member is obsolete (Test constructor )
149
- private class TestLSPEditorFeatureDetector : VisualStudioLSPEditorFeatureDetector
149
+ private class TestLSPEditorFeatureDetector ( RazorActivityLog activityLog )
150
+ : VisualStudioLSPEditorFeatureDetector ( projectCapabilityResolver : null ! , activityLog )
150
151
{
151
- public TestLSPEditorFeatureDetector ( RazorLogger logger )
152
- : base ( projectCapabilityResolver : null , logger )
153
- {
154
- }
155
-
156
152
public bool UseLegacyEditor { get ; set ; }
157
153
158
154
public bool IsLiveShareGuestValue { get ; set ; }
@@ -171,7 +167,6 @@ public TestLSPEditorFeatureDetector(RazorLogger logger)
171
167
172
168
private protected override bool IsVSRemoteClient ( ) => IsVSRemoteClientValue ;
173
169
174
- private protected override bool ProjectSupportsLSPEditor ( string documentMoniker , IVsHierarchy hierarchy ) => ProjectSupportsLSPEditorValue ;
170
+ private protected override bool ProjectSupportsLSPEditor ( string documentMoniker , IVsHierarchy ? hierarchy ) => ProjectSupportsLSPEditorValue ;
175
171
}
176
- #pragma warning restore CS0618 // Type or member is obsolete (Test constructor)
177
172
}
0 commit comments