20
20
import static org .mockito .Matchers .any ;
21
21
import static org .mockito .Mockito .doThrow ;
22
22
import static org .mockito .Mockito .mock ;
23
- import static org .mockito .Mockito .times ;
23
+ import static org .mockito .Mockito .timeout ;
24
24
import static org .mockito .Mockito .verify ;
25
25
import static org .mockito .Mockito .verifyNoMoreInteractions ;
26
26
import static org .mockito .Mockito .when ;
@@ -93,33 +93,33 @@ public void upload_success_shouldInvokeListener() throws Exception {
93
93
.overrideConfiguration (b -> b .addListener (listener ))
94
94
.build ();
95
95
Upload upload = tm .upload (uploadRequest );
96
- upload .completionFuture ().join ();
97
96
98
97
ArgumentCaptor <TransferListener .Context .TransferInitiated > captor1 =
99
98
ArgumentCaptor .forClass (TransferListener .Context .TransferInitiated .class );
100
- verify (listener , times (1 )).transferInitiated (captor1 .capture ());
99
+ verify (listener , timeout ( 1000 ). times (1 )).transferInitiated (captor1 .capture ());
101
100
TransferListener .Context .TransferInitiated ctx1 = captor1 .getValue ();
102
101
assertThat (ctx1 .request ()).isSameAs (uploadRequest );
103
102
assertThat (ctx1 .progressSnapshot ().transferSizeInBytes ()).hasValue (contentLength );
104
103
assertThat (ctx1 .progressSnapshot ().bytesTransferred ()).isZero ();
105
104
106
105
ArgumentCaptor <TransferListener .Context .BytesTransferred > captor2 =
107
106
ArgumentCaptor .forClass (TransferListener .Context .BytesTransferred .class );
108
- verify (listener , times (1 )).bytesTransferred (captor2 .capture ());
107
+ verify (listener , timeout ( 1000 ). times (1 )).bytesTransferred (captor2 .capture ());
109
108
TransferListener .Context .BytesTransferred ctx2 = captor2 .getValue ();
110
109
assertThat (ctx2 .request ()).isSameAs (uploadRequest );
111
110
assertThat (ctx2 .progressSnapshot ().transferSizeInBytes ()).hasValue (contentLength );
112
111
assertThat (ctx2 .progressSnapshot ().bytesTransferred ()).isPositive ();
113
112
114
113
ArgumentCaptor <TransferListener .Context .TransferComplete > captor3 =
115
114
ArgumentCaptor .forClass (TransferListener .Context .TransferComplete .class );
116
- verify (listener , times (1 )).transferComplete (captor3 .capture ());
115
+ verify (listener , timeout ( 1000 ). times (1 )).transferComplete (captor3 .capture ());
117
116
TransferListener .Context .TransferComplete ctx3 = captor3 .getValue ();
118
117
assertThat (ctx3 .request ()).isSameAs (uploadRequest );
119
118
assertThat (ctx3 .progressSnapshot ().transferSizeInBytes ()).hasValue (contentLength );
120
119
assertThat (ctx3 .progressSnapshot ().bytesTransferred ()).isEqualTo (contentLength );
121
120
assertThat (ctx3 .completedTransfer ()).isSameAs (upload .completionFuture ().get ());
122
121
122
+ upload .completionFuture ().join ();
123
123
verifyNoMoreInteractions (listener );
124
124
}
125
125
@@ -134,11 +134,10 @@ public void download_success_shouldInvokeListener() throws Exception {
134
134
.overrideConfiguration (b -> b .addListener (listener ))
135
135
.build ();
136
136
Download download = tm .download (downloadRequest );
137
- download .completionFuture ().join ();
138
137
139
138
ArgumentCaptor <TransferListener .Context .TransferInitiated > captor1 =
140
139
ArgumentCaptor .forClass (TransferListener .Context .TransferInitiated .class );
141
- verify (listener , times (1 )).transferInitiated (captor1 .capture ());
140
+ verify (listener , timeout ( 1000 ). times (1 )).transferInitiated (captor1 .capture ());
142
141
TransferListener .Context .TransferInitiated ctx1 = captor1 .getValue ();
143
142
assertThat (ctx1 .request ()).isSameAs (downloadRequest );
144
143
// transferSize is not known until we receive GetObjectResponse header
@@ -147,7 +146,7 @@ public void download_success_shouldInvokeListener() throws Exception {
147
146
148
147
ArgumentCaptor <TransferListener .Context .BytesTransferred > captor2 =
149
148
ArgumentCaptor .forClass (TransferListener .Context .BytesTransferred .class );
150
- verify (listener , times (1 )).bytesTransferred (captor2 .capture ());
149
+ verify (listener , timeout ( 1000 ). times (1 )).bytesTransferred (captor2 .capture ());
151
150
TransferListener .Context .BytesTransferred ctx2 = captor2 .getValue ();
152
151
assertThat (ctx2 .request ()).isSameAs (downloadRequest );
153
152
// transferSize should now be known
@@ -156,13 +155,14 @@ public void download_success_shouldInvokeListener() throws Exception {
156
155
157
156
ArgumentCaptor <TransferListener .Context .TransferComplete > captor3 =
158
157
ArgumentCaptor .forClass (TransferListener .Context .TransferComplete .class );
159
- verify (listener , times (1 )).transferComplete (captor3 .capture ());
158
+ verify (listener , timeout ( 1000 ). times (1 )).transferComplete (captor3 .capture ());
160
159
TransferListener .Context .TransferComplete ctx3 = captor3 .getValue ();
161
160
assertThat (ctx3 .request ()).isSameAs (downloadRequest );
162
161
assertThat (ctx3 .progressSnapshot ().transferSizeInBytes ()).hasValue (contentLength );
163
162
assertThat (ctx3 .progressSnapshot ().bytesTransferred ()).isEqualTo (contentLength );
164
163
assertThat (ctx3 .completedTransfer ()).isSameAs (download .completionFuture ().get ());
165
164
165
+ download .completionFuture ().join ();
166
166
verifyNoMoreInteractions (listener );
167
167
}
168
168
@@ -188,7 +188,7 @@ public void upload_failure_shouldInvokeListener() throws Exception {
188
188
189
189
ArgumentCaptor <TransferListener .Context .TransferInitiated > captor1 =
190
190
ArgumentCaptor .forClass (TransferListener .Context .TransferInitiated .class );
191
- verify (listener , times (1 )).transferInitiated (captor1 .capture ());
191
+ verify (listener , timeout ( 1000 ). times (1 )).transferInitiated (captor1 .capture ());
192
192
TransferListener .Context .TransferInitiated ctx1 = captor1 .getValue ();
193
193
assertThat (ctx1 .request ()).isSameAs (uploadRequest );
194
194
// transferSize is not known since file did not exist
@@ -197,13 +197,14 @@ public void upload_failure_shouldInvokeListener() throws Exception {
197
197
198
198
ArgumentCaptor <TransferListener .Context .TransferFailed > captor2 =
199
199
ArgumentCaptor .forClass (TransferListener .Context .TransferFailed .class );
200
- verify (listener , times (1 )).transferFailed (captor2 .capture ());
200
+ verify (listener , timeout ( 1000 ). times (1 )).transferFailed (captor2 .capture ());
201
201
TransferListener .Context .TransferFailed ctx2 = captor2 .getValue ();
202
202
assertThat (ctx2 .request ()).isSameAs (uploadRequest );
203
203
assertThat (ctx2 .progressSnapshot ().transferSizeInBytes ()).isNotPresent ();
204
204
assertThat (ctx2 .progressSnapshot ().bytesTransferred ()).isZero ();
205
205
assertThat (ctx2 .exception ()).isInstanceOf (NoSuchFileException .class );
206
206
207
+ upload .completionFuture ().join ();
207
208
verifyNoMoreInteractions (listener );
208
209
}
209
210
@@ -221,11 +222,12 @@ public void listener_exception_shouldBeSuppressed() throws Exception {
221
222
.overrideConfiguration (b -> b .addListener (listener ))
222
223
.build ();
223
224
Upload upload = tm .upload (uploadRequest );
224
- upload .completionFuture ().join ();
225
225
226
- verify (listener , times (1 )).transferInitiated (any ());
227
- verify (listener , times (1 )).bytesTransferred (any ());
228
- verify (listener , times (1 )).transferComplete (any ());
226
+ verify (listener , timeout (1000 ).times (1 )).transferInitiated (any ());
227
+ verify (listener , timeout (1000 ).times (1 )).bytesTransferred (any ());
228
+ verify (listener , timeout (1000 ).times (1 )).transferComplete (any ());
229
+
230
+ upload .completionFuture ().join ();
229
231
verifyNoMoreInteractions (listener );
230
232
}
231
233
0 commit comments