Skip to content

Commit 9a297f6

Browse files
Merge pull request #107 from JaidenAshmore/issue/105_fix_flaky_integration_tests
refs #103: Fix flaky tests due to not setting atomic reference before countdown latch
2 parents a1bdde0 + 6b7d538 commit 9a297f6

File tree

3 files changed

+5
-10
lines changed

3 files changed

+5
-10
lines changed

java-dynamic-sqs-listener-core/src/test/java/it/com/jashmore/sqs/argument/MessageArgumentResolutionIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ public static class MessageConsumer {
105105
private final AtomicReference<Message> valueAtomicReference;
106106

107107
public void consume(final Message message) {
108-
latch.countDown();
109108
valueAtomicReference.set(message);
109+
latch.countDown();
110110
}
111111
}
112112
}

java-dynamic-sqs-listener-core/src/test/java/it/com/jashmore/sqs/argument/MessageAttributeIntegrationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,16 @@ public void messageAttributesCanBeConsumedInMessageProcessingMethods() throws Ex
111111
assertThat(messageAttributeReference).hasValue("expected value");
112112
}
113113

114+
@SuppressWarnings("WeakerAccess")
114115
@AllArgsConstructor
115116
public static class MessageConsumer {
116117
private final CountDownLatch latch;
117118
private final AtomicReference<String> valueAtomicReference;
118119

119120
public void consume(@MessageAttribute("key") final String value) {
120121
log.info("Message processed with attribute: {}", value);
121-
latch.countDown();
122122
valueAtomicReference.set(value);
123+
latch.countDown();
123124
}
124125
}
125126
}

java-dynamic-sqs-listener-core/src/test/java/it/com/jashmore/sqs/argument/MessageSystemAttributeIntegrationTest.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,10 @@
55
import static org.assertj.core.api.Assertions.assertThat;
66
import static org.assertj.core.api.Assertions.within;
77

8-
import com.google.common.collect.ImmutableMap;
9-
108
import com.fasterxml.jackson.databind.ObjectMapper;
119
import com.jashmore.sqs.QueueProperties;
1210
import com.jashmore.sqs.argument.ArgumentResolverService;
1311
import com.jashmore.sqs.argument.CoreArgumentResolverService;
14-
import com.jashmore.sqs.argument.attribute.MessageAttribute;
15-
import com.jashmore.sqs.argument.attribute.MessageAttributeDataTypes;
1612
import com.jashmore.sqs.argument.attribute.MessageSystemAttribute;
1713
import com.jashmore.sqs.argument.payload.mapper.JacksonPayloadMapper;
1814
import com.jashmore.sqs.argument.payload.mapper.PayloadMapper;
@@ -30,17 +26,14 @@
3026
import com.jashmore.sqs.test.LocalSqsRule;
3127
import lombok.AllArgsConstructor;
3228
import lombok.extern.slf4j.Slf4j;
33-
import org.assertj.core.data.TemporalOffset;
3429
import org.junit.Before;
3530
import org.junit.Rule;
3631
import org.junit.Test;
3732
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
38-
import software.amazon.awssdk.services.sqs.model.MessageAttributeValue;
3933
import software.amazon.awssdk.services.sqs.model.MessageSystemAttributeName;
4034
import software.amazon.awssdk.services.sqs.model.SendMessageRequest;
4135

4236
import java.time.OffsetDateTime;
43-
import java.time.temporal.ChronoUnit;
4437
import java.util.concurrent.CountDownLatch;
4538
import java.util.concurrent.atomic.AtomicReference;
4639

@@ -111,15 +104,16 @@ public void messageAttributesCanBeConsumedInMessageProcessingMethods() throws Ex
111104
assertThat(messageAttributeReference.get()).isCloseTo(OffsetDateTime.now(), within(2, MINUTES));
112105
}
113106

107+
@SuppressWarnings("WeakerAccess")
114108
@AllArgsConstructor
115109
public static class MessageConsumer {
116110
private final CountDownLatch latch;
117111
private final AtomicReference<OffsetDateTime> valueAtomicReference;
118112

119113
public void consume(@MessageSystemAttribute(MessageSystemAttributeName.APPROXIMATE_FIRST_RECEIVE_TIMESTAMP) final OffsetDateTime value) {
120114
log.info("Message processed with attribute: {}", value);
121-
latch.countDown();
122115
valueAtomicReference.set(value);
116+
latch.countDown();
123117
}
124118
}
125119
}

0 commit comments

Comments
 (0)