use of org.apache.qpid.server.protocol.v1_0.type.transport.Attach in project qpid-broker-j by apache.
the class Session_1_0Test method assertAttachSent.
private void assertAttachSent(final AMQPConnection_1_0 connection, final Session_1_0 session, final Attach receivedAttach, final int invocationOffset) {
Attach sentAttach = captureAttach(connection, session, invocationOffset);
assertEquals("Unexpected name", receivedAttach.getName(), sentAttach.getName());
assertEquals("Unexpected role", Role.SENDER, sentAttach.getRole());
}
use of org.apache.qpid.server.protocol.v1_0.type.transport.Attach in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachSharedTopicNonDurableNoContainer.
public void testReceiveAttachSharedTopicNonDurableNoContainer() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
Attach attach = createSharedTopicAttach(false, linkName, address, true);
Attach attach2 = createSharedTopicAttach(false, linkName, address, true);
_session.receiveAttach(attach);
assertAttachSent(_connection, _session, attach);
assertQueues(TOPIC_NAME, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
AMQPConnection_1_0 secondConnection = createAmqpConnection_1_0();
Session_1_0 secondSession = createSession_1_0(secondConnection, 0);
secondSession.receiveAttach(attach2);
assertAttachSent(secondConnection, secondSession, attach2);
assertQueues(TOPIC_NAME, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
final Collection<Queue> queues = _virtualHost.getChildren(Queue.class);
assertEquals("Unexpected number of queues after attach", 1, queues.size());
Queue<?> queue = queues.iterator().next();
Collection<QueueConsumer<?, ?>> consumers = queue.getConsumers();
assertEquals("Unexpected number of consumers", 2, consumers.size());
}
use of org.apache.qpid.server.protocol.v1_0.type.transport.Attach in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachTopicNonDurableNoContainerWithValidSelector.
public void testReceiveAttachTopicNonDurableNoContainerWithValidSelector() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
final String selectorExpression = "test='test'";
Attach attach = createTopicAttach(false, linkName, address, true);
setSelector(attach, selectorExpression);
_session.receiveAttach(attach);
Attach sentAttach = captureAttach(_connection, _session, 0);
assertEquals("Unexpected name", attach.getName(), sentAttach.getName());
assertEquals("Unexpected role", Role.SENDER, sentAttach.getRole());
assertFilter(sentAttach, selectorExpression);
assertQueues(TOPIC_NAME, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
Binding binding = findBinding("amq.direct", TOPIC_NAME);
assertNotNull("Binding is not found", binding);
Map<String, Object> arguments = binding.getArguments();
assertNotNull("Unexpected arguments", arguments);
assertEquals("Unexpected filter on binding", selectorExpression, arguments.get(AMQPFilterTypes.JMS_SELECTOR.toString()));
}
use of org.apache.qpid.server.protocol.v1_0.type.transport.Attach in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachTopicDurableWithContainer.
public void testReceiveAttachTopicDurableWithContainer() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
Attach attach = createTopicAttach(true, linkName + "|1", address, false);
_session.receiveAttach(attach);
assertAttachSent(_connection, _session, attach);
assertQueues(TOPIC_NAME, LifetimePolicy.PERMANENT);
AMQPConnection_1_0 secondConnection = createAmqpConnection_1_0("testContainerId2");
Session_1_0 secondSession = createSession_1_0(secondConnection, 0);
Attach attach2 = createTopicAttach(true, linkName + "|2", address, false);
secondSession.receiveAttach(attach2);
assertAttachSent(secondConnection, secondSession, attach2);
Collection<Queue> queues = _virtualHost.getChildren(Queue.class);
assertEquals("Unexpected number of queues after second subscription with the same subscription name but different container id ", 2, queues.size());
}
use of org.apache.qpid.server.protocol.v1_0.type.transport.Attach in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachTopicDurableNoContainer.
public void testReceiveAttachTopicDurableNoContainer() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
Attach attach = createTopicAttach(true, linkName, address, true);
_session.receiveAttach(attach);
assertAttachSent(_connection, _session, attach);
assertQueues(TOPIC_NAME, LifetimePolicy.PERMANENT);
}
Aggregations