From d7e702a765bbd18b2a64c61297795e1cbe504e69 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Tue, 14 Mar 2017 12:59:28 -0400 Subject: [PATCH] Use controlled atomic for the `isOpen()` stub https://github.com/spring-projects/spring-amqp/pull/584/files#r105809037 --- .../listener/DirectMessageListenerContainerMockTests.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java index 40f05e9a..5e7252ad 100644 --- a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java +++ b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java @@ -30,6 +30,7 @@ import static org.mockito.Mockito.mock; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import org.junit.Test; @@ -61,7 +62,8 @@ public class DirectMessageListenerContainerMockTests { given(connectionFactory.createConnection()).willReturn(connection); given(connection.createChannel(anyBoolean())).willReturn(channel); - given(channel.isOpen()).willReturn(true, false); + final AtomicBoolean isOpen = new AtomicBoolean(true); + willAnswer(i -> isOpen.get()).given(channel).isOpen(); given(channel.queueDeclarePassive(Mockito.anyString())) .willAnswer(invocation -> mock(AMQP.Queue.DeclareOk.class)); given(channel.basicConsume(anyString(), anyBoolean(), anyString(), anyBoolean(), anyBoolean(), @@ -89,6 +91,7 @@ public class DirectMessageListenerContainerMockTests { assertTrue(latch1.await(10, TimeUnit.SECONDS)); assertThat(qos.get(), equalTo(2)); + isOpen.set(false); assertTrue(latch2.await(10, TimeUnit.SECONDS)); container.stop(); }