@@ -69,7 +69,7 @@ public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_ReturnsSupp
69
69
}
70
70
71
71
[ Fact ]
72
- public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_SetsProviderGlobalConfig ( )
72
+ public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_StaticMatch_DoesNotSetProviderGlobalConfig ( )
73
73
{
74
74
var context = new TestCommandContext ( ) ;
75
75
var registry = new HostProviderRegistry ( context ) ;
@@ -90,14 +90,41 @@ public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_SetsProvide
90
90
91
91
IHostProvider result = await registry . GetProviderAsync ( input ) ;
92
92
93
+ Assert . Same ( providerMock . Object , result ) ;
94
+ Assert . False ( context . Git . Configuration . Global . TryGetValue ( configKey , out _ ) ) ;
95
+ }
96
+
97
+ [ Fact ]
98
+ public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_DynamicMatch_SetsProviderGlobalConfig ( )
99
+ {
100
+ var context = new TestCommandContext ( ) ;
101
+ var registry = new HostProviderRegistry ( context ) ;
102
+ var remote = new Uri ( "https://example.com" ) ;
103
+ InputArguments input = CreateInputArguments ( remote ) ;
104
+
105
+ string providerId = "myProvider" ;
106
+ string configKey = string . Format ( CultureInfo . InvariantCulture ,
107
+ "{0}.https://example.com.{1}" ,
108
+ Constants . GitConfiguration . Credential . SectionName ,
109
+ Constants . GitConfiguration . Credential . Provider ) ;
110
+
111
+ var providerMock = new Mock < IHostProvider > ( ) ;
112
+ providerMock . Setup ( x => x . Id ) . Returns ( providerId ) ;
113
+ providerMock . Setup ( x => x . IsSupported ( It . IsAny < InputArguments > ( ) ) ) . Returns ( false ) ;
114
+ providerMock . Setup ( x => x . IsSupported ( It . IsAny < HttpResponseMessage > ( ) ) ) . Returns ( true ) ;
115
+
116
+ registry . Register ( providerMock . Object , HostProviderPriority . Normal ) ;
117
+
118
+ IHostProvider result = await registry . GetProviderAsync ( input ) ;
119
+
93
120
Assert . Same ( providerMock . Object , result ) ;
94
121
Assert . True ( context . Git . Configuration . Global . TryGetValue ( configKey , out IList < string > config ) ) ;
95
122
Assert . Equal ( 1 , config . Count ) ;
96
123
Assert . Equal ( providerId , config [ 0 ] ) ;
97
124
}
98
125
99
126
[ Fact ]
100
- public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_SetsProviderGlobalConfig_HostWithPath ( )
127
+ public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_DynamicMatch_SetsProviderGlobalConfig_HostWithPath ( )
101
128
{
102
129
var context = new TestCommandContext ( ) ;
103
130
var registry = new HostProviderRegistry ( context ) ;
@@ -112,7 +139,8 @@ public async Task HostProviderRegistry_GetProvider_Auto_HasProviders_SetsProvide
112
139
113
140
var providerMock = new Mock < IHostProvider > ( ) ;
114
141
providerMock . Setup ( x => x . Id ) . Returns ( providerId ) ;
115
- providerMock . Setup ( x => x . IsSupported ( It . IsAny < InputArguments > ( ) ) ) . Returns ( true ) ;
142
+ providerMock . Setup ( x => x . IsSupported ( It . IsAny < InputArguments > ( ) ) ) . Returns ( false ) ;
143
+ providerMock . Setup ( x => x . IsSupported ( It . IsAny < HttpResponseMessage > ( ) ) ) . Returns ( true ) ;
116
144
117
145
registry . Register ( providerMock . Object , HostProviderPriority . Normal ) ;
118
146
0 commit comments