11
11
12
12
namespace Elastic . Clients . Elasticsearch ;
13
13
14
- /// <summary>
15
- /// </summary>
16
- /// <remarks>
17
- /// Not intended to be used directly.
18
- /// </remarks>
19
14
public abstract class NamespacedClientProxy
20
15
{
16
+ private const string InvalidOperation = "The client has not been initialised for proper usage as may have been partially mocked. Ensure you are using a " +
17
+ "new instance of ElasticsearchClient to perform requests over a network to Elasticsearch." ;
18
+
21
19
private readonly ElasticsearchClient _client ;
20
+
21
+ /// <summary>
22
+ /// Initializes a new instance for mocking.
23
+ /// </summary>
24
+ protected NamespacedClientProxy ( ) { }
22
25
23
26
internal NamespacedClientProxy ( ElasticsearchClient client ) => _client = client ;
24
27
@@ -28,33 +31,53 @@ internal TResponse DoRequest<TRequest, TResponse, TRequestParameters>(
28
31
Action < IRequestConfiguration > ? forceConfiguration = null )
29
32
where TRequest : Request < TRequestParameters >
30
33
where TResponse : ElasticsearchResponse , new ( )
31
- where TRequestParameters : RequestParameters , new ( ) =>
32
- _client . DoRequest < TRequest , TResponse , TRequestParameters > ( request , parameters , forceConfiguration ) ;
34
+ where TRequestParameters : RequestParameters , new ( )
35
+ {
36
+ if ( _client is null )
37
+ ThrowHelper . ThrowInvalidOperationException ( InvalidOperation ) ;
38
+
39
+ return _client . DoRequest < TRequest , TResponse , TRequestParameters > ( request , parameters , forceConfiguration ) ;
40
+ }
33
41
34
42
internal TResponse DoRequest < TRequest , TResponse , TRequestParameters > (
35
43
TRequest request ,
36
44
Action < IRequestConfiguration > ? forceConfiguration = null )
37
45
where TRequest : Request < TRequestParameters >
38
46
where TResponse : ElasticsearchResponse , new ( )
39
- where TRequestParameters : RequestParameters , new ( ) =>
40
- _client . DoRequest < TRequest , TResponse , TRequestParameters > ( request , forceConfiguration ) ;
47
+ where TRequestParameters : RequestParameters , new ( )
48
+ {
49
+ if ( _client is null )
50
+ ThrowHelper . ThrowInvalidOperationException ( InvalidOperation ) ;
51
+
52
+ return _client . DoRequest < TRequest , TResponse , TRequestParameters > ( request , forceConfiguration ) ;
53
+ }
41
54
42
55
internal Task < TResponse > DoRequestAsync < TRequest , TResponse , TRequestParameters > (
43
56
TRequest request ,
44
- TRequestParameters parameters ,
45
57
CancellationToken cancellationToken = default )
46
58
where TRequest : Request < TRequestParameters >
47
59
where TResponse : ElasticsearchResponse , new ( )
48
- where TRequestParameters : RequestParameters , new ( ) =>
49
- _client . DoRequestAsync < TRequest , TResponse , TRequestParameters > ( request , parameters , cancellationToken : cancellationToken ) ;
60
+ where TRequestParameters : RequestParameters , new ( )
61
+ {
62
+ if ( _client is null )
63
+ ThrowHelper . ThrowInvalidOperationException ( InvalidOperation ) ;
64
+
65
+ return _client . DoRequestAsync < TRequest , TResponse , TRequestParameters > ( request , cancellationToken : cancellationToken ) ;
66
+ }
50
67
51
68
internal Task < TResponse > DoRequestAsync < TRequest , TResponse , TRequestParameters > (
52
69
TRequest request ,
70
+ TRequestParameters parameters ,
53
71
CancellationToken cancellationToken = default )
54
72
where TRequest : Request < TRequestParameters >
55
73
where TResponse : ElasticsearchResponse , new ( )
56
- where TRequestParameters : RequestParameters , new ( ) =>
57
- _client . DoRequestAsync < TRequest , TResponse , TRequestParameters > ( request , cancellationToken : cancellationToken ) ;
74
+ where TRequestParameters : RequestParameters , new ( )
75
+ {
76
+ if ( _client is null )
77
+ ThrowHelper . ThrowInvalidOperationException ( InvalidOperation ) ;
78
+
79
+ return _client . DoRequestAsync < TRequest , TResponse , TRequestParameters > ( request , parameters , cancellationToken : cancellationToken ) ;
80
+ }
58
81
59
82
internal Task < TResponse > DoRequestAsync < TRequest , TResponse , TRequestParameters > (
60
83
TRequest request ,
@@ -63,6 +86,11 @@ internal Task<TResponse> DoRequestAsync<TRequest, TResponse, TRequestParameters>
63
86
CancellationToken cancellationToken = default )
64
87
where TRequest : Request < TRequestParameters >
65
88
where TResponse : ElasticsearchResponse , new ( )
66
- where TRequestParameters : RequestParameters , new ( ) =>
67
- _client . DoRequestAsync < TRequest , TResponse , TRequestParameters > ( request , parameters , forceConfiguration , cancellationToken ) ;
89
+ where TRequestParameters : RequestParameters , new ( )
90
+ {
91
+ if ( _client is null )
92
+ ThrowHelper . ThrowInvalidOperationException ( InvalidOperation ) ;
93
+
94
+ return _client . DoRequestAsync < TRequest , TResponse , TRequestParameters > ( request , parameters , forceConfiguration , cancellationToken ) ;
95
+ }
68
96
}
0 commit comments