/* * JBoss, Home of Professional Open Source * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.messaging.tests.unit.core.server.impl; import org.jboss.messaging.tests.util.UnitTestCase; /** * A ServerSessionImplTest * @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a> * @author <a href="mailto:ataylor@redhat.com">Andy Taylor</a> * @author <a href="mailto:ataylor@redhat.com">Clebert Suconic</a> */ public class ServerSessionImplTest extends UnitTestCase { public void testDummy() { } // private RemotingConnection rc; // private StorageManager sm; // private PostOffice po; // private PagingManager pm; // private HierarchicalRepository<QueueSettings> qs; // private ResourceManager rm; // private SecurityStore ss; // private PacketDispatcher pd; // private Executor executor; // private CommandManager cm; // private MessagingServer server; // // public void testConstructor() throws Exception // { // testConstructor(false); // testConstructor(true); // } // // public void testAutoCommitSend() throws Exception // { // testAutoCommitSend(false); // // testAutoCommitSend(true); // } // // public void testNotAutoCommitSend() throws Exception // { // testNotAutoCommitSend(false); // // testNotAutoCommitSend(true); // } // // public void testAutoCommitSendFailsSecurity() throws Exception // { // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerMessage msg = createStrictMock(ServerMessage.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // expect(sm.generateTransactionID()).andReturn(71626L); // // SimpleString dest = new SimpleString("dest"); // EasyMock.expect(msg.getDestination()).andReturn(dest); // // ss.check(eq(dest), eq(CheckType.WRITE), EasyMock.isA(ServerSessionImpl.class)); // // expectLastCall().andThrow(new MessagingException(MessagingException.SECURITY_EXCEPTION)); // // replay(returner, sm, po, qs, rm, ss, pd, executor, msg, server, cm, pm); // // ServerSessionImpl session = new ServerSessionImpl(123, "blah", null, null, true, false, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // try // { // session.send(msg); // fail("Should throw exception"); // } // catch (MessagingException e) // { // //Ok // } // // verify(returner, sm, po, qs, rm, ss, pd, executor, msg, server, cm, pm); // } // // public void testNotAutoCommitSendFailsSecurity() throws Exception // { // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerMessage msg = createStrictMock(ServerMessage.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // expect(sm.generateTransactionID()).andReturn(71626L); // // final SimpleString dest = new SimpleString("blah"); // expect(msg.getDestination()).andReturn(dest); // ss.check(eq(dest), eq(CheckType.WRITE), isA(ServerSessionImpl.class)); // expectLastCall().andThrow(new MessagingException(MessagingException.SECURITY_EXCEPTION)); // // // replay(returner, sm, po, qs, rm, ss, pd, executor, msg, server, cm, pm); // // ServerSessionImpl session = new ServerSessionImpl(123, "blah", null, null, false, false, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // try // { // session.send(msg); // fail("Should throw exception"); // } // catch (MessagingException e) // { // //Ok // } // // verify(returner, sm, po, qs, rm, ss, pd, executor, msg, server, cm, pm); // // assertEquals(Transaction.State.ROLLBACK_ONLY, session.getTransaction().getState()); // } // // public void testAcknowledgeAllUpToAutoCommitAck() throws Exception // { // testAcknowledgeAllUpToAutoCommitAck(false, false); // testAcknowledgeAllUpToAutoCommitAck(false, true); // testAcknowledgeAllUpToAutoCommitAck(true, false); // testAcknowledgeAllUpToAutoCommitAck(true, true); // } // // public void testAcknowledgeAllUpToNotAutoCommitAck() throws Exception // { // testAcknowledgeAllUpToNotAutoCommitAck(false, false); // testAcknowledgeAllUpToNotAutoCommitAck(false, true); // testAcknowledgeAllUpToNotAutoCommitAck(true, false); // testAcknowledgeAllUpToNotAutoCommitAck(true, true); // } // // public void testAcknowledgeNotAllUpToAutoCommitAck() throws Exception // { // testAcknowledgeNotAllUpToAutoCommitAck(false, false); // testAcknowledgeNotAllUpToAutoCommitAck(false, true); // testAcknowledgeNotAllUpToAutoCommitAck(true, false); // testAcknowledgeNotAllUpToAutoCommitAck(true, true); // } // // public void testAcknowledgeNotAllUpToNotAutoCommitAck() throws Exception // { // testAcknowledgeNotAllUpToNotAutoCommitAck(false, false); // testAcknowledgeNotAllUpToNotAutoCommitAck(false, true); // testAcknowledgeNotAllUpToNotAutoCommitAck(true, false); // testAcknowledgeNotAllUpToNotAutoCommitAck(true, true); // } // // public void testCreateBrowserNullFilter() throws Exception // { // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getAddress()).andReturn(address); // ss.check(address, CheckType.READ, session); // expect(binding.getQueue()).andReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // SessionCreateBrowserResponseMessage message = session.createBrowser(address, null); // assertEquals(message.getBrowserTargetID(), 2); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateBrowseFilter() throws Exception // { // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // SimpleString filter = new SimpleString("myprop = 'foo'"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getAddress()).andReturn(address); // ss.check(address, CheckType.READ, session); // expect(binding.getQueue()).andReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // SessionCreateBrowserResponseMessage message = session.createBrowser(address, filter); // assertEquals(message.getBrowserTargetID(), 2); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateBrowseNullBinding() throws Exception // { // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // SimpleString filter = new SimpleString("myprop = 'foo'"); // expect(po.getBinding(address)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // try // { // session.createBrowser(address, filter); // fail("should throw exception"); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.QUEUE_DOES_NOT_EXIST); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testCreateAndRemoveBrowserDoesntExist() throws Exception // { // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // CommandManager cm = createStrictMock(CommandManager.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getAddress()).andReturn(address); // ss.check(address, CheckType.READ, session); // expect(binding.getQueue()).andReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // expect(pd.generateID()).andReturn(3l); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // SessionCreateBrowserResponseMessage message = session.createBrowser(address, null); // // try // { // session.removeBrowser(new ServerBrowserImpl(session, queue, null, pd, cm)); // fail("should throw exception"); // } // catch (IllegalStateException e) // { // //pass // } // assertEquals(message.getBrowserTargetID(), 2); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateProducer() throws Exception // { // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // //Queue queue = createStrictMock(Queue.class); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // SessionCreateProducerResponseMessage message = session.createProducer(99l, address, -1, 99); // assertEquals(message.getInitialCredits(), -1); // assertEquals(message.getMaxRate(), 99); // assertEquals(message.getProducerTargetID(), 2l); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateProducerWithFlowController() throws Exception // { // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // FlowController flowController = createStrictMock(FlowController.class); // Binding binding = createStrictMock(Binding.class); // expect(po.getFlowController(address)).andReturn(flowController); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // expect(flowController.getInitialCredits(eq(999), (ServerProducer) anyObject())).andReturn(12345); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, flowController); // SessionCreateProducerResponseMessage message = session.createProducer(99l, address, 999, 99); // assertEquals(message.getInitialCredits(), 12345); // assertEquals(message.getMaxRate(), 99); // assertEquals(message.getProducerTargetID(), 2l); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, flowController); // } // // public void testRemoveProducerDoesntExist() throws Exception // { // ServerSessionImpl session = create(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // try // { // session.removeProducer(createStrictMock(ServerProducer.class)); // fail("should throw exception"); // } // catch (IllegalStateException e) // { // //pass // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testCreateConsumer() throws Exception // { // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getAddress()).andReturn(address); // ss.check(address, CheckType.READ, session); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // // SessionCreateConsumerResponseMessage message = session.createConsumer(1, address, null, -1, 99); // assertEquals(message.getWindowSize(), -1); // assertEquals(message.getConsumerTargetID(), 2l); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateConsumerWithQueueSettings() throws Exception // { // QueueSettings queueSettings = new QueueSettings(); // queueSettings.setConsumerMaxRate(66); // queueSettings.setConsumerWindowSize(55); // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getAddress()).andReturn(address); // ss.check(address, CheckType.READ, session); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // SessionCreateConsumerResponseMessage message = session.createConsumer(1, address, null, 999, 99); // assertEquals(message.getWindowSize(), 55); // assertEquals(message.getConsumerTargetID(), 2l); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateConsumerWithFilter() throws Exception // { // QueueSettings queueSettings = new QueueSettings(); // queueSettings.setConsumerMaxRate(66); // queueSettings.setConsumerWindowSize(55); // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // SimpleString filter = new SimpleString("myprop = 'fdfdf'"); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getAddress()).andReturn(address); // ss.check(address, CheckType.READ, session); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // SessionCreateConsumerResponseMessage message = session.createConsumer(1, address, filter, 999, 99); // assertEquals(message.getWindowSize(), 55); // assertEquals(message.getConsumerTargetID(), 2l); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testRemoveConsumerDoesntExist() throws Exception // { // ServerSessionImpl session = create(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // try // { // session.removeConsumer(createNiceMock(ServerConsumer.class)); // fail("should throw exception"); // } // catch (IllegalStateException e) // { // //pass // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // // public void testCreateConsumerNoQueueThrowsException() throws Exception // { // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // expect(po.getBinding(address)).andReturn(null); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // try // { // session.createConsumer(1, address, null, -1, 99); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.QUEUE_DOES_NOT_EXIST); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testSetStarted() throws Exception // { // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getAddress()).andReturn(address); // ss.check(address, CheckType.READ, session); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // queue.addConsumer((Consumer) anyObject()); // queue.deliverAsync(executor); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // //we need to create a consumer to verify it gets started // SessionCreateConsumerResponseMessage message = session.createConsumer(1, address, null, -1, 99); // session.setStarted(true); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // } // // public void testSetClose() throws Exception // { // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andStubReturn(binding); // expect(binding.getAddress()).andStubReturn(address); // expect(binding.getQueue()).andStubReturn(queue); // ss.check(address, CheckType.READ, session); // expectLastCall().asStub(); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // // expect(session.getID()).andReturn(55l); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // expect(pd.generateID()).andReturn(3l); // queue.addConsumer((Consumer) anyObject()); // pd.register((PacketHandler) anyObject()); // expect(pd.generateID()).andReturn(4l); // pd.register((PacketHandler) anyObject()); // expect(queue.removeConsumer((Consumer) anyObject())).andReturn(true); // expect(queue.getConsumerCount()).andStubReturn(1); // pd.unregister(2); // pd.unregister(4); // pd.unregister(3); // expect(sm.generateTransactionID()).andReturn(6l); // server.removeSession(session.getName()); // cm.close(); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // //we need to create a consumer to verify they get closed // session.createConsumer(1, address, null, -1, 99); // session.createProducer(99l, address, -1, 99); // session.createBrowser(address, null); // session.close(); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // } // // public void testRollback() throws Exception // { // ServerSessionImpl session = create(false); // // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // expect(consumer.getClientTargetID()).andStubReturn(999l); // MessageReference[] references = new MessageReference[10]; // ServerMessage[] messages = new ServerMessage[10]; // // Queue queue = createStrictMock(Queue.class); // for (int i = 0; i < 10; i++) // { // references[i] = createStrictMock(MessageReference.class); // messages[i] = createStrictMock(ServerMessage.class); // expect(messages[i].decrementRefCount()).andReturn(0); // pm.messageDone(messages[i]); // expect(messages[i].isDurable()).andStubReturn(false); // expect(references[i].getMessage()).andStubReturn(messages[i]); // expect(references[i].getDeliveryCount()).andReturn(0); // expect(references[i].getQueue()).andReturn(queue); // } // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // Binding binding = createStrictMock(Binding.class); // expect(po.getBinding(address)).andStubReturn(binding); // expect(binding.getAddress()).andStubReturn(address); // ss.check(address, CheckType.READ, session); // expectLastCall().asStub(); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andStubReturn(queue); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // queue.addConsumer((Consumer) anyObject()); // for (int i = 0; i < 10; i++) // { // cm.sendCommandOneway(eq(999l), (Packet) anyObject()); // } // // queue.lock(); // for (int i = 0; i < 10; i++) // { // expect(messages[i].incrementReference(false)).andReturn(1); // expect(pm.addSize(messages[i])).andReturn(1l); // expect(references[i].cancel(sm, po, qs)).andReturn(true); // } // queue.addListFirst((LinkedList<MessageReference>) anyObject()); // queue.unlock(); // // expect(sm.generateTransactionID()).andReturn(65l); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer, pm); // replay((Object[]) references); // replay((Object[]) messages); // //we need to create a consumer to verify things get rolled back // session.createConsumer(1, address, null, -1, 99); // for (MessageReference reference : references) // { // session.handleDelivery(reference, consumer); // } // session.rollback(); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer, pm); // verify((Object[]) references); // verify((Object[]) messages); // } // // public void testCancelAll() throws Exception // { // ServerSessionImpl session = create(false); // // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // expect(consumer.getClientTargetID()).andStubReturn(999l); // MessageReference[] references = new MessageReference[10]; // ServerMessage[] messages = new ServerMessage[10]; // // Queue queue = createStrictMock(Queue.class); // for (int i = 0; i < 10; i++) // { // references[i] = createStrictMock(MessageReference.class); // messages[i] = createStrictMock(ServerMessage.class); // // expect(messages[i].decrementRefCount()).andReturn(0); // pm.messageDone(messages[i]); // // expect(messages[i].isDurable()).andStubReturn(false); // expect(references[i].getMessage()).andStubReturn(messages[i]); // expect(references[i].getDeliveryCount()).andReturn(0); // expect(references[i].getQueue()).andReturn(queue); // } // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // Binding binding = createStrictMock(Binding.class); // expect(po.getBinding(address)).andStubReturn(binding); // expect(binding.getAddress()).andStubReturn(address); // ss.check(address, CheckType.READ, session); // expectLastCall().asStub(); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andStubReturn(queue); // // expect(session.getID()).andReturn(55l); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // queue.addConsumer((Consumer) anyObject()); // for (int i = 0; i < 10; i++) // { // cm.sendCommandOneway(eq(999l), (Packet) anyObject()); // } // // queue.lock(); // for (int i = 0; i < 10; i++) // { // expect(messages[i].incrementReference(false)).andReturn(1); // expect(pm.addSize(messages[i])).andReturn(1l); // expect(references[i].cancel(sm, po, qs)).andReturn(true); // } // queue.addListFirst((LinkedList<MessageReference>) anyObject()); // queue.unlock(); // // expect(sm.generateTransactionID()).andReturn(65l); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer, pm); // replay((Object[]) references); // replay((Object[]) messages); // //we need to create a consumer to verify things get rolled back // session.createConsumer(1, address, null, -1, 99); // for (MessageReference reference : references) // { // session.handleDelivery(reference, consumer); // } // session.cancel(-1, false); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer, pm); // verify((Object[]) references); // verify((Object[]) messages); // } // // public void testCancelOne() throws Exception // { // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // expect(consumer.getClientTargetID()).andStubReturn(999l); // MessageReference[] references = new MessageReference[10]; // ServerMessage[] messages = new ServerMessage[10]; // // Queue queue = createStrictMock(Queue.class); // for (int i = 0; i < 10; i++) // { // references[i] = createStrictMock(MessageReference.class); // messages[i] = createStrictMock(ServerMessage.class); // expect(messages[i].isDurable()).andStubReturn(false); // expect(references[i].getMessage()).andStubReturn(messages[i]); // expect(references[i].getDeliveryCount()).andReturn(0); // //expect(references[i].getQueue()).andReturn(queue); // } // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // expect(po.getBinding(address)).andStubReturn(binding); // expect(binding.getAddress()).andStubReturn(address); // ss.check(address, CheckType.READ, session); // expectLastCall().asStub(); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andStubReturn(queue); // //expect(session.getID()).andReturn(55l); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // queue.addConsumer((Consumer) anyObject()); // for (int i = 0; i < 10; i++) // { // cm.sendCommandOneway(eq(999l), (Packet) anyObject()); // } // // references[5].expire(sm, po, qs); // // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer); // replay((Object[]) references); // replay((Object[]) messages); // session.createConsumer(1, address, null, -1, 99); // for (MessageReference reference : references) // { // session.handleDelivery(reference, consumer); // } // session.cancel(5, true); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer); // verify((Object[]) references); // verify((Object[]) messages); // } // // public void testCommit() throws Exception // { // ServerSessionImpl session = create(false); // // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // expect(consumer.getClientTargetID()).andStubReturn(999l); // MessageReference[] references = new MessageReference[10]; // ServerMessage[] messages = new ServerMessage[10]; // // Queue queue = createStrictMock(Queue.class); // for (int i = 0; i < 10; i++) // { // references[i] = createStrictMock(MessageReference.class); // messages[i] = createStrictMock(ServerMessage.class); // // expect(messages[i].decrementRefCount()).andReturn(0); // pm.messageDone(messages[i]); // // expect(messages[i].isDurable()).andStubReturn(false); // expect(references[i].getMessage()).andStubReturn(messages[i]); // expect(references[i].getDeliveryCount()).andReturn(0); // references[i].incrementDeliveryCount(); // expect(references[i].getQueue()).andStubReturn(queue); // } // QueueSettings queueSettings = new QueueSettings(); // SimpleString address = new SimpleString("qName"); // Binding binding = createStrictMock(Binding.class); // expect(po.getBinding(address)).andStubReturn(binding); // expect(binding.getAddress()).andStubReturn(address); // ss.check(address, CheckType.READ, session); // expectLastCall().asStub(); // expect(qs.getMatch("qName")).andStubReturn(queueSettings); // expect(binding.getQueue()).andStubReturn(queue); // // expect(session.getID()).andReturn(55l); // expect(pd.generateID()).andReturn(2l); // pd.register((PacketHandler) anyObject()); // queue.addConsumer((Consumer) anyObject()); // for (int i = 0; i < 10; i++) // { // cm.sendCommandOneway(eq(999l), (Packet) anyObject()); // queue.referenceAcknowledged(references[i]); // } // expect(sm.generateTransactionID()).andReturn(10l); // // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer, pm); // replay((Object[]) references); // replay((Object[]) messages); // session.createConsumer(1, address, null, -1, 99); // for (MessageReference reference : references) // { // session.handleDelivery(reference, consumer); // } // session.acknowledge(10, true); // session.commit(); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, consumer, pm); // verify((Object[]) references); // verify((Object[]) messages); // } // // public void testXAStart() throws Exception // { // ServerSessionImpl session = create(true); // Xid xid = createStrictMock(Xid.class); // expect(sm.generateTransactionID()).andReturn(1l); // expect(rm.putTransaction(eq(xid), (Transaction) anyObject())).andReturn(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAStart(xid); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAStartNoId() throws Exception // { // ServerSessionImpl session = create(true); // Xid xid = createStrictMock(Xid.class); // expect(sm.generateTransactionID()).andReturn(1l); // expect(rm.putTransaction(eq(xid), (Transaction) anyObject())).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAStart(xid); // assertEquals(message.getResponseCode(), XAException.XAER_DUPID); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAStartTXExists() throws Exception // { // ServerSessionImpl session = create(false); // Xid xid = createStrictMock(Xid.class); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAStart(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXACommit() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // tx.commit(); // expect(rm.removeTransaction(xid)).andReturn(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XACommit(true, xid); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXACommitNotRemoved() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // tx.commit(); // expect(rm.removeTransaction(xid)).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XACommit(true, xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXACommitStateSuspended() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.SUSPENDED); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XACommit(true, xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXACommitNoTx() throws Exception // { // ServerSessionImpl session = create(true); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XACommit(true, xid); // assertEquals(message.getResponseCode(), XAException.XAER_NOTA); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXACommitTxExists() throws Exception // { // ServerSessionImpl session = create(false); // Xid xid = createStrictMock(Xid.class); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XACommit(true, xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAEnd() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.SUSPENDED); // tx.resume(); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAEnd(xid, false); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAEndNotSuspended() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAEnd(xid, false); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAEndNoTx() throws Exception // { // ServerSessionImpl session = create(true); // // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAEnd(xid, false); // assertEquals(message.getResponseCode(), XAException.XAER_NOTA); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAEndTxists() throws Exception // { // ServerSessionImpl session = create(true); // // Xid xid = createStrictMock(Xid.class); // expect(sm.generateTransactionID()).andReturn(9l); // expect(rm.putTransaction(eq(xid), (Transaction) anyObject())).andAnswer(new IAnswer<Boolean>() // { // public Boolean answer() throws Throwable // { // TransactionImpl tx = (TransactionImpl) getCurrentArguments()[1]; // tx.suspend(); // return true; // } // }); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // session.XAStart(xid); // SessionXAResponseMessage message = session.XAEnd(xid, false); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAForget() throws Exception // { // ServerSessionImpl session = create(true); // // Xid xid = createStrictMock(Xid.class); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAForget(xid); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAJoin() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAJoin(xid); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAJoinSuspended() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.SUSPENDED); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAJoin(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAJoinNoTx() throws Exception // { // ServerSessionImpl session = create(true); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAJoin(xid); // assertEquals(message.getResponseCode(), XAException.XAER_NOTA); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAPrepare() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // expect(tx.hasConsumers()).andReturn(false); // tx.prepare(); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAPrepare(xid); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAPrepareTxEmpty() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // expect(tx.hasConsumers()).andReturn(true); // expect(rm.removeTransaction(xid)).andReturn(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAPrepare(xid); // assertEquals(message.getResponseCode(), XAResource.XA_RDONLY); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAPrepareTxEmptyNotRemoved() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // expect(tx.hasConsumers()).andReturn(true); // expect(rm.removeTransaction(xid)).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAPrepare(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAPrepareSuspended() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.SUSPENDED); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAPrepare(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAPrepareNoTx() throws Exception // { // ServerSessionImpl session = create(true); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAPrepare(xid); // assertEquals(message.getResponseCode(), XAException.XAER_NOTA); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAPrepareTxExists() throws Exception // { // ServerSessionImpl session = create(false); // Xid xid = createStrictMock(Xid.class); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAPrepare(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAResume() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.SUSPENDED); // tx.resume(); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAResume(xid); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAResumeNotSuspended() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XAResume(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXAResumeNoTx() throws Exception // { // ServerSessionImpl session = create(true); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAResume(xid); // assertEquals(message.getResponseCode(), XAException.XAER_NOTA); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXAResumeTxExists() throws Exception // { // ServerSessionImpl session = create(false); // Xid xid = createStrictMock(Xid.class); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XAResume(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXARollback() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // expect(rm.removeTransaction(xid)).andReturn(true); // tx.rollback(qs); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XARollback(xid); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXARollbackTxNotRemoved() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // expect(rm.removeTransaction(xid)).andReturn(false); // tx.rollback(qs); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XARollback(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXARollbackTxSuspended() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.SUSPENDED); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // SessionXAResponseMessage message = session.XARollback(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXARollbackNoTx() throws Exception // { // ServerSessionImpl session = create(true); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XARollback(xid); // assertEquals(message.getResponseCode(), XAException.XAER_NOTA); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXARollbackTxExists() throws Exception // { // ServerSessionImpl session = create(false); // Xid xid = createStrictMock(Xid.class); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // SessionXAResponseMessage message = session.XARollback(xid); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXASuspend() throws Exception // { // ServerSessionImpl session = create(true); // Transaction tx = createStrictMock(Transaction.class); // Xid xid = createStrictMock(Xid.class); // expect(rm.getTransaction(xid)).andReturn(tx); // expect(tx.getState()).andReturn(Transaction.State.SUSPENDED); // tx.resume(); // expect(tx.getState()).andReturn(Transaction.State.ACTIVE); // tx.suspend(); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // //calling resume first will allow us to get the mock tx in // session.XAResume(xid); // SessionXAResponseMessage message = session.XASuspend(); // assertEquals(message.getResponseCode(), XAResource.XA_OK); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid, tx); // } // // public void testXASuspendSuspended() throws Exception // { // ServerSessionImpl session = create(true); // // Xid xid = createStrictMock(Xid.class); // expect(sm.generateTransactionID()).andReturn(9l); // expect(rm.putTransaction(eq(xid), (Transaction) anyObject())).andAnswer(new IAnswer<Boolean>() // { // public Boolean answer() throws Throwable // { // TransactionImpl tx = (TransactionImpl) getCurrentArguments()[1]; // tx.suspend(); // return true; // } // }); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // session.XAStart(xid); // SessionXAResponseMessage message = session.XASuspend(); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, xid); // } // // public void testXASuspendNoTx() throws Exception // { // ServerSessionImpl session = create(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // SessionXAResponseMessage message = session.XASuspend(); // assertEquals(message.getResponseCode(), XAException.XAER_PROTO); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testGetInDoubtXids() throws Exception // { // ServerSessionImpl session = create(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // assertNull(session.getInDoubtXids()); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testSetXaTimeoutTrue() throws Exception // { // ServerSessionImpl session = create(true); // expect(rm.setTimeoutSeconds(123456789)).andReturn(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // assertTrue(session.setXATimeout(123456789)); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testSetXaTimeoutFalse() throws Exception // { // ServerSessionImpl session = create(true); // expect(rm.setTimeoutSeconds(123456789)).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // assertFalse(session.setXATimeout(123456789)); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testGetXaTimeout() throws Exception // { // ServerSessionImpl session = create(true); // expect(rm.getTimeoutSeconds()).andReturn(987654321); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // assertEquals(session.getXATimeout(), 987654321); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testAddDestination() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // ss.check(address, CheckType.CREATE, session); // expect(po.addDestination(address, true)).andReturn(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // session.addDestination(address, true, false); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testAddDestinationThrowsExceptionOnQNotAdded() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // ss.check(address, CheckType.CREATE, session); // expect(po.addDestination(address, true)).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // try // { // session.addDestination(address, true, false); // fail("should throw exception"); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.ADDRESS_EXISTS); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testRemoveDestination() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // ss.check(address, CheckType.CREATE, session); // expect(po.removeDestination(address, true)).andReturn(true); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // session.removeDestination(address, true); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testRemoveDestinationThrowsExceptionOnQNotAdded() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // ss.check(address, CheckType.CREATE, session); // expect(po.removeDestination(address, true)).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // try // { // session.removeDestination(address, true); // fail("should throw exception"); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.ADDRESS_DOES_NOT_EXIST); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // } // // public void testCreateQueueNoBinding() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // expect(po.containsDestination(address)).andReturn(false); // ss.check(address, CheckType.CREATE, session); // expect(po.getBinding(address)).andReturn(binding); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // try // { // session.createQueue(address, address, null, true, false); // fail("shoul throw exception"); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.QUEUE_EXISTS); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateQueueNoSecurity() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // expect(po.containsDestination(address)).andReturn(false); // ss.check(address, CheckType.CREATE, session); // expectLastCall().andThrow(new MessagingException(MessagingException.SECURITY_EXCEPTION)); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // try // { // session.createQueue(address, address, null, true, false); // fail("shoul throw exception"); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.SECURITY_EXCEPTION); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateQueueTemporary() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.containsDestination(address)).andReturn(false); // ss.check(address, CheckType.CREATE, session); // expect(po.getBinding(address)).andReturn(null); // expect(po.addBinding(address, address, null, false)).andReturn(binding); // expect(binding.getQueue()).andReturn(queue); // rc.addFailureListener(EasyMock.isA(FailureListener.class)); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // session.createQueue(address, address, null, false, true); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateQueueWithFilter() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // final SimpleString filter = new SimpleString("myprop = 'ssf'"); // final Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.containsDestination(address)).andReturn(false); // ss.check(address, CheckType.CREATE, session); // expect(po.getBinding(address)).andReturn(null); // expect(po.addBinding(eq(address), eq(address), (Filter) anyObject(), eq(true))).andAnswer(new IAnswer<Binding>() // { // public Binding answer() throws Throwable // { // assertEquals(filter, ((Filter) getCurrentArguments()[2]).getFilterString()); // return binding; // } // }); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // session.createQueue(address, address, filter, true, false); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testCreateQueue() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.containsDestination(address)).andReturn(false); // ss.check(address, CheckType.CREATE, session); // expect(po.getBinding(address)).andReturn(null); // expect(po.addBinding(address, address, null, true)).andReturn(binding); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // session.createQueue(address, address, null, true, false); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding); // } // // public void testDeleteQueue() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.removeBinding(address)).andReturn(binding); // expect(binding.getQueue()).andStubReturn(queue); // expect(queue.getConsumerCount()).andReturn(0); // expect(queue.isDurable()).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // session.deleteQueue(address); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // } // // public void testDeleteQueueDurable() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.removeBinding(address)).andReturn(binding); // expect(binding.getQueue()).andStubReturn(queue); // expect(queue.getConsumerCount()).andReturn(0); // expect(queue.isDurable()).andReturn(true); // queue.deleteAllReferences(sm); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // session.deleteQueue(address); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // } // // public void testDeleteQueueWithConsumers() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.removeBinding(address)).andReturn(binding); // expect(binding.getQueue()).andStubReturn(queue); // expect(queue.getConsumerCount()).andReturn(1); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // try // { // session.deleteQueue(address); // fail("should throw exception"); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.ILLEGAL_STATE); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // } // // public void testDeleteQueueDoesntExist() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.removeBinding(address)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // try // { // session.deleteQueue(address); // fail("should throw exception"); // } // catch (MessagingException e) // { // assertEquals(e.getCode(), MessagingException.QUEUE_DOES_NOT_EXIST); // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // } // // public void testExecuteQueueQuery() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createMock(Queue.class); // // QueueSettings settings = new QueueSettings(); // settings.setMaxSizeBytes(12345); // expect(queue.getSettings()).andReturn(settings); // // expect(po.getBinding(address)).andReturn(binding); // // expect(binding.getQueue()).andReturn(queue); // expect(queue.getFilter()).andReturn(null); // expect(queue.isDurable()).andReturn(true); // expect(queue.getConsumerCount()).andReturn(2); // expect(queue.getMessageCount()).andReturn(6789); // expect(binding.getAddress()).andReturn(address); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // SessionQueueQueryMessage message = new SessionQueueQueryMessage(address); // SessionQueueQueryResponseMessage resp = session.executeQueueQuery(address); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // assertEquals(resp.isDurable(),true); // assertEquals(resp.isExists(),true); // assertEquals(resp.getMaxSize(),12345); // assertEquals(resp.getConsumerCount(),2); // assertEquals(resp.getMessageCount(),6789); // assertEquals(resp.getAddress(),address); // assertEquals(resp.getFilterString(),null); // } // // public void testExecuteQueueQueryWithFilter() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createMock(Queue.class); // // // QueueSettings settings = new QueueSettings(); // settings.setMaxSizeBytes(12345); // expect(queue.getSettings()).andReturn(settings); // // // Filter filter = createStrictMock(Filter.class); // expect(po.getBinding(address)).andReturn(binding); // expect(binding.getQueue()).andReturn(queue); // expect(queue.getFilter()).andReturn(filter); // SimpleString filterString = new SimpleString("myprop = 'ddddd'"); // expect(filter.getFilterString()).andReturn(filterString); // expect(queue.isDurable()).andReturn(true); // expect(queue.getConsumerCount()).andReturn(2); // expect(queue.getMessageCount()).andReturn(6789); // expect(binding.getAddress()).andReturn(address); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, filter); // SessionQueueQueryMessage message = new SessionQueueQueryMessage(address); // SessionQueueQueryResponseMessage resp = session.executeQueueQuery(address); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, filter); // assertEquals(resp.isDurable(),true); // assertEquals(resp.isExists(),true); // assertEquals(resp.getMaxSize(),12345); // assertEquals(resp.getConsumerCount(),2); // assertEquals(resp.getMessageCount(),6789); // assertEquals(resp.getAddress(),address); // assertEquals(resp.getFilterString(),filterString); // } // // public void testExecuteQueueQueryNoBinding() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // expect(po.getBinding(address)).andReturn(null); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // SessionQueueQueryMessage message = new SessionQueueQueryMessage(address); // SessionQueueQueryResponseMessage resp = session.executeQueueQuery(address); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // assertEquals(resp.isExists(),false); // } // // public void testExecuteQueueQueryNoQueueNameThrowsException() throws Exception // { // ServerSessionImpl session = create(false); // Binding binding = createStrictMock(Binding.class); // Queue queue = createStrictMock(Queue.class); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // SessionQueueQueryMessage message = new SessionQueueQueryMessage(); // try // { // session.executeQueueQuery(null); // fail("should throw exception"); // } // catch (IllegalArgumentException e) // { // //pass // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue); // } // // public void testExecuteBindingQuery() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // Binding binding = createStrictMock(Binding.class); // Binding binding2 = createStrictMock(Binding.class); // List<Binding> bindings = new ArrayList<Binding>(); // bindings.add(binding); // bindings.add(binding2); // SimpleString qName = new SimpleString("q1"); // Queue queue = createStrictMock(Queue.class); // SimpleString qName2 = new SimpleString("q2"); // Queue queue2 = createStrictMock(Queue.class); // expect(po.containsDestination(address)).andReturn(true); // expect(po.getBindingsForAddress(address)).andReturn(bindings); // expect(binding.getQueue()).andReturn(queue); // expect(binding2.getQueue()).andReturn(queue2); // expect(queue.getName()).andReturn(qName); // expect(queue2.getName()).andReturn(qName2); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, binding2, queue2); // SessionBindingQueryMessage message = new SessionBindingQueryMessage(address); // SessionBindingQueryResponseMessage resp = session.executeBindingQuery(address); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, binding, queue, binding2, queue2); // assertEquals(resp.isExists(),true); // assertEquals(resp.getQueueNames().size(),2); // assertEquals(resp.getQueueNames().get(0),qName); // assertEquals(resp.getQueueNames().get(1),qName2); // // } // // public void testExecuteBindingQueryDoesntExist() throws Exception // { // ServerSessionImpl session = create(false); // SimpleString address = new SimpleString("testQ"); // expect(po.containsDestination(address)).andReturn(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // SessionBindingQueryMessage message = new SessionBindingQueryMessage(address); // SessionBindingQueryResponseMessage resp = session.executeBindingQuery(address); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // assertEquals(resp.isExists(),false); // assertEquals(resp.getQueueNames().size(),0); // // } // // public void testExecuteBindingQueryNoQName() throws Exception // { // ServerSessionImpl session = create(false); // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // SessionBindingQueryMessage message = new SessionBindingQueryMessage(); // try // { // session.executeBindingQuery(null); // fail("should throw exception"); // } // catch (IllegalArgumentException e) // { // //pass // } // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor); // // } // // // Private ----------------------------------------------------------------------------------- // // private ServerSessionImpl create(boolean xa) // throws Exception // { // rc = createStrictMock(RemotingConnection.class); // sm = createStrictMock(StorageManager.class); // po = createStrictMock(PostOffice.class); // pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // qs = createStrictMock(HierarchicalRepository.class); // rm = createStrictMock(ResourceManager.class); // ss = createStrictMock(SecurityStore.class); // pd = createStrictMock(PacketDispatcher.class); // cm = createStrictMock(CommandManager.class); // server = createStrictMock(MessagingServer.class); // executor = createStrictMock(Executor.class); // if (!xa) // { // expect(sm.generateTransactionID()).andReturn(999l); // } // replay(rc, sm, po, qs, rm, ss, pd, cm, server, executor, pm); // ServerSessionImpl sess = new ServerSessionImpl(123, "blah", null, null, false, false, xa, // rc, server, sm, po, qs, rm, ss, pd, executor, cm); // verify(rc, sm, po, qs, rm, ss, pd, cm, server, executor, pm); // reset(rc, sm, po, qs, rm, ss, pd, cm, server, executor, pm); // expect(po.getPagingManager()).andStubReturn(pm); // return sess; // } // // // private void testAcknowledgeAllUpToNotAutoCommitAck(final boolean durableMsg, final boolean durableQueue) throws Exception // { // ServerSession conn = createStrictMock(ServerSession.class); // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // CommandManager cm = createStrictMock(CommandManager.class); // MessagingServer server = createStrictMock(MessagingServer.class); // // final long txID = 918291; // expect(sm.generateTransactionID()).andReturn(txID); // // final int numRefs = 10; // // List<MessageReference> refs = new ArrayList<MessageReference>(); // for (int i = 0; i < numRefs; i++) // { // MessageReference ref = createStrictMock(MessageReference.class); // // expect(consumer.getClientTargetID()).andReturn(76767L); // expect(ref.getMessage()).andReturn(createMock(ServerMessage.class)); // expect(ref.getDeliveryCount()).andReturn(0); // cm.sendCommandOneway(eq(76767L), isA(SessionReceiveMessage.class)); // refs.add(ref); // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, cm, server, pm); // replay(refs.toArray()); // // ServerSessionImpl session = new ServerSessionImpl(123, "blah", null, null, false, false, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // for (MessageReference ref : refs) // { // session.handleDelivery(ref, consumer); // } // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer); // verify(refs.toArray()); // // assertEquals(numRefs, session.getDeliveries().size()); // // int i = 0; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack half of them // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // reset(refs.toArray()); // // Queue queue = createMock(Queue.class); // for (i = 0; i < numRefs / 2; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createMock(ServerMessage.class); // // expect(ref.getMessage()).andStubReturn(msg); // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(durableMsg); // if (durableMsg) // { // expect(queue.isDurable()).andStubReturn(durableQueue); // if (durableQueue) // { // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledgeTransactional(txID, queueID, i); // } // } // replay(msg); // ref.incrementDeliveryCount(); // if (i == numRefs / 2) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // replay(refs.toArray()); // // session.acknowledge(numRefs / 2 - 1, true); // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue); // verify(refs.toArray()); // // assertEquals(numRefs / 2, session.getDeliveries().size()); // // i = numRefs / 2; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack the rest // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // reset(refs.toArray()); // // for (i = numRefs / 2; i < numRefs; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createMock(ServerMessage.class); // // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // // expect(ref.getMessage()).andStubReturn(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(true); // expect(queue.isDurable()).andStubReturn(true); // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledgeTransactional(txID, queueID, i); // replay(msg); // ref.incrementDeliveryCount(); // if (i == numRefs) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // replay(refs.toArray()); // // session.acknowledge(numRefs - 1, true); // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, pm); // verify(refs.toArray()); // // assertEquals(0, session.getDeliveries().size()); // } // // private void testAcknowledgeNotAllUpToNotAutoCommitAck(final boolean durableMsg, final boolean durableQueue) throws Exception // { // ServerSession conn = createStrictMock(ServerSession.class); // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // final long txID = 918291; // expect(sm.generateTransactionID()).andReturn(txID); // // final int numRefs = 10; // // List<MessageReference> refs = new ArrayList<MessageReference>(); // for (int i = 0; i < numRefs; i++) // { // MessageReference ref = createStrictMock(MessageReference.class); // // expect(consumer.getClientTargetID()).andReturn(76767L); // expect(ref.getMessage()).andReturn(createMock(ServerMessage.class)); // expect(ref.getDeliveryCount()).andReturn(0); // cm.sendCommandOneway(eq(76767L), isA(SessionReceiveMessage.class)); // refs.add(ref); // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // replay(refs.toArray()); // // ServerSessionImpl session = new ServerSessionImpl(123, "blah", null, null, false, false, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // for (MessageReference ref : refs) // { // session.handleDelivery(ref, consumer); // } // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // verify(refs.toArray()); // // assertEquals(numRefs, session.getDeliveries().size()); // // int i = 0; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack half of them // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // reset(refs.toArray()); // // Queue queue = createMock(Queue.class); // for (i = 0; i < numRefs / 2; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createMock(ServerMessage.class); // // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // // expect(ref.getMessage()).andStubReturn(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(durableMsg); // if (durableMsg) // { // expect(queue.isDurable()).andStubReturn(durableQueue); // if (durableQueue) // { // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledgeTransactional(txID, queueID, i); // } // } // replay(msg); // ref.incrementDeliveryCount(); // if (i == numRefs / 2) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // replay(refs.toArray()); // for (i = 0; i < numRefs / 2; i++) // { // session.acknowledge(i, false); // } // // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // verify(refs.toArray()); // // assertEquals(numRefs / 2, session.getDeliveries().size()); // // i = numRefs / 2; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack the rest // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // reset(refs.toArray()); // // for (i = numRefs / 2; i < numRefs; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createMock(ServerMessage.class); // // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // // expect(ref.getMessage()).andStubReturn(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(true); // expect(queue.isDurable()).andStubReturn(true); // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledgeTransactional(txID, queueID, i); // replay(msg); // ref.incrementDeliveryCount(); // if (i == numRefs) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // replay(refs.toArray()); // // for (i = numRefs / 2; i < numRefs; i++) // { // session.acknowledge(i, false); // } // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // verify(refs.toArray()); // // assertEquals(0, session.getDeliveries().size()); // } // // private void testAcknowledgeAllUpToAutoCommitAck(final boolean durableMsg, final boolean durableQueue) throws Exception // { // ServerSession conn = createStrictMock(ServerSession.class); // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // expect(sm.generateTransactionID()).andReturn(71626L); // // final int numRefs = 10; // // List<MessageReference> refs = new ArrayList<MessageReference>(); // for (int i = 0; i < numRefs; i++) // { // MessageReference ref = createNiceMock(MessageReference.class); // // expect(consumer.getClientTargetID()).andReturn(76767L); // expect(ref.getMessage()).andReturn(createMock(ServerMessage.class)); // expect(ref.getDeliveryCount()).andReturn(0); // cm.sendCommandOneway(eq(76767L), isA(SessionReceiveMessage.class)); // refs.add(ref); // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // replay(refs.toArray()); // // ServerSessionImpl session = new ServerSessionImpl(123, "bah", null, null, false, true, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // for (MessageReference ref : refs) // { // session.handleDelivery(ref, consumer); // } // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // verify(refs.toArray()); // // assertEquals(numRefs, session.getDeliveries().size()); // // int i = 0; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack half of them // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // reset(refs.toArray()); // // Queue queue = createMock(Queue.class); // for (i = 0; i < numRefs / 2; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createNiceMock(ServerMessage.class); // // expect(ref.getMessage()).andStubReturn(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(durableMsg); // expect(queue.isDurable()).andStubReturn(durableQueue); // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // if (durableMsg && durableQueue) // { // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledge(queueID, i); // } // replay(msg); // queue.referenceAcknowledged(ref); // if (i == numRefs / 2) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // replay(refs.toArray()); // // session.acknowledge(numRefs / 2 - 1, true); // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // verify(refs.toArray()); // // assertEquals(numRefs / 2, session.getDeliveries().size()); // // i = numRefs / 2; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack the rest // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // reset(refs.toArray()); // // for (i = numRefs / 2; i < numRefs; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createMock(ServerMessage.class); // // expect(ref.getMessage()).andStubReturn(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(true); // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // expect(queue.isDurable()).andStubReturn(true); // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledge(queueID, i); // replay(msg); // queue.referenceAcknowledged(ref); // if (i == numRefs) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // replay(refs.toArray()); // // session.acknowledge(numRefs - 1, true); // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // verify(refs.toArray()); // // assertEquals(0, session.getDeliveries().size()); // } // // private void testAcknowledgeNotAllUpToAutoCommitAck(final boolean durableMsg, final boolean durableQueue) throws Exception // { // ServerSession conn = createStrictMock(ServerSession.class); // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerConsumer consumer = createStrictMock(ServerConsumer.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // expect(sm.generateTransactionID()).andReturn(71626L); // // final int numRefs = 10; // // List<MessageReference> refs = new ArrayList<MessageReference>(); // for (int i = 0; i < numRefs; i++) // { // MessageReference ref = createStrictMock(MessageReference.class); // // expect(consumer.getClientTargetID()).andReturn(76767L); // expect(ref.getMessage()).andReturn(createMock(ServerMessage.class)); // expect(ref.getDeliveryCount()).andReturn(0); // cm.sendCommandOneway(eq(76767L), isA(SessionReceiveMessage.class)); // refs.add(ref); // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // replay(refs.toArray()); // // ServerSessionImpl session = new ServerSessionImpl(123, "blah", null, null, false, true, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // for (MessageReference ref : refs) // { // session.handleDelivery(ref, consumer); // } // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // verify(refs.toArray()); // // assertEquals(numRefs, session.getDeliveries().size()); // // int i = 0; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack half of them // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, server, cm, pm); // reset(refs.toArray()); // // Queue queue = createMock(Queue.class); // for (i = 0; i < numRefs / 2; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createMock(ServerMessage.class); // // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // // expect(ref.getMessage()).andStubReturn(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(durableMsg); // expect(queue.isDurable()).andStubReturn(durableQueue); // if (durableMsg && durableQueue) // { // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledge(queueID, i); // } // replay(msg); // queue.referenceAcknowledged(ref); // if (i == numRefs / 2) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // replay(refs.toArray()); // // for (i = 0; i < numRefs / 2; i++) // { // session.acknowledge(i, false); // } // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // verify(refs.toArray()); // // assertEquals(numRefs / 2, session.getDeliveries().size()); // // i = numRefs / 2; // for (Delivery del : session.getDeliveries()) // { // assertEquals(i++, del.getDeliveryID()); // } // // //Now ack the rest // // reset(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm, pm); // reset(refs.toArray()); // // for (i = numRefs / 2; i < numRefs; i++) // { // MessageReference ref = refs.get(i); // ServerMessage msg = createMock(ServerMessage.class); // // expect(msg.decrementRefCount()).andReturn(0); // pm.messageDone(msg); // // expect(ref.getMessage()).andStubReturn(msg); // expect(ref.getQueue()).andStubReturn(queue); // expect(msg.isDurable()).andStubReturn(true); // expect(queue.isDurable()).andStubReturn(true); // expect(msg.decrementDurableRefCount()).andStubReturn(numRefs); // final long queueID = 1929012; // expect(queue.getPersistenceID()).andReturn(queueID); // expect(msg.getMessageID()).andStubReturn(i); // sm.storeAcknowledge(queueID, i); // replay(msg); // queue.referenceAcknowledged(ref); // if (i == numRefs) // { // break; // } // } // // replay(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm); // replay(refs.toArray()); // // for (i = numRefs / 2; i < numRefs; i++) // { // session.acknowledge(i, false); // } // // verify(conn, returner, sm, po, qs, rm, ss, pd, executor, consumer, queue, server, cm); // verify(refs.toArray()); // // assertEquals(0, session.getDeliveries().size()); // } // // private void testAutoCommitSend(final boolean persistent) throws Exception // { // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerMessage msg = createStrictMock(ServerMessage.class); // MessageReference ref1 = createStrictMock(MessageReference.class); // MessageReference ref2 = createStrictMock(MessageReference.class); // MessageReference ref3 = createStrictMock(MessageReference.class); // Queue queue1 = createStrictMock(Queue.class); // Queue queue2 = createStrictMock(Queue.class); // Queue queue3 = createStrictMock(Queue.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // expect(sm.generateTransactionID()).andReturn(71626L); // // SimpleString dest = new SimpleString("dest"); // EasyMock.expect(msg.getDestination()).andReturn(dest); // // ss.check(eq(dest), eq(CheckType.WRITE), EasyMock.isA(ServerSessionImpl.class)); // // final long messageID = 81129873; // expect(sm.generateMessageID()).andReturn(messageID); // msg.setMessageID(messageID); // // List<MessageReference> refs = new ArrayList<MessageReference>(); // refs.add(ref1); // refs.add(ref2); // refs.add(ref3); // expect(po.route(msg)).andReturn(refs); // expect(msg.getDurableRefCount()).andReturn(persistent ? 3 : 0); // if (persistent) // { // sm.storeMessage(msg); // } // expect(ref1.getQueue()).andReturn(queue1); // expect(ref2.getQueue()).andReturn(queue2); // expect(ref3.getQueue()).andReturn(queue3); // expect(queue1.addLast(ref1)).andReturn(HandleStatus.HANDLED); // expect(queue2.addLast(ref2)).andReturn(HandleStatus.HANDLED); // expect(queue3.addLast(ref3)).andReturn(HandleStatus.HANDLED); // // replay(returner, sm, po, qs, rm, ss, pd, executor, msg, ref1, ref2, ref3, queue1, queue2, queue3, server, cm, pm); // // ServerSessionImpl session = new ServerSessionImpl(123, "blah", null, null, true, false, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // session.send(msg); // // verify(returner, sm, po, qs, rm, ss, pd, executor, msg, ref1, ref2, ref3, queue1, queue2, queue3, server, cm, pm); // } // // private void testNotAutoCommitSend(final boolean persistent) throws Exception // { // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // ServerMessage msg = createNiceMock(ServerMessage.class); // MessageReference ref1 = createStrictMock(MessageReference.class); // MessageReference ref2 = createStrictMock(MessageReference.class); // MessageReference ref3 = createStrictMock(MessageReference.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // final long transactionID = 27334; // expect(sm.generateTransactionID()).andReturn(transactionID); // // SimpleString dest = new SimpleString("dest"); // EasyMock.expect(msg.getDestination()).andReturn(dest); // ss.check(eq(dest), eq(CheckType.WRITE), EasyMock.isA(ServerSessionImpl.class)); // // final long messageID = 81129873; // expect(sm.generateMessageID()).andReturn(messageID); // msg.setMessageID(messageID); // // List<MessageReference> refs = new ArrayList<MessageReference>(); // refs.add(ref1); // refs.add(ref2); // refs.add(ref3); // expect(po.route(msg)).andReturn(refs); // expect(msg.getDurableRefCount()).andReturn(persistent ? 3 : 0); // if (persistent) // { // sm.storeMessageTransactional(transactionID, msg); // } // // replay(returner, sm, po, qs, rm, ss, pd, executor, msg, ref1, ref2, ref3, server, cm, pm); // // ServerSessionImpl session = new ServerSessionImpl(123, "blah", null, null, false, false, false, // returner, server, sm, po, qs, rm, ss, pd, executor, cm); // // session.send(msg); // // verify(returner, sm, po, qs, rm, ss, pd, executor, msg, ref1, ref2, ref3, server, cm, pm); // } // // // private void testConstructor(final boolean xa) throws Exception // { // RemotingConnection returner = createStrictMock(RemotingConnection.class); // StorageManager sm = createStrictMock(StorageManager.class); // PostOffice po = createStrictMock(PostOffice.class); // // PagingManager pm = createNiceMock(PagingManager.class); // expect(po.getPagingManager()).andStubReturn(pm); // // HierarchicalRepository<QueueSettings> qs = createStrictMock(HierarchicalRepository.class); // ResourceManager rm = createStrictMock(ResourceManager.class); // SecurityStore ss = createStrictMock(SecurityStore.class); // PacketDispatcher pd = createStrictMock(PacketDispatcher.class); // Executor executor = createStrictMock(Executor.class); // MessagingServer server = createStrictMock(MessagingServer.class); // CommandManager cm = createStrictMock(CommandManager.class); // // final long id = 102981029; // // if (!xa) // { // expect(sm.generateTransactionID()).andReturn(71626L); // } // // replay(returner, sm, po, qs, rm, ss, pd, executor, server, cm, pm); // // ServerSession session = new ServerSessionImpl(id, "blah", null, null, true, false, xa, // returner, server, sm, po, qs, rm, ss, pd, executor, // cm); // // verify(returner, sm, po, qs, rm, ss, pd, executor, server, cm, pm); // // assertEquals(id, session.getID()); // } }