11using System ;
22using System . Collections . Generic ;
3+ using System . Diagnostics ;
34using System . IO ;
45using System . Net ;
56using System . Text ;
@@ -13,23 +14,27 @@ public class InMemoryConnection : HttpConnection
1314 private byte [ ] _fixedResultBytes = Encoding . UTF8 . GetBytes ( "{ \" USING NEST IN MEMORY CONNECTION\" : null }" ) ;
1415 private int _statusCode ;
1516
16- public InMemoryConnection ( )
17- : base ( new ConnectionConfiguration ( ) )
17+ public List < Tuple < string , Uri , byte [ ] > > Requests = new List < Tuple < string , Uri , byte [ ] > > ( ) ;
18+
19+ public bool RecordRequests { get ; set ; }
20+
21+ public InMemoryConnection ( ) : base ( new ConnectionConfiguration ( ) )
1822 {
1923
2024 }
21- public InMemoryConnection ( IConnectionConfigurationValues settings )
22- : base ( settings )
25+ public InMemoryConnection ( IConnectionConfigurationValues settings ) : base ( settings )
2326 {
2427 _statusCode = 200 ;
2528 }
2629
27- public InMemoryConnection ( IConnectionConfigurationValues settings , string fixedResult , int statusCode = 200 )
28- : this ( settings )
30+ public InMemoryConnection ( IConnectionConfigurationValues settings , string fixedResult , int statusCode = 200 ) : this ( settings )
2931 {
3032 _fixedResultBytes = Encoding . UTF8 . GetBytes ( fixedResult ) ;
3133 _statusCode = statusCode ;
3234 }
35+
36+
37+
3338
3439 protected override ElasticsearchResponse < Stream > DoSynchronousRequest ( HttpWebRequest request , byte [ ] data = null , IRequestConfiguration requestSpecificConfig = null )
3540 {
@@ -45,6 +50,12 @@ private ElasticsearchResponse<Stream> ReturnConnectionStatus(HttpWebRequest requ
4550 cs . Response = new MemoryStream ( _fixedResultBytes ) ;
4651 if ( this . ConnectionSettings . ConnectionStatusHandler != null )
4752 this . ConnectionSettings . ConnectionStatusHandler ( cs ) ;
53+
54+ if ( this . RecordRequests )
55+ {
56+ this . Requests . Add ( Tuple . Create ( method , request . RequestUri , data ) ) ;
57+ }
58+
4859 return cs ;
4960 }
5061
0 commit comments