@@ -77,33 +77,18 @@ public sealed class SocketsHttpHandler_HttpClientHandler_ResponseDrain_Test : Ht
7777 {
7878 protected override bool UseSocketsHttpHandler => true ;
7979
80- // Set MaxResponseDrainSize. TODO #27329: Avoid reflection once exposed publicly.
81- private int GetMaxResponseDrainSize ( SocketsHttpHandler handler ) =>
82- ( int ) typeof ( SocketsHttpHandler ) . GetProperty ( "MaxResponseDrainSize" , BindingFlags . NonPublic | BindingFlags . Instance ) . GetValue ( handler ) ;
83- private void SetMaxResponseDrainSize ( SocketsHttpHandler handler , int value )
84- {
85- try
86- {
87- typeof ( SocketsHttpHandler ) . GetProperty ( "MaxResponseDrainSize" , BindingFlags . NonPublic | BindingFlags . Instance ) . SetValue ( handler , value ) ;
88- }
89- catch ( TargetInvocationException tie )
90- {
91- throw tie . InnerException ;
92- }
93- }
94-
9580 [ Fact ]
9681 public void MaxResponseDrainSize_Roundtrips ( )
9782 {
9883 using ( var handler = new SocketsHttpHandler ( ) )
9984 {
100- Assert . Equal ( 1024 * 1024 , GetMaxResponseDrainSize ( handler ) ) ;
85+ Assert . Equal ( 1024 * 1024 , handler . MaxResponseDrainSize ) ;
10186
102- SetMaxResponseDrainSize ( handler , 0 ) ;
103- Assert . Equal ( 0 , GetMaxResponseDrainSize ( handler ) ) ;
87+ handler . MaxResponseDrainSize = 0 ;
88+ Assert . Equal ( 0 , handler . MaxResponseDrainSize ) ;
10489
105- SetMaxResponseDrainSize ( handler , int . MaxValue ) ;
106- Assert . Equal ( int . MaxValue , GetMaxResponseDrainSize ( handler ) ) ;
90+ handler . MaxResponseDrainSize = int . MaxValue ;
91+ Assert . Equal ( int . MaxValue , handler . MaxResponseDrainSize ) ;
10792 }
10893 }
10994
@@ -112,12 +97,12 @@ public void MaxResponseDrainSize_InvalidArgument_Throws()
11297 {
11398 using ( var handler = new SocketsHttpHandler ( ) )
11499 {
115- Assert . Equal ( 1024 * 1024 , GetMaxResponseDrainSize ( handler ) ) ;
100+ Assert . Equal ( 1024 * 1024 , handler . MaxResponseDrainSize ) ;
116101
117- AssertExtensions . Throws < ArgumentOutOfRangeException > ( "value" , ( ) => SetMaxResponseDrainSize ( handler , - 1 ) ) ;
118- AssertExtensions . Throws < ArgumentOutOfRangeException > ( "value" , ( ) => SetMaxResponseDrainSize ( handler , int . MinValue ) ) ;
102+ AssertExtensions . Throws < ArgumentOutOfRangeException > ( "value" , ( ) => handler . MaxResponseDrainSize = - 1 ) ;
103+ AssertExtensions . Throws < ArgumentOutOfRangeException > ( "value" , ( ) => handler . MaxResponseDrainSize = int . MinValue ) ;
119104
120- Assert . Equal ( 1024 * 1024 , GetMaxResponseDrainSize ( handler ) ) ;
105+ Assert . Equal ( 1024 * 1024 , handler . MaxResponseDrainSize ) ;
121106 }
122107 }
123108
@@ -127,10 +112,10 @@ public void MaxResponseDrainSize_SetAfterUse_Throws()
127112 using ( var handler = new SocketsHttpHandler ( ) )
128113 using ( var client = new HttpClient ( handler ) )
129114 {
130- SetMaxResponseDrainSize ( handler , 1 ) ;
115+ handler . MaxResponseDrainSize = 1 ;
131116 client . GetAsync ( "http://" + Guid . NewGuid ( ) . ToString ( "N" ) ) ; // ignoring failure
132- Assert . Equal ( 1 , GetMaxResponseDrainSize ( handler ) ) ;
133- Assert . Throws < InvalidOperationException > ( ( ) => SetMaxResponseDrainSize ( handler , 1 ) ) ;
117+ Assert . Equal ( 1 , handler . MaxResponseDrainSize ) ;
118+ Assert . Throws < InvalidOperationException > ( ( ) => handler . MaxResponseDrainSize = 1 ) ;
134119 }
135120 }
136121
@@ -145,7 +130,7 @@ await LoopbackServer.CreateClientAndServerAsync(
145130 async url =>
146131 {
147132 var handler = new SocketsHttpHandler ( ) ;
148- SetMaxResponseDrainSize ( handler , maxDrainSize ) ;
133+ handler . MaxResponseDrainSize = maxDrainSize ;
149134
150135 // Set MaxConnectionsPerServer to 1. This will ensure we will wait for the previous request to drain (or fail to)
151136 handler . MaxConnectionsPerServer = 1 ;
@@ -190,7 +175,7 @@ await LoopbackServer.CreateClientAndServerAsync(
190175 async url =>
191176 {
192177 var handler = new SocketsHttpHandler ( ) ;
193- SetMaxResponseDrainSize ( handler , maxDrainSize ) ;
178+ handler . MaxResponseDrainSize = maxDrainSize ;
194179
195180 // Set MaxConnectionsPerServer to 1. This will ensure we will wait for the previous request to drain (or fail to)
196181 handler . MaxConnectionsPerServer = 1 ;
0 commit comments