Skip to content

Commit d1db3c8

Browse files
committed
fix FileAsyncResponseTransformerPublisherTest wrong content-range method mocking
1 parent e1360f7 commit d1db3c8

File tree

1 file changed

+11
-19
lines changed

1 file changed

+11
-19
lines changed

core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformerPublisherTest.java

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package software.amazon.awssdk.core.internal.async;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
19+
import static org.assertj.core.api.Assertions.fail;
1920
import static org.mockito.Mockito.mock;
2021
import static org.mockito.Mockito.when;
2122

@@ -29,6 +30,7 @@
2930
import java.util.Arrays;
3031
import java.util.Collections;
3132
import java.util.List;
33+
import java.util.Optional;
3234
import java.util.concurrent.CompletableFuture;
3335
import java.util.concurrent.CountDownLatch;
3436
import java.util.concurrent.TimeUnit;
@@ -64,10 +66,11 @@ void tearDown() throws Exception {
6466
@Test
6567
void happyPath_singleOnNext() throws Exception {
6668
// Given
67-
AsyncResponseTransformer<Object, Object> initialTransformer = AsyncResponseTransformer.toFile(testFile);
69+
FileAsyncResponseTransformer<SdkResponse> initialTransformer =
70+
(FileAsyncResponseTransformer<SdkResponse>) AsyncResponseTransformer.<SdkResponse>toFile(testFile);
6871

6972
FileAsyncResponseTransformerPublisher<SdkResponse> publisher =
70-
new FileAsyncResponseTransformerPublisher<>((FileAsyncResponseTransformer<?>) initialTransformer);
73+
new FileAsyncResponseTransformerPublisher<>(initialTransformer);
7174

7275
CountDownLatch latch = new CountDownLatch(1);
7376
AtomicReference<AsyncResponseTransformer<SdkResponse, SdkResponse>> receivedTransformer = new AtomicReference<>();
@@ -79,16 +82,18 @@ void happyPath_singleOnNext() throws Exception {
7982

8083
@Override
8184
public void onSubscribe(Subscription s) {
85+
System.out.println("onSubscribe");
8286
this.subscription = s;
8387
s.request(1);
8488
}
8589

8690
@Override
8791
public void onNext(AsyncResponseTransformer<SdkResponse, SdkResponse> transformer) {
92+
System.out.println("onNext");
8893
receivedTransformer.set(transformer);
8994

9095
// Simulate response with content-range header
91-
SdkResponse mockResponse = createMockResponse();
96+
SdkResponse mockResponse = createMockResponseWithRange("bytes 0-9/10");
9297
CompletableFuture<SdkResponse> prepareFuture = transformer.prepare();
9398
CompletableFutureUtils.forwardResultTo(prepareFuture, future);
9499
transformer.onResponse(mockResponse);
@@ -102,11 +107,12 @@ public void onNext(AsyncResponseTransformer<SdkResponse, SdkResponse> transforme
102107

103108
@Override
104109
public void onError(Throwable t) {
105-
latch.countDown();
110+
fail("Unexpected error with esception: " + t.getMessage());
106111
}
107112

108113
@Override
109114
public void onComplete() {
115+
System.out.println("onComplete");
110116
latch.countDown();
111117
}
112118
});
@@ -118,18 +124,6 @@ public void onComplete() {
118124
assertThat(future).isCompleted();
119125
}
120126

121-
private SdkResponse createMockResponse() {
122-
SdkResponse mockResponse = mock(SdkResponse.class);
123-
SdkHttpResponse mockHttpResponse = mock(SdkHttpResponse.class);
124-
125-
when(mockResponse.sdkHttpResponse()).thenReturn(mockHttpResponse);
126-
when(mockHttpResponse.headers()).thenReturn(
127-
Collections.singletonMap("x-amz-content-range", Collections.singletonList("bytes 0-9/10"))
128-
);
129-
130-
return mockResponse;
131-
}
132-
133127
private SdkPublisher<ByteBuffer> createMockPublisher() {
134128
return s -> s.onSubscribe(new Subscription() {
135129
@Override
@@ -225,9 +219,7 @@ private SdkResponse createMockResponseWithRange(String contentRange) {
225219
SdkHttpResponse mockHttpResponse = mock(SdkHttpResponse.class);
226220

227221
when(mockResponse.sdkHttpResponse()).thenReturn(mockHttpResponse);
228-
when(mockHttpResponse.headers()).thenReturn(
229-
Collections.singletonMap("x-amz-content-range", Collections.singletonList(contentRange))
230-
);
222+
when(mockHttpResponse.firstMatchingHeader("x-amz-content-range")).thenReturn(Optional.of(contentRange));
231223

232224
return mockResponse;
233225
}

0 commit comments

Comments
 (0)