Skip to content
Merged
Show file tree
Hide file tree
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
19 changes: 19 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<aws.sdkv2.version>2.15.79</aws.sdkv2.version>
<commons.lang3.version>3.5</commons.lang3.version>
<lambda.core.version>1.2.0</lambda.core.version>
<jexter.version>1.0.1</jexter.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -166,6 +167,24 @@
<version>2.12.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
<version>2.12.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.thundra</groupId>
<artifactId>jexter-junit4-core</artifactId>
<version>${jexter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.thundra</groupId>
<artifactId>jexter-junit5-core</artifactId>
<version>${jexter.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

<profiles>
Expand Down
39 changes: 14 additions & 25 deletions src/test/java/cloud/localstack/awssdkv1/KinesisConsumerTest.java
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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");
}

Expand Down Expand Up @@ -228,4 +243,5 @@ private SQSConnection createSQSConnection() throws Exception {
new AWSStaticCredentialsProvider(TestUtils.TEST_CREDENTIALS)).build();
return connectionFactory.createConnection();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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");
}

Expand Down Expand Up @@ -105,4 +116,5 @@ private SQSConnection createSQSConnection() throws Exception {
new AWSStaticCredentialsProvider(TestUtils.TEST_CREDENTIALS)).build();
return connectionFactory.createConnection();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand All @@ -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);
}

}
Loading