8000 fix failing tests with Jexter rules/extensions (#71) · localstack/localstack-java-utils@d2edc8f · GitHub
[go: up one dir, main page]

Skip to content
< 8000 header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark>

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d2edc8f

Browse files
author
Serkan ÖZAL
authored
fix failing tests with Jexter rules/extensions (#71)
1 parent 7d62332 commit d2edc8f

File tree

9 files changed

+216
-115
lines changed

9 files changed

+216
-115
lines changed

pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<aws.sdkv2.version>2.15.79</aws.sdkv2.version>
3535
<commons.lang3.version>3.5</commons.lang3.version>
3636
<lambda.core.version>1.2.0</lambda.core.version>
37+
<jexter.version>1.0.1</jexter.version>
3738
</properties>
3839

3940
<dependencies>
@@ -166,6 +167,24 @@
166167
<version>2.12.1</version>
167168
<scope>test</scope>
168169
</dependency>
170+
<dependency>
171+
<groupId>com.fasterxml.jackson.dataformat</groupId>
172+
<artifactId>jackson-dataformat-cbor</artifactId>
173+
<version>2.12.1</version>
174+
<scope>test</scope>
175+
</dependency>
176+
<dependency>
177+
<groupId>io.thundra</groupId>
178+
<artifactId>jexter-junit4-core</artifactId>
179+
<version>${jexter.version}</version>
180+
<scope>test</scope>
181+
</dependency>
182+
<dependency>
183+
<groupId>io.thundra</groupId>
184+
<artifactId>jexter-junit5-core</artifactId>
185+
<version>${jexter.version}</version>
186+
<scope>test</scope>
187+
</dependency>
169188
</dependencies>
170189

171190
<profiles>

src/test/java/cloud/localstack/awssdkv1/KinesisConsumerTest.java

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,45 @@
11
package cloud.localstack.awssdkv1;
22

33
import cloud.localstack.LocalstackTestRunner;
4-
import cloud.localstack.docker.annotation.*;
5-
4+
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
5+
import com.amazonaws.SDKGlobalConfiguration;
66
import com.amazonaws.services.kinesis.AmazonKinesisAsync;
77
import com.amazonaws.services.kinesis.model.CreateStreamRequest;
8-
import com.amazonaws.services.kinesis.model.PutRecordRequest;
98
import com.amazonaws.services.kinesis.model.GetRecordsRequest;
109
import com.amazonaws.services.kinesis.model.GetRecordsResult;
1110
import com.amazonaws.services.kinesis.model.GetShardIteratorRequest;
12-
import com.amazonaws.SDKGlobalConfiguration;
11+
import com.amazonaws.services.kinesis.model.PutRecordRequest;
1312
import com.amazonaws.services.kinesis.model.ResourceInUseException;
14-
13+
import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
1514
import org.junit.Assert;
15+
import org.junit.Rule;
1616
import org.junit.Test;
1717
import org.junit.runner.RunWith;
1818

19-
import java.util.*;
19+
import java.nio.ByteBuffer;
20+
import java.util.List;
21+
import java.util.UUID;
2022
import java.util.concurrent.TimeUnit;
2123
import java.util.stream.Collectors;
22-
import java.nio.ByteBuffer;
2324

2425
@RunWith(LocalstackTestRunner.class)
2526
@LocalstackDockerProperties(ignoreDockerRunErrors=true)
2627
public class KinesisConsumerTest {
2728

29+
// Revert system properties to the back after the test
30+
@Rule
31+
public SystemPropertySandboxRule systemPropertySandboxRule = new SystemPropertySandboxRule();
32+
2833
@Test
2934
public void testGetRecordCBOR() throws Exception {
30-
String valueBefore = this.getCborDisableConfig();
3135
System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, "false");
32-
try {
33-
this.runGetRecord();
34-
} finally {
35-
System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, valueBefore);
36-
}
36+
runGetRecord();
3737
}
3838

3939
@Test
4040
public void testGetRecordJSON() throws Exception {
41-
String valueBefore = this.getCborDisableConfig();
4241
System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, "true");
43-
try {
44-
this.runGetRecord();
45-
} finally {
46-
System.setProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, valueBefore);
47-
}
48-
}
49-
50-
private String getCborDisableConfig() {
51-
String valueBefore = System.getProperty(SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY);
52-
valueBefore = valueBefore == null ? "" : valueBefore;
53-
return valueBefore;
42+
runGetRecord();
5443
}
5544

