@@ -161,6 +161,38 @@ public async Task DelegationFeaturesAreNull()
161
161
_ = await SendRequestAsync ( delegatorAddress ) ;
162
162
}
163
163
164
+ [ ConditionalFact ]
165
+ [ DelegateSupportedCondition ( true ) ]
166
+ public async Task UpdateDelegationRuleTest ( )
167
+ {
168
+ var queueName = Guid . NewGuid ( ) . ToString ( ) ;
169
+ using var receiver = Utilities . CreateHttpServer ( out var receiverAddress , async httpContext =>
170
+ {
171
+ await httpContext . Response . WriteAsync ( _expectedResponseString ) ;
172
+ } ,
173
+ options =>
174
+ {
175
+ options . RequestQueueName = queueName ;
176
+ } ) ;
177
+
178
+ DelegationRule destination = default ;
179
+
180
+ using var delegator = Utilities . CreateHttpServer ( out var delegatorAddress , httpContext =>
181
+ {
182
+ var delegateFeature = httpContext . Features . Get < IHttpSysRequestDelegationFeature > ( ) ;
183
+ delegateFeature . DelegateRequest ( destination ) ;
184
+ return Task . CompletedTask ;
185
+ } ) ;
186
+
187
+ var delegationProperty = delegator . Features . Get < IServerDelegationFeature > ( ) ;
188
+ destination = delegationProperty . CreateDelegationRule ( queueName , receiverAddress ) ;
189
+ destination ? . Dispose ( ) ;
190
+ destination = delegationProperty . CreateDelegationRule ( queueName , receiverAddress ) ;
191
+ var responseString = await SendRequestAsync ( delegatorAddress ) ;
192
+ Assert . Equal ( _expectedResponseString , responseString ) ;
193
+ destination ? . Dispose ( ) ;
194
+ }
195
+
164
196
private async Task < string > SendRequestAsync ( string uri )
165
197
{
166
198
using var client = new HttpClient ( ) ;
0 commit comments