Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@

import cloud.localstack.Constants;
import cloud.localstack.LocalstackTestRunner;
import cloud.localstack.awssdkv1.sample.SQSLambdaHandler;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
import cloud.localstack.sample.LambdaHandler;
import cloud.localstack.utils.LocalTestUtil;
import com.amazonaws.services.s3.model.ObjectListing;
import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
import lombok.SneakyThrows;
import lombok.val;
import org.assertj.core.api.Assertions;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.ClassRule;
Expand Down Expand Up @@ -40,10 +45,7 @@
import software.amazon.awssdk.services.iam.model.User;
import software.amazon.awssdk.services.kinesis.KinesisAsyncClient;
import software.amazon.awssdk.services.kinesis.KinesisClient;
import software.amazon.awssdk.services.kinesis.model.CreateStreamRequest;
import software.amazon.awssdk.services.kinesis.model.CreateStreamResponse;
import software.amazon.awssdk.services.kinesis.model.PutRecordRequest;
import software.amazon.awssdk.services.kinesis.model.PutRecordResponse;
import software.amazon.awssdk.services.kinesis.model.*;
import software.amazon.awssdk.services.lambda.model.CreateFunctionRequest;
import software.amazon.awssdk.services.lambda.model.CreateFunctionResponse;
import software.amazon.awssdk.services.lambda.model.ListFunctionsResponse;
Expand Down Expand Up @@ -152,6 +154,7 @@ public void testCreateKinesisRecordAsyncV2() throws Exception {
KinesisAsyncClient kinesisAsyncClient = TestUtils.getClientKinesisAsyncV2();
validateCreateKinesisRecordV2(
createReq -> kinesisAsyncClient.createStream(createReq).get(),
describeReq -> kinesisAsyncClient.describeStream(describeReq).get(),
putReq -> kinesisAsyncClient.putRecord(putReq).get()
);
}
Expand All @@ -161,12 +164,14 @@ public void testCreateKinesisRecordV2() throws Exception {
KinesisClient kinesisClient = TestUtils.getClientKinesisV2();
validateCreateKinesisRecordV2(
createReq -> kinesisClient.createStream(createReq),
describeReq -> kinesisClient.describeStream(describeReq),
putReq -> kinesisClient.putRecord(putReq)
);
}

protected static void validateCreateKinesisRecordV2(
ThrowingFunction<CreateStreamRequest, CreateStreamResponse> createAction,
ThrowingFunction<DescribeStreamRequest, DescribeStreamResponse> describeAction,
ThrowingFunction<PutRecordRequest, PutRecordResponse> putAction
) throws Exception {
String streamName = "test-s-"+UUID.randomUUID().toString();
Expand All @@ -175,6 +180,18 @@ protected static void validateCreateKinesisRecordV2(
CreateStreamResponse response = createAction.apply(request);
Assert.assertNotNull(response);

// wait for the stream to become active
DescribeStreamRequest describeStreamRequest = DescribeStreamRequest.builder().streamName(streamName).build();
Runnable check = new Runnable() {
@SneakyThrows
public void run() {
DescribeStreamResponse describeResponse = describeAction.apply(describeStreamRequest);
Assert.assertNotNull(describeResponse);
Assert.assertEquals(describeResponse.streamDescription().streamStatus(), StreamStatus.ACTIVE);
}
};
LocalTestUtil.retry(check, 5, 1);

SdkBytes payload = SdkBytes.fromByteBuffer(ByteBuffer.wrap(String.format("testData-%d", 1).getBytes()));
PutRecordRequest.Builder putRecordRequest = PutRecordRequest.builder();
putRecordRequest.streamName(streamName);
Expand Down