diff --git a/pom.xml b/pom.xml
index 4d9f6e5..3cc2978 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,7 @@
2.15.79
3.5
1.2.0
+ 1.0.1
@@ -166,6 +167,24 @@
2.12.1
test
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-cbor
+ 2.12.1
+ test
+
+
+ io.thundra
+ jexter-junit4-core
+ ${jexter.version}
+ test
+
+
+ io.thundra
+ jexter-junit5-core
+ ${jexter.version}
+ test
+
diff --git a/src/test/java/cloud/localstack/awssdkv1/KinesisConsumerTest.java b/src/test/java/cloud/localstack/awssdkv1/KinesisConsumerTest.java
index f6a77db..af41487 100644
--- a/src/test/java/cloud/localstack/awssdkv1/KinesisConsumerTest.java
+++ b/src/test/java/cloud/localstack/awssdkv1/KinesisConsumerTest.java
@@ -1,56 +1,45 @@
package cloud.localstack.awssdkv1;
import cloud.localstack.LocalstackTestRunner;
-import cloud.localstack.docker.annotation.*;
-
+import cloud.localstack.docker.annotation.LocalstackDockerProperties;
+import com.amazonaws.SDKGlobalConfiguration;
import com.amazonaws.services.kinesis.AmazonKinesisAsync;
import com.amazonaws.services.kinesis.model.CreateStreamRequest;
-import com.amazonaws.services.kinesis.model.PutRecordRequest;
import com.amazonaws.services.kinesis.model.GetRecordsRequest;
import com.amazonaws.services.kinesis.model.GetRecordsResult;
import com.amazonaws.services.kinesis.model.GetShardIteratorRequest;
-import com.amazonaws.SDKGlobalConfiguration;
+import com.amazonaws.services.kinesis.model.PutRecordRequest;
import com.amazonaws.services.kinesis.model.ResourceInUseException;
-
+import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
import org.junit.Assert;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import java.util.*;
+import java.nio.ByteBuffer;
+import java.util.List;
+import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-import java.nio.ByteBuffer;
@RunWith(LocalstackTestRunner.class)
@LocalstackDockerProperties(ignoreDockerRunErrors=true)
public class KinesisConsumerTest {
+ // Revert system properties to the back after the test
+ @Rule
+ public SystemPropertySandboxRule systemPropertySandboxRule = new SystemPropertySandboxRule();
+
@Test
public void testGetRecordCBOR() throws Exception {
- String valueBefore = this.getCborDisableConfig();
System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, "false");
- try {
- this.runGetRecord();
- } finally {
- System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, valueBefore);
- }
+ runGetRecord();
}
@Test
public void testGetRecordJSON() throws Exception {
- String valueBefore = this.getCborDisableConfig();
System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, "true");
- try {
- this.runGetRecord();
- } finally {
- System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, valueBefore);
- }
- }
-
- private String getCborDisableConfig() {
- String valueBefore = System.getProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY);
- valueBefore = valueBefore == null ? "" : valueBefore;
- return valueBefore;
+ runGetRecord();
}
private void runGetRecord() throws Exception {
diff --git a/src/test/java/cloud/localstack/awssdkv1/docker/BasicDockerFunctionalityTest.java b/src/test/java/cloud/localstack/awssdkv1/docker/BasicDockerFunctionalityTest.java
index fbee251..616641c 100644
--- a/src/test/java/cloud/localstack/awssdkv1/docker/BasicDockerFunctionalityTest.java
+++ b/src/test/java/cloud/localstack/awssdkv1/docker/BasicDockerFunctionalityTest.java
@@ -1,19 +1,19 @@
package cloud.localstack.docker;
+import cloud.localstack.CommonUtils;
import cloud.localstack.Localstack;
import cloud.localstack.LocalstackTestRunner;
-import cloud.localstack.docker.annotation.LocalstackDockerProperties;
-import cloud.localstack.CommonUtils;
import cloud.localstack.awssdkv1.TestUtils;
-
+import cloud.localstack.docker.annotation.LocalstackDockerProperties;
import com.amazon.sqs.javamessaging.SQSConnection;
import com.amazon.sqs.javamessaging.SQSConnectionFactory;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.services.cloudwatch.*;
-import com.amazonaws.services.cloudwatch.model.*;
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
-import com.amazonaws.services.identitymanagement.model.CreateRoleRequest;
-import com.amazonaws.services.identitymanagement.model.EntityAlreadyExistsException;
+import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
+import com.amazonaws.services.cloudwatch.model.Dimension;
+import com.amazonaws.services.cloudwatch.model.MetricDatum;
+import com.amazonaws.services.cloudwatch.model.PutMetricDataRequest;
+import com.amazonaws.services.cloudwatch.model.PutMetricDataResult;
+import com.amazonaws.services.cloudwatch.model.StandardUnit;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
@@ -22,6 +22,9 @@
import com.amazonaws.services.dynamodbv2.model.ListTablesResult;
import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;
+import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
+import com.amazonaws.services.identitymanagement.model.CreateRoleRequest;
+import com.amazonaws.services.identitymanagement.model.EntityAlreadyExistsException;
import com.amazonaws.services.kinesis.AmazonKinesis;
import com.amazonaws.services.kinesis.model.CreateStreamRequest;
import com.amazonaws.services.kinesis.model.ListStreamsResult;
@@ -37,10 +40,14 @@
import com.amazonaws.services.sqs.model.CreateQueueRequest;
import com.amazonaws.services.sqs.model.ListQueuesResult;
import com.amazonaws.util.IOUtils;
+import io.thundra.jexter.junit4.core.envvar.EnvironmentVariableSandboxRule;
+import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
+import io.thundra.jexter.junit5.core.envvar.EnvironmentVariableSandbox;
import org.assertj.core.api.Assertions;
+import org.junit.Assert;
+import org.junit.ClassRule;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.runner.RunWith;
-import org.junit.Assert;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
@@ -56,9 +63,17 @@
@RunWith(LocalstackTestRunner.class)
@ExtendWith(LocalstackDockerExtension.class)
@LocalstackDockerProperties(randomizePorts = true)
+// [JUnit5] Revert environment variables to the back after the test suite (class)
+@EnvironmentVariableSandbox
public class BasicDockerFunctionalityTest {
- static {
+ // [JUnit4] Revert environment variables to the back after the test suite (class)
+ @ClassRule
+ public static EnvironmentVariableSandboxRule environmentVariableSandboxRule = new EnvironmentVariableSandboxRule();
+
+ @org.junit.BeforeClass
+ @org.junit.jupiter.api.BeforeAll
+ public static void beforeAll() {
CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
}
@@ -228,4 +243,5 @@ private SQSConnection createSQSConnection() throws Exception {
new AWSStaticCredentialsProvider(TestUtils.TEST_CREDENTIALS)).build();
return connectionFactory.createConnection();
}
+
}
diff --git a/src/test/java/cloud/localstack/awssdkv1/docker/DockerOnlySQSFunctionalityTest.java b/src/test/java/cloud/localstack/awssdkv1/docker/DockerOnlySQSFunctionalityTest.java
index d9d4dfc..c3e721c 100644
--- a/src/test/java/cloud/localstack/awssdkv1/docker/DockerOnlySQSFunctionalityTest.java
+++ b/src/test/java/cloud/localstack/awssdkv1/docker/DockerOnlySQSFunctionalityTest.java
@@ -12,7 +12,10 @@
import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.model.CreateQueueRequest;
import com.amazonaws.services.sqs.model.ListQueuesResult;
+import io.thundra.jexter.junit4.core.envvar.EnvironmentVariableSandboxRule;
+import io.thundra.jexter.junit5.core.envvar.EnvironmentVariableSandbox;
import org.assertj.core.api.Assertions;
+import org.junit.ClassRule;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.runner.RunWith;
@@ -27,9 +30,17 @@
@RunWith(LocalstackTestRunner.class)
@ExtendWith(LocalstackDockerExtension.class)
@LocalstackDockerProperties(randomizePorts = true, services = "sqs")
+// [JUnit5] Revert environment variables to the back after the test suite (class)
+@EnvironmentVariableSandbox
public class DockerOnlySQSFunctionalityTest {
- static {
+ // [JUnit4] Revert environment variables to the back after the test suite (class)
+ @ClassRule
+ public static EnvironmentVariableSandboxRule environmentVariableSandboxRule = new EnvironmentVariableSandboxRule();
+
+ @org.junit.BeforeClass
+ @org.junit.jupiter.api.BeforeAll
+ public static void beforeAll() {
CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
}
@@ -105,4 +116,5 @@ private SQSConnection createSQSConnection() throws Exception {
new AWSStaticCredentialsProvider(TestUtils.TEST_CREDENTIALS)).build();
return connectionFactory.createConnection();
}
+
}
diff --git a/src/test/java/cloud/localstack/awssdkv1/docker/SingleContainerTest.java b/src/test/java/cloud/localstack/awssdkv1/docker/SingleContainerTest.java
index b3bbdf2..6d2639c 100644
--- a/src/test/java/cloud/localstack/awssdkv1/docker/SingleContainerTest.java
+++ b/src/test/java/cloud/localstack/awssdkv1/docker/SingleContainerTest.java
@@ -2,13 +2,16 @@
import cloud.localstack.Localstack;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
-
-import org.junit.jupiter.api.*;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
-import org.junit.Assert;
import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.TestMethodOrder;
+import org.junit.jupiter.api.extension.ExtendWith;
+@ExtendWith(LocalstackDockerExtension.class)
+@LocalstackDockerProperties(randomizePorts=true, services={"sns"}, useSingleDockerContainer=true)
@TestMethodOrder(OrderAnnotation.class)
public class SingleContainerTest {
@@ -21,32 +24,24 @@ static void checkAndSetEndpoint(String endpoint) {
SNS_ENDPOINT = endpoint;
}
- @ExtendWith(LocalstackDockerExtension.class)
- @LocalstackDockerProperties(randomizePorts=true, services={"sns"}, useSingleDockerContainer=true)
- public static class ContainerTest1 {
- @org.junit.jupiter.api.Test
- @Order(1)
- public void testCheckPort() {
- String endpoint = Localstack.INSTANCE.getEndpointSNS();
- checkAndSetEndpoint(endpoint);
- }
+ @AfterClass
+ @AfterAll
+ public static void tearDown() {
+ Localstack.INSTANCE.stop();
}
- @ExtendWith(LocalstackDockerExtension.class)
- @LocalstackDockerProperties(randomizePorts=true, services={"sns"}, useSingleDockerContainer=true)
- public static class ContainerTest2 {
-
- @AfterClass
- @AfterAll
- public static void tearDown() {
- Localstack.INSTANCE.stop();
- }
+ @org.junit.jupiter.api.Test
+ @Order(1)
+ public void testCheckPort() {
+ String endpoint = Localstack.INSTANCE.getEndpointSNS();
+ checkAndSetEndpoint(endpoint);
+ }
- @org.junit.jupiter.api.Test
- @Order(2)
- public void testCheckPort() {
- String endpoint = Localstack.INSTANCE.getEndpointSNS();
- checkAndSetEndpoint(endpoint);
- }
+ @org.junit.jupiter.api.Test
+ @Order(2)
+ public void testCheckPort2() {
+ String endpoint = Localstack.INSTANCE.getEndpointSNS();
+ checkAndSetEndpoint(endpoint);
}
+
}
diff --git a/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java b/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java
index 6f131f0..1f85a84 100644
--- a/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java
+++ b/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java
@@ -4,45 +4,71 @@
import cloud.localstack.LocalstackTestRunner;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
import cloud.localstack.sample.LambdaHandler;
-import cloud.localstack.awssdkv2.LocalTestUtilSDKV2;
-
+import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
import lombok.val;
-
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.core.SdkSystemSetting;
-import software.amazon.awssdk.services.cloudwatch.*;
-import software.amazon.awssdk.services.cloudwatch.model.*;
+import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient;
+import software.amazon.awssdk.services.cloudwatch.model.Dimension;
+import software.amazon.awssdk.services.cloudwatch.model.MetricDatum;
+import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataRequest;
+import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataResponse;
+import software.amazon.awssdk.services.cloudwatch.model.StandardUnit;
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
-import software.amazon.awssdk.services.dynamodb.model.*;
-import software.amazon.awssdk.services.iam.*;
-import software.amazon.awssdk.services.iam.model.*;
-import software.amazon.awssdk.services.iam.paginators.ListUsersPublisher;
-import software.amazon.awssdk.services.kinesis.*;
-import software.amazon.awssdk.services.kinesis.model.*;
+import software.amazon.awssdk.services.dynamodb.model.AttributeDefinition;
+import software.amazon.awssdk.services.dynamodb.model.CreateTableRequest;
+import software.amazon.awssdk.services.dynamodb.model.CreateTableResponse;
+import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest;
+import software.amazon.awssdk.services.dynamodb.model.KeySchemaElement;
+import software.amazon.awssdk.services.dynamodb.model.KeyType;
+import software.amazon.awssdk.services.dynamodb.model.ProvisionedThroughput;
+import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType;
+import software.amazon.awssdk.services.iam.IamAsyncClient;
+import software.amazon.awssdk.services.iam.model.CreateUserRequest;
+import software.amazon.awssdk.services.iam.model.User;
+import software.amazon.awssdk.services.kinesis.KinesisAsyncClient;
+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.lambda.model.CreateFunctionRequest;
import software.amazon.awssdk.services.lambda.model.Runtime;
-import software.amazon.awssdk.services.s3.*;
-import software.amazon.awssdk.services.s3.model.*;
+import software.amazon.awssdk.services.s3.S3AsyncClient;
+import software.amazon.awssdk.services.s3.model.Bucket;
+import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
+import software.amazon.awssdk.services.s3.model.CreateBucketResponse;
+import software.amazon.awssdk.services.s3.model.ListBucketsRequest;
+import software.amazon.awssdk.services.s3.model.ListBucketsResponse;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClient;
-import software.amazon.awssdk.services.secretsmanager.model.*;
-import software.amazon.awssdk.services.sns.*;
-import software.amazon.awssdk.services.sns.model.*;
-import software.amazon.awssdk.services.sqs.*;
-import software.amazon.awssdk.services.sqs.model.*;
-import software.amazon.awssdk.services.ssm.*;
-import software.amazon.awssdk.services.ssm.model.*;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import software.amazon.awssdk.services.secretsmanager.model.CreateSecretRequest;
+import software.amazon.awssdk.services.secretsmanager.model.DeleteSecretRequest;
+import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
+import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
+import software.amazon.awssdk.services.sns.SnsAsyncClient;
+import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
+import software.amazon.awssdk.services.sns.model.CreateTopicResponse;
+import software.amazon.awssdk.services.sns.model.PublishRequest;
+import software.amazon.awssdk.services.sns.model.PublishResponse;
+import software.amazon.awssdk.services.sqs.SqsAsyncClient;
+import software.amazon.awssdk.services.sqs.model.CreateQueueRequest;
+import software.amazon.awssdk.services.sqs.model.CreateQueueResponse;
+import software.amazon.awssdk.services.ssm.SsmAsyncClient;
+import software.amazon.awssdk.services.ssm.model.GetParameterRequest;
+import software.amazon.awssdk.services.ssm.model.GetParameterResponse;
+import software.amazon.awssdk.services.ssm.model.PutParameterRequest;
-import java.util.*;
import java.nio.ByteBuffer;
+import java.time.Instant;
+import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
-import java.time.ZoneOffset;
-import java.time.Instant;
-
-import software.amazon.awssdk.core.SdkBytes;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -51,7 +77,12 @@
@LocalstackDockerProperties(ignoreDockerRunErrors=true)
public class BasicFeaturesSDKV2Test {
- static {
+ // Revert system properties to the back after the test suite (class)
+ @ClassRule
+ public static SystemPropertySandboxRule systemPropertySandboxRule = new SystemPropertySandboxRule();
+
+ @BeforeClass
+ public static void beforeAll() {
System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "false");
}
@@ -318,4 +349,5 @@ public void testIAMListUserPagination() throws Exception {
TimeUnit.SECONDS.sleep(2);
Assert.assertTrue(userFound.get());
}
+
}
diff --git a/src/test/java/cloud/localstack/awssdkv2/KinesisSchedulerTest.java b/src/test/java/cloud/localstack/awssdkv2/KinesisSchedulerTest.java
index b9502e1..4d9d397 100644
--- a/src/test/java/cloud/localstack/awssdkv2/KinesisSchedulerTest.java
+++ b/src/test/java/cloud/localstack/awssdkv2/KinesisSchedulerTest.java
@@ -3,6 +3,11 @@
import cloud.localstack.awssdkv2.consumer.DeliveryStatusRecordProcessorFactory;
import cloud.localstack.awssdkv2.consumer.EventProcessor;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
+import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.core.SdkSystemSetting;
import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient;
@@ -15,24 +20,27 @@
import software.amazon.kinesis.common.ConfigsBuilder;
import software.amazon.kinesis.coordinator.Scheduler;
import software.amazon.kinesis.metrics.NullMetricsFactory;
+import software.amazon.kinesis.retrieval.RetrievalConfig;
+import software.amazon.kinesis.retrieval.polling.PollingConfig;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.*;
+import java.util.UUID;
import java.util.concurrent.TimeUnit;
@LocalstackDockerProperties(ignoreDockerRunErrors = true)
public class KinesisSchedulerTest extends PowerMockLocalStack {
+
String streamName = "test" + UUID.randomUUID().toString();
String workerId = UUID.randomUUID().toString();
String testMessage = "hello, world";
Integer consumerCreationTime = 15; //35 for real AWS
+ // Revert system properties to the back after the test
+ @Rule
+ public SystemPropertySandboxRule systemPropertySandboxRule = new SystemPropertySandboxRule();
+
@Before
public void mockServicesForScheduler() {
- // System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "false");
+ System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "false");
PowerMockLocalStack.mockCloudWatchAsyncClient();
PowerMockLocalStack.mockDynamoDBAsync();
PowerMockLocalStack.mockKinesisAsync();
@@ -51,7 +59,14 @@ public void schedulerTest() throws Exception {
DeliveryStatusRecordProcessorFactory processorFactory = new DeliveryStatusRecordProcessorFactory(eventProcessor);
ConfigsBuilder configsBuilder = new ConfigsBuilder(streamName, streamName, kinesisAsyncClient, dynamoAsyncClient,
- cloudWatchAsyncClient, workerId, processorFactory);
+ cloudWatchAsyncClient, workerId, processorFactory) {
+ @Override
+ public RetrievalConfig retrievalConfig() {
+ RetrievalConfig retrievalConfig = super.retrievalConfig();
+ retrievalConfig.retrievalSpecificConfig(new PollingConfig(streamName(), kinesisClient()));
+ return retrievalConfig;
+ }
+ };
Scheduler scheduler = createScheduler(configsBuilder);
new Thread(scheduler).start();
diff --git a/src/test/java/cloud/localstack/awssdkv2/KinesisV2ConsumerTest.java b/src/test/java/cloud/localstack/awssdkv2/KinesisV2ConsumerTest.java
index 93a9aa7..ee9c28a 100644
--- a/src/test/java/cloud/localstack/awssdkv2/KinesisV2ConsumerTest.java
+++ b/src/test/java/cloud/localstack/awssdkv2/KinesisV2ConsumerTest.java
@@ -2,17 +2,24 @@
import cloud.localstack.LocalstackTestRunner;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
-
+import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
import org.junit.Assert;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-
-import software.amazon.awssdk.services.kinesis.model.CreateStreamRequest;
+import software.amazon.awssdk.core.SdkBytes;
+import software.amazon.awssdk.core.SdkSystemSetting;
import software.amazon.awssdk.services.kinesis.KinesisAsyncClient;
-import software.amazon.awssdk.core.*;
-import software.amazon.awssdk.services.kinesis.model.*;
+import software.amazon.awssdk.services.kinesis.model.CreateStreamRequest;
+import software.amazon.awssdk.services.kinesis.model.CreateStreamResponse;
+import software.amazon.awssdk.services.kinesis.model.GetRecordsRequest;
+import software.amazon.awssdk.services.kinesis.model.GetRecordsResponse;
+import software.amazon.awssdk.services.kinesis.model.GetShardIteratorRequest;
+import software.amazon.awssdk.services.kinesis.model.PutRecordRequest;
+import software.amazon.awssdk.services.kinesis.model.ShardIteratorType;
-import java.util.*;
+import java.util.List;
+import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -20,8 +27,14 @@
@LocalstackDockerProperties(ignoreDockerRunErrors = true)
public class KinesisV2ConsumerTest {
+ // Revert system properties to the back after the test suite (class)
+ @Rule
+ public SystemPropertySandboxRule systemPropertySandboxRule = new SystemPropertySandboxRule();
+
@Test
public void testGetRecordCBOR() throws Exception {
+ System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "true");
+
String streamName = "test-s-" + UUID.randomUUID().toString();
KinesisAsyncClient kinesisClient = TestUtils.getClientKinesisAsyncV2();
@@ -50,7 +63,7 @@ public void testGetRecordCBOR() throws Exception {
@Test
public void testGetRecordJSON() throws Exception {
System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "false");
- this.testGetRecordCBOR();
- System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "true");
+ testGetRecordCBOR();
}
+
}
\ No newline at end of file
diff --git a/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java b/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java
index 78d5e19..be1afee 100644
--- a/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java
+++ b/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java
@@ -32,8 +32,11 @@
import com.amazonaws.services.sqs.model.ReceiveMessageResult;
import com.amazonaws.services.sqs.model.SendMessageRequest;
import com.amazonaws.services.sqs.model.SendMessageResult;
+import io.thundra.jexter.junit4.core.envvar.EnvironmentVariableSandboxRule;
+import io.thundra.jexter.junit5.core.envvar.EnvironmentVariableSandbox;
import org.assertj.core.api.Assertions;
import org.junit.Assert;
+import org.junit.ClassRule;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.runner.RunWith;
@@ -56,20 +59,27 @@
@ExtendWith(LocalstackExtension.class)
@org.junit.Ignore
@org.junit.jupiter.api.Disabled
+// [JUnit5] Revert environment variables to the back after the test suite (class)
+@EnvironmentVariableSandbox
public class BasicFunctionalityTest {
static {
- /*
- * Need to disable CBOR protocol, see:
- * https://github.com/mhart/kinesalite/blob/master/README.md#cbor-protocol-issues-with-the-java-sdk
- */
- CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
/* Disable SSL certificate checks for local testing */
if (Localstack.useSSL()) {
CommonUtils.disableSslCertChecking();
}
}
+ // [JUnit4] Revert environment variables to the back after the test suite (class)
+ @ClassRule
+ public static EnvironmentVariableSandboxRule environmentVariableSandboxRule = new EnvironmentVariableSandboxRule();
+
+ @org.junit.BeforeClass
+ @org.junit.jupiter.api.BeforeAll
+ public static void beforeAll() {
+ CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
+ }
+
@org.junit.Test
@org.junit.jupiter.api.Test
public void testDevEnvironmentSetup() {