summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java7
-rw-r--r--java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java67
2 files changed, 72 insertions, 2 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
index 8c433ce985..6ad5eb261e 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
@@ -76,7 +76,7 @@ public class FanoutExchange extends AbstractExchange
public boolean isBound(AMQShortString routingKey, AMQQueue queue)
{
- return _queues.containsKey(queue);
+ return isBound(queue);
}
public boolean isBound(AMQShortString routingKey)
@@ -87,7 +87,10 @@ public class FanoutExchange extends AbstractExchange
public boolean isBound(AMQQueue queue)
{
-
+ if (queue == null)
+ {
+ return false;
+ }
return _queues.containsKey(queue);
}
diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java
new file mode 100644
index 0000000000..67739373e1
--- /dev/null
+++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java
@@ -0,0 +1,67 @@
+package org.apache.qpid.server.exchange;
+
+import static org.mockito.Mockito.mock;
+
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+import org.apache.qpid.framing.AMQShortString;
+import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.server.binding.Binding;
+import org.apache.qpid.server.queue.AMQQueue;
+
+public class FanoutExchangeTest extends TestCase
+{
+ private FanoutExchange _exchange;
+
+ public void setUp()
+ {
+ _exchange = new FanoutExchange();
+ }
+
+ public void testIsBoundAMQShortStringFieldTableAMQQueueWhenQueueIsNull()
+ {
+ assertFalse("calling isBound(AMQShortString,FieldTable,AMQQueue) with null queue should return false",
+ _exchange.isBound((AMQShortString) null, (FieldTable) null, (AMQQueue) null));
+ }
+
+ public void testIsBoundAMQShortStringAMQQueueWhenQueueIsNull()
+ {
+ assertFalse("calling isBound(AMQShortString,AMQQueue) with null queue should return false",
+ _exchange.isBound((AMQShortString) null, (AMQQueue) null));
+ }
+
+ public void testIsBoundAMQQueueWhenQueueIsNull()
+ {
+ assertFalse("calling isBound(AMQQueue) with null queue should return false", _exchange.isBound((AMQQueue) null));
+ }
+
+ public void testIsBoundAMQShortStringFieldTableAMQQueue()
+ {
+ AMQQueue queue = bindQueue();
+ assertTrue("Should return true for a bound queue",
+ _exchange.isBound((AMQShortString) null, (FieldTable) null, queue));
+ }
+
+ public void testIsBoundAMQShortStringAMQQueue()
+ {
+ AMQQueue queue = bindQueue();
+ assertTrue("Should return true for a bound queue",
+ _exchange.isBound((AMQShortString) null, queue));
+ }
+
+ public void testIsBoundAMQQueue()
+ {
+ AMQQueue queue = bindQueue();
+ assertTrue("Should return true for a bound queue",
+ _exchange.isBound(queue));
+ }
+
+ private AMQQueue bindQueue()
+ {
+ AMQQueue queue = mock(AMQQueue.class);
+ _exchange.addBinding(new Binding(UUID.randomUUID(), "does not matter", queue, _exchange, null));
+ return queue;
+ }
+}