Skip to content

Commit 07d7b47

Browse files
refs #111: Fix test coverage
1 parent 57bf533 commit 07d7b47

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

util/local-amazon-sqs/src/test/java/com/jashmore/sqs/util/LocalSqsAsyncClientTest.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
import software.amazon.awssdk.services.sqs.model.GetQueueAttributesRequest;
1414
import software.amazon.awssdk.services.sqs.model.ListQueuesResponse;
1515
import software.amazon.awssdk.services.sqs.model.QueueAttributeName;
16+
import software.amazon.awssdk.services.sqs.model.SendMessageRequest;
17+
18+
import java.util.concurrent.TimeUnit;
1619

1720
public class LocalSqsAsyncClientTest {
1821
@Rule
@@ -150,4 +153,52 @@ public void visibilityTimeoutIsIncludedInQueueWhenBuilt() throws Exception {
150153
.get();
151154
assertThat(visibilityTimeout).contains("60");
152155
}
156+
157+
@Test
158+
public void sendingMessagesToLocalQueueViaNameWillSendMessagesToCorrectQueue() throws Exception {
159+
// arrange
160+
final SqsQueuesConfig queuesConfig = SqsQueuesConfig.builder()
161+
.sqsServerUrl(queueServerUrl)
162+
.queue(SqsQueuesConfig.QueueConfig.builder()
163+
.queueName("queueName")
164+
.visibilityTimeout(60)
165+
.build())
166+
.build();
167+
final LocalSqsAsyncClient sqsAsyncClient = new LocalSqsAsyncClient(queuesConfig);
168+
sqsAsyncClient.buildQueues();
169+
170+
// act
171+
sqsAsyncClient.sendMessageToLocalQueue("queueName", SendMessageRequest.builder().messageBody("payload").build()).get(30, TimeUnit.SECONDS);
172+
sqsAsyncClient.sendMessageToLocalQueue("queueName", "payload2").get(30, TimeUnit.SECONDS);
173+
sqsAsyncClient.sendMessageToLocalQueue("queueName", (builder) -> builder.messageBody("payload3")).get(30, TimeUnit.SECONDS);
174+
175+
// assert
176+
final String approximateNumberOfMessages = sqsAsyncClient.getQueueAttributes(GetQueueAttributesRequest.builder()
177+
.queueUrl(queueServerUrl + "/queue/queueName")
178+
.attributeNames(QueueAttributeName.APPROXIMATE_NUMBER_OF_MESSAGES)
179+
.build())
180+
.thenApply(response -> response.attributes().get(QueueAttributeName.APPROXIMATE_NUMBER_OF_MESSAGES))
181+
.get(30, TimeUnit.SECONDS);
182+
assertThat(approximateNumberOfMessages).isEqualTo("3");
183+
}
184+
185+
@Test
186+
public void queueNameCanBeUsedToGetQueueUrl() {
187+
// arrange
188+
final SqsQueuesConfig queuesConfig = SqsQueuesConfig.builder()
189+
.sqsServerUrl(queueServerUrl)
190+
.queue(SqsQueuesConfig.QueueConfig.builder()
191+
.queueName("queueName")
192+
.visibilityTimeout(60)
193+
.build())
194+
.build();
195+
final LocalSqsAsyncClient sqsAsyncClient = new LocalSqsAsyncClient(queuesConfig);
196+
sqsAsyncClient.buildQueues();
197+
198+
// act
199+
final String queueUrl = sqsAsyncClient.getQueueUrl("queueName");
200+
201+
// assert
202+
assertThat(queueUrl).isEqualTo(queueServerUrl + "/queue/queueName");
203+
}
153204
}

0 commit comments

Comments
 (0)