40
40
import org .mockito .ArgumentCaptor ;
41
41
import org .mockito .Mock ;
42
42
import org .mockito .runners .MockitoJUnitRunner ;
43
- import software .amazon .awssdk .core .Response ;
44
- import software .amazon .awssdk .core .async .EmptyPublisher ;
45
43
import software .amazon .awssdk .core .client .config .SdkAdvancedAsyncClientOption ;
46
44
import software .amazon .awssdk .core .client .config .SdkClientConfiguration ;
47
45
import software .amazon .awssdk .core .http .ExecutionContext ;
48
46
import software .amazon .awssdk .core .http .NoopTestRequest ;
49
47
import software .amazon .awssdk .core .interceptor .ExecutionAttributes ;
50
48
import software .amazon .awssdk .core .internal .http .HttpClientDependencies ;
51
49
import software .amazon .awssdk .core .internal .http .RequestExecutionContext ;
52
- import software .amazon .awssdk .core .internal .http .TransformingAsyncResponseHandler ;
53
50
import software .amazon .awssdk .core .internal .http .timers .ClientExecutionAndRequestTimerTestUtils ;
54
51
import software .amazon .awssdk .core .internal .util .AsyncResponseHandlerTestUtils ;
55
52
import software .amazon .awssdk .http .SdkHttpFullRequest ;
56
53
import software .amazon .awssdk .http .SdkHttpMethod ;
57
54
import software .amazon .awssdk .http .async .AsyncExecuteRequest ;
58
55
import software .amazon .awssdk .http .async .SdkAsyncHttpClient ;
59
56
import software .amazon .awssdk .metrics .MetricCollector ;
60
- import software .amazon .awssdk .metrics .NoOpMetricCollector ;
61
57
import utils .ValidSdkObjects ;
62
58
63
59
@ RunWith (MockitoJUnitRunner .class )
@@ -69,7 +65,7 @@ public class MakeAsyncHttpRequestStageTest {
69
65
@ Mock
70
66
private ScheduledExecutorService timeoutExecutor ;
71
67
72
- private CompletableFuture <Void > clientExecuteFuture = new CompletableFuture <>( );
68
+ private CompletableFuture <Void > clientExecuteFuture = CompletableFuture . completedFuture ( null );
73
69
74
70
@ Mock
75
71
private ScheduledFuture future ;
@@ -111,86 +107,8 @@ public void apiCallAttemptTimeoutNotEnabled_shouldNotInvokeExecutor() throws Exc
111
107
verify (timeoutExecutor , never ()).schedule (any (Runnable .class ), anyLong (), any (TimeUnit .class ));
112
108
}
113
109
114
- @ Test
115
- public void success_stageShouldNotCompleteBeforeHttpClientFutureIsCompleted () throws Exception {
116
- TransformingAsyncResponseHandler <Response <Object >> handler =
117
- AsyncResponseHandlerTestUtils .noOpResponseHandler ();
118
-
119
- stage = new MakeAsyncHttpRequestStage <>(handler , clientDependencies (null ));
120
- CompletableFuture <SdkHttpFullRequest > requestFuture =
121
- CompletableFuture .completedFuture (ValidSdkObjects .sdkHttpFullRequest ().build ());
122
-
123
- CompletableFuture <?> result = stage .execute (requestFuture , requestContext ());
124
-
125
- assertThat (result .isDone ()).isFalse ();
126
- handler .onStream (new EmptyPublisher <>());
127
- assertThat (result .isDone ()).isFalse ();
128
- clientExecuteFuture .complete (null );
129
- assertThat (result .isDone ()).isTrue ();
130
- assertThat (result .isCompletedExceptionally ()).isFalse ();
131
- }
132
-
133
- @ Test
134
- public void success_stageShouldNotCompleteBeforeResponseHandlerFutureIsCompleted () throws Exception {
135
- TransformingAsyncResponseHandler <Response <Object >> handler =
136
- AsyncResponseHandlerTestUtils .noOpResponseHandler ();
137
-
138
- stage = new MakeAsyncHttpRequestStage <>(handler , clientDependencies (null ));
139
- CompletableFuture <SdkHttpFullRequest > requestFuture =
140
- CompletableFuture .completedFuture (ValidSdkObjects .sdkHttpFullRequest ().build ());
141
-
142
- CompletableFuture <?> result = stage .execute (requestFuture , requestContext ());
143
-
144
- assertThat (result .isDone ()).isFalse ();
145
- clientExecuteFuture .complete (null );
146
- assertThat (result .isDone ()).isFalse ();
147
- handler .onStream (new EmptyPublisher <>());
148
- assertThat (result .isDone ()).isTrue ();
149
- assertThat (result .isCompletedExceptionally ()).isFalse ();
150
- }
151
-
152
- @ Test
153
- public void failure_stageShouldNotCompleteBeforeHttpClientFutureIsCompleted () throws Exception {
154
- TransformingAsyncResponseHandler <Response <Object >> handler =
155
- AsyncResponseHandlerTestUtils .noOpResponseHandler ();
156
-
157
- stage = new MakeAsyncHttpRequestStage <>(handler , clientDependencies (null ));
158
- CompletableFuture <SdkHttpFullRequest > requestFuture =
159
- CompletableFuture .completedFuture (ValidSdkObjects .sdkHttpFullRequest ().build ());
160
-
161
- CompletableFuture <?> result = stage .execute (requestFuture , requestContext ());
162
-
163
- assertThat (result .isDone ()).isFalse ();
164
- handler .onError (new Throwable ());
165
- assertThat (result .isDone ()).isFalse ();
166
- clientExecuteFuture .complete (null );
167
- assertThat (result .isDone ()).isTrue ();
168
- assertThat (result .isCompletedExceptionally ()).isTrue ();
169
- }
170
-
171
- @ Test
172
- public void failure_stageShouldNotCompleteBeforeResponseHandlerFutureIsCompleted () throws Exception {
173
- TransformingAsyncResponseHandler <Response <Object >> handler =
174
- AsyncResponseHandlerTestUtils .noOpResponseHandler ();
175
-
176
- stage = new MakeAsyncHttpRequestStage <>(handler , clientDependencies (null ));
177
- CompletableFuture <SdkHttpFullRequest > requestFuture =
178
- CompletableFuture .completedFuture (ValidSdkObjects .sdkHttpFullRequest ().build ());
179
-
180
- CompletableFuture <?> result = stage .execute (requestFuture , requestContext ());
181
-
182
- assertThat (result .isDone ()).isFalse ();
183
- clientExecuteFuture .completeExceptionally (new Throwable ());
184
- assertThat (result .isDone ()).isFalse ();
185
- handler .onStream (new EmptyPublisher <>());
186
- assertThat (result .isDone ()).isTrue ();
187
- assertThat (result .isCompletedExceptionally ()).isTrue ();
188
- }
189
-
190
110
@ Test
191
111
public void testExecute_contextContainsMetricCollector_addsChildToExecuteRequest () {
192
- clientExecuteFuture .complete (null );
193
-
194
112
stage = new MakeAsyncHttpRequestStage <>(
195
113
combinedAsyncResponseHandler (AsyncResponseHandlerTestUtils .noOpResponseHandler (),
196
114
AsyncResponseHandlerTestUtils .noOpResponseHandler ()),
@@ -250,11 +168,9 @@ private HttpClientDependencies clientDependencies(Duration timeout) {
250
168
251
169
private RequestExecutionContext requestContext () {
252
170
ExecutionContext executionContext = ClientExecutionAndRequestTimerTestUtils .executionContext (ValidSdkObjects .sdkHttpFullRequest ().build ());
253
- RequestExecutionContext requestContext = RequestExecutionContext .builder ()
254
- .executionContext (executionContext )
255
- .originalRequest (NoopTestRequest .builder ().build ())
256
- .build ();
257
- requestContext .attemptMetricCollector (NoOpMetricCollector .create ());
258
- return requestContext ;
171
+ return RequestExecutionContext .builder ()
172
+ .executionContext (executionContext )
173
+ .originalRequest (NoopTestRequest .builder ().build ())
174
+ .build ();
259
175
}
260
176
}
0 commit comments