5645
private void runGetRecord() throws Exception {

src/test/java/cloud/localstack/awssdkv1/docker/BasicDockerFunctionalityTest.java

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package cloud.localstack.docker;
22

3+
import cloud.localstack.CommonUtils;
34
import cloud.localstack.Localstack;
45
import cloud.localstack.LocalstackTestRunner;
5-
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
6-
import cloud.localstack.CommonUtils;
76
import cloud.localstack.awssdkv1.TestUtils;
8-
7+
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
98
import com.amazon.sqs.javamessaging.SQSConnection;
109
import com.amazon.sqs.javamessaging.SQSConnectionFactory;
1110
import com.amazonaws.auth.AWSStaticCredentialsProvider;
12-
import com.amazonaws.services.cloudwatch.*;
13-
import com.amazonaws.services.cloudwatch.model.*;
14-
import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
15-
import com.amazonaws.services.identitymanagement.model.CreateRoleRequest;
16-
import com.amazonaws.services.identitymanagement.model.EntityAlreadyExistsException;
11+
import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
12+
import com.amazonaws.services.cloudwatch.model.Dimension;
13+
import com.amazonaws.services.cloudwatch.model.MetricDatum;
14+
import com.amazonaws.services.cloudwatch.model.PutMetricDataRequest;
15+
import com.amazonaws.services.cloudwatch.model.PutMetricDataResult;
16+
import com.amazonaws.services.cloudwatch.model.StandardUnit;
1717
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
1818
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
1919
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
@@ -22,6 +22,9 @@
2222
import com.amazonaws.services.dynamodbv2.model.ListTablesResult;
2323
import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
2424
import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;
25+
import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
26+
import com.amazonaws.services.identitymanagement.model.CreateRoleRequest;
27+
import com.amazonaws.services.identitymanagement.model.EntityAlreadyExistsException;
2528
import com.amazonaws.services.kinesis.AmazonKinesis;
2629
import com.amazonaws.services.kinesis.model.CreateStreamRequest;
2730
import com.amazonaws.services.kinesis.model.ListStreamsResult;
@@ -37,10 +40,14 @@
3740
import com.amazonaws.services.sqs.model.CreateQueueRequest;
3841
import com.amazonaws.services.sqs.model.ListQueuesResult;
3942
import com.amazonaws.util.IOUtils;
43+
import io.thundra.jexter.junit4.core.envvar.EnvironmentVariableSandboxRule;
44+
import io.thundra.jexter.junit4.core.sysprop.SystemPropertySandboxRule;
45+
import io.thundra.jexter.junit5.core.envvar.EnvironmentVariableSandbox;
4046
import org.assertj.core.api.Assertions;
47+
import org.junit.Assert;
48+
import org.junit.ClassRule;
4149
import org.junit.jupiter.api.extension.ExtendWith;
4250
import org.junit.runner.RunWith;
43-
import org.junit.Assert;
4451

4552
import javax.jms.MessageConsumer;
4653
import javax.jms.MessageProducer;
@@ -56,9 +63,17 @@
5663
@RunWith(LocalstackTestRunner.class)
5764
@ExtendWith(LocalstackDockerExtension.class)
5865
@LocalstackDockerProperties(randomizePorts = true)
66+
// [JUnit5] Revert environment variables to the back after the test suite (class)
67+
@EnvironmentVariableSandbox
5968
public class BasicDockerFunctionalityTest {
6069

61-
static {
70+
// [JUnit4] Revert environment variables to the back after the test suite (class)
71+
@ClassRule
72+
public static EnvironmentVariableSandboxRule environmentVariableSandboxRule = new EnvironmentVariableSandboxRule();
73+
74+
@org.junit.BeforeClass
75+
@org.junit.jupiter.api.BeforeAll
76+
public static void beforeAll() {
6277
CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
6378
}
6479

@@ -228,4 +243,5 @@ private SQSConnection createSQSConnection() throws Exception {
228243
new AWSStaticCredentialsProvider(TestUtils.TEST_CREDENTIALS)).build();
229244
return connectionFactory.createConnection();
230245
}
246+
231247
}

src/test/java/cloud/localstack/awssdkv1/docker/DockerOnlySQSFunctionalityTest.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
import com.amazonaws.services.sqs.AmazonSQS;
1313
import com.amazonaws.services.sqs.model.CreateQueueRequest;
1414
import com.amazonaws.services.sqs.model.ListQueuesResult;
15+
import io.thundra.jexter.junit4.core.envvar.EnvironmentVariableSandboxRule;
16+
import io.thundra.jexter.junit5.core.envvar.EnvironmentVariableSandbox;
1517
import org.assertj.core.api.Assertions;
18+
import org.junit.ClassRule;
1619
import org.junit.jupiter.api.extension.ExtendWith;
1720
import org.junit.runner.RunWith;
1821

@@ -27,9 +30,17 @@
2730
@RunWith(LocalstackTestRunner.class)
2831
@ExtendWith(LocalstackDockerExtension.class)
2932
@LocalstackDockerProperties(randomizePorts = true, services = "sqs")
33+
// [JUnit5] Revert environment variables to the back after the test suite (class)
34+
@EnvironmentVariableSandbox
3035
public class DockerOnlySQSFunctionalityTest {
3136

32-
static {
37+
// [JUnit4] Revert environment variables to the back after the test suite (class)
38+
@ClassRule
39+
public static EnvironmentVariableSandboxRule environmentVariableSandboxRule = new EnvironmentVariableSandboxRule();
40+
41+
@org.junit.BeforeClass
42+
@org.junit.jupiter.api.BeforeAll
43+
public static void beforeAll() {
3344
CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
3445
}
3546

@@ -105,4 +116,5 @@ private SQSConnection createSQSConnection() throws Exception {
105116
new AWSStaticCredentialsProvider(TestUtils.TEST_CREDENTIALS)).build();
106117
return connectionFactory.createConnection();
107118
}
119+
108120
}

src/test/java/cloud/localstack/awssdkv1/docker/SingleContainerTest.java

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
import cloud.localstack.Localstack;
44
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
5-
6-
import org.junit.jupiter.api.*;
7-
import org.junit.jupiter.api.extension.ExtendWith;
8-
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
9-
import org.junit.Assert;
105
import org.junit.AfterClass;
6+
import org.junit.Assert;
7+
import org.junit.jupiter.api.AfterAll;
8+
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
9+
import org.junit.jupiter.api.Order;
10+
import org.junit.jupiter.api.TestMethodOrder;
11+
import org.junit.jupiter.api.extension.ExtendWith;
1112

13+
@ExtendWith(LocalstackDockerExtension.class)
14+
@LocalstackDockerProperties(randomizePorts=true, services={"sns"}, useSingleDockerContainer=true)
1215
@TestMethodOrder(OrderAnnotation.class)
1316
public class SingleContainerTest {
1417

@@ -21,32 +24,24 @@ static void checkAndSetEndpoint(String endpoint) {
2124
SNS_ENDPOINT = endpoint;
2225
}
2326

24-
@ExtendWith(LocalstackDockerExtension.class)
25-
@LocalstackDockerProperties(randomizePorts=true, services={"sns"}, useSingleDockerContainer=true)
26-
public static class ContainerTest1 {
27-
@org.junit.jupiter.api.Test
28-
@Order(1)
29-
public void testCheckPort() {
30-
String endpoint = Localstack.INSTANCE.getEndpointSNS();
31-
checkAndSetEndpoint(endpoint);
32-
}
27+
@AfterClass
28+
@AfterAll
29+
public static void tearDown() {
30+
Localstack.INSTANCE.stop();
3331
}
3432

35-
@ExtendWith(LocalstackDockerExtension.class)
36-
@LocalstackDockerProperties(randomizePorts=true, services={"sns"}, useSingleDockerContainer=true)
37-
public static class ContainerTest2 {
38-
39-
@AfterClass
40-
@AfterAll
41-
public static void tearDown() {
42-
Localstack.INSTANCE.stop();
43-
}
33+
@org.junit.jupiter.api.Test
34+
@Order(1)
35+
public void testCheckPort() {
36+
String endpoint = Localstack.INSTANCE.getEndpointSNS();
37+
checkAndSetEndpoint(endpoint);
38+
}
4439

45-
@org.junit.jupiter.api.Test
46-
@Order(2)
47-
public void testCheckPort() {
48-
String endpoint = Localstack.INSTANCE.getEndpointSNS();
49-
checkAndSetEndpoint(endpoint);
50-
}
40+
@org.junit.jupiter.api.Test
41+
@Order(2)
42+
public void testCheckPort2() {
43+
String endpoint = Localstack.INSTANCE.getEndpointSNS();
44+
checkAndSetEndpoint(endpoint);
5145
}
46+
5247
}

0 commit comments

Comments
 (0)
0