/*
* 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;
/**
* @author <a href="ataylor@redhat.com">Andy Taylor</a>
* @author <a href="ataylor@tim.fox@jboss.com">Tim Fox</a>
*/
public class ServerBrowserImplTest extends UnitTestCase
{
public void testDummy()
{
}
// public void testConstructor() throws Exception
// {
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// EasyMock.verify(session, destination, dispatcher, cm);
// assertEquals(999l, browser.getID());
// }
//
// public void testConstructorWithValidFilter() throws Exception
// {
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// String messageFilter = "myproperty='this'";
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// EasyMock.verify(session, destination, dispatcher, cm);
// assertEquals(999l, browser.getID());
// }
//
// public void testConstructorWithInValidFilter() throws Exception
// {
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// String messageFilter = "this is a rubbish filter";
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = null;
// try
// {
// browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// fail("should throw exception");
// }
// catch (MessagingException e)
// {
// assertEquals(e.getCode(), MessagingException.INVALID_FILTER_EXPRESSION);
// }
// EasyMock.verify(session, destination, dispatcher, cm);
// }
//
// public void testClose() throws Exception
// {
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// EasyMock.reset(session);
// session.removeBrowser(browser);
// EasyMock.replay(session);
// browser.close();
// EasyMock.verify(session, destination, dispatcher, cm);
// assertEquals(999l, browser.getID());
// }
//
// public void testNextMessage() throws Exception
// {
// List<MessageReference> refs = setupList();
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// EasyMock.expect(destination.list(null)).andReturn(refs);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// for (MessageReference ref : refs)
// {
// assertTrue(browser.hasNextMessage());
// assertEquals(browser.nextMessage(), ref.getMessage());
// }
// EasyMock.verify(session, destination, dispatcher, cm);
// }
//
// public void testReset() throws Exception
// {
// List<MessageReference> refs = setupList();
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// EasyMock.expect(destination.list(null)).andStubReturn(refs);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// for (MessageReference ref : refs)
// {
// assertTrue(browser.hasNextMessage());
// assertEquals(browser.nextMessage(), ref.getMessage());
// }
// browser.reset();
// for (MessageReference ref : refs)
// {
// assertTrue(browser.hasNextMessage());
// assertEquals(browser.nextMessage(), ref.getMessage());
// }
// EasyMock.verify(session, destination, dispatcher, cm);
// }
//
// public void testNextBlock() throws Exception
// {
// List<MessageReference> refs = setupList();
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// EasyMock.expect(destination.list(null)).andReturn(refs);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// Message[] messages = browser.nextMessageBlock(2);
// Message[] messages2 = browser.nextMessageBlock(3);
// assertEquals(messages.length, 2);
// assertEquals(messages2.length, 3);
// assertEquals(messages[0], refs.get(0).getMessage());
// assertEquals(messages[1], refs.get(1).getMessage());
// assertEquals(messages2[0], refs.get(2).getMessage());
// assertEquals(messages2[1], refs.get(3).getMessage());
// assertEquals(messages2[2], refs.get(4).getMessage());
// EasyMock.verify(session, destination, dispatcher, cm);
// }
//
//
// public void testNextBlockWithOneThrowsException() throws Exception
// {
// List<MessageReference> refs = setupList();
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// EasyMock.expect(destination.list(null)).andReturn(refs);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.replay(session, destination, dispatcher, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// Message[] messages = browser.nextMessageBlock(2);
// try
// {
// browser.nextMessageBlock(1);
// fail("should throw exception");
// }
// catch (IllegalArgumentException e)
// {
// //pass
// }
// assertEquals(messages.length, 2);
// assertEquals(messages[0], refs.get(0).getMessage());
// assertEquals(messages[1], refs.get(1).getMessage());
// EasyMock.verify(session, destination, dispatcher, cm);
// }
//
// public void testCloseDoHandle() throws Exception
// {
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// Packet packet = EasyMock.createStrictMock(Packet.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.expect(packet.getType()).andReturn(PacketImpl.CLOSE);
// EasyMock.expect(packet.getResponseTargetID()).andStubReturn(1l);
// cm.sendCommandOneway(EasyMock.eq(1l), (Packet) EasyMock.anyObject());
// cm.packetProcessed(packet);
// EasyMock.replay(session, destination, dispatcher, packet, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// EasyMock.reset(session);
// session.removeBrowser(browser);
// EasyMock.replay(session);
// PacketHandler handler = browser.newHandler();
// handler.handle(132, packet);
// EasyMock.verify(session, destination, dispatcher, cm);
// assertEquals(999l, browser.getID());
// }
//
// public void testHasNextMessageDoHandle() throws Exception
// {
// final List<MessageReference> refs = setupList();
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// EasyMock.expect(destination.list(null)).andStubReturn(refs);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// Packet packet = EasyMock.createStrictMock(Packet.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.expect(packet.getType()).andReturn(PacketImpl.SESS_BROWSER_HASNEXTMESSAGE);
// EasyMock.expect(packet.getResponseTargetID()).andStubReturn(1l);
// cm.sendCommandOneway(EasyMock.eq(1l), (Packet) EasyMock.anyObject());
// EasyMock.expectLastCall().andAnswer(new IAnswer<Object>()
// {
// public Object answer() throws Throwable
// {
// long targetID = (Long)EasyMock.getCurrentArguments()[0];
// assertEquals(1, targetID);
// SessionBrowserHasNextMessageResponseMessage resp =
// (SessionBrowserHasNextMessageResponseMessage) EasyMock.getCurrentArguments()[1];
// assertEquals(resp.hasNext(), true);
// return null;
// }
// });
// cm.packetProcessed(packet);
// EasyMock.replay(session, destination, dispatcher, packet, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// PacketHandler handler = browser.newHandler();
// handler.handle(1245, packet);
// EasyMock.verify(session, destination, dispatcher, packet, cm);
// assertEquals(999l, handler.getID());
// }
//
// public void testNextMessageDoHandle() throws Exception
// {
// final List<MessageReference> refs = setupList();
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// EasyMock.expect(destination.list(null)).andStubReturn(refs);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// Packet packet = EasyMock.createStrictMock(Packet.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.expect(packet.getType()).andReturn(PacketImpl.SESS_BROWSER_NEXTMESSAGE);
// EasyMock.expect(packet.getResponseTargetID()).andStubReturn(1l);
// cm.sendCommandOneway(EasyMock.eq(1l), (Packet) EasyMock.anyObject());
// EasyMock.expectLastCall().andAnswer(new IAnswer<Object>()
// {
// public Object answer() throws Throwable
// {
// long targetID = (Long)EasyMock.getCurrentArguments()[0];
// assertEquals(1, targetID);
// SessionReceiveMessage resp = (SessionReceiveMessage) EasyMock.getCurrentArguments()[1];
// assertEquals(resp.getServerMessage(), refs.get(0).getMessage());
// return null;
// }
// });
// cm.packetProcessed(packet);
// EasyMock.replay(session, destination, dispatcher, packet, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// PacketHandler handler = browser.newHandler();
// handler.handle(1762162, packet);
// EasyMock.verify(session, destination, dispatcher, packet, cm);
// assertEquals(999l, browser.getID());
// }
//
// public void testResetDoHandle() throws Exception
// {
// final List<MessageReference> refs = setupList();
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// EasyMock.expect(destination.list(null)).andStubReturn(refs);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// Packet packet = EasyMock.createStrictMock(Packet.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.expect(packet.getType()).andReturn(PacketImpl.SESS_BROWSER_NEXTMESSAGE);
// EasyMock.expect(packet.getResponseTargetID()).andStubReturn(1l);
// EasyMock.expect(packet.getType()).andReturn(PacketImpl.SESS_BROWSER_RESET);
// EasyMock.expect(packet.getType()).andReturn(PacketImpl.SESS_BROWSER_NEXTMESSAGE);
// cm.sendCommandOneway(EasyMock.eq(1l), (Packet) EasyMock.anyObject());
// EasyMock.expectLastCall().andAnswer(new IAnswer<Object>()
// {
// public Object answer() throws Throwable
// {
// long targetID = (Long)EasyMock.getCurrentArguments()[0];
// assertEquals(1, targetID);
// SessionReceiveMessage resp = (SessionReceiveMessage) EasyMock.getCurrentArguments()[1];
// assertEquals(resp.getServerMessage(), refs.get(0).getMessage());
// return null;
// }
// });
// cm.packetProcessed(packet);
// cm.sendCommandOneway(EasyMock.eq(1l), (Packet) EasyMock.anyObject()) ;
// cm.packetProcessed(packet);
// cm.sendCommandOneway(EasyMock.eq(1l), (Packet) EasyMock.anyObject()) ;
// EasyMock.expectLastCall().andAnswer(new IAnswer<Object>()
// {
// public Object answer() throws Throwable
// {
// long targetID = (Long)EasyMock.getCurrentArguments()[0];
// assertEquals(1, targetID);
// SessionReceiveMessage resp = (SessionReceiveMessage) EasyMock.getCurrentArguments()[1];
// assertEquals(resp.getServerMessage(), refs.get(0).getMessage());
// return null;
// }
// });
// cm.packetProcessed(packet);
// EasyMock.replay(session, destination, dispatcher, packet, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// PacketHandler handler = browser.newHandler();
// handler.handle(1234, packet);
// handler.handle(1234, packet);
// handler.handle(1234, packet);
// EasyMock.verify(session, destination, dispatcher, packet, cm);
// assertEquals(999l, browser.getID());
// }
//
// public void testUnhandledDoHandle() throws Exception
// {
// ServerSession session = EasyMock.createStrictMock(ServerSession.class);
// Queue destination = EasyMock.createStrictMock(Queue.class);
// String messageFilter = null;
// PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
// Packet packet = EasyMock.createStrictMock(Packet.class);
// CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
// EasyMock.expect(dispatcher.generateID()).andReturn(999l);
// EasyMock.expect(packet.getType()).andReturn(Byte.MAX_VALUE);
// EasyMock.expect(packet.getResponseTargetID()).andStubReturn(1l);
// cm.sendCommandOneway(EasyMock.eq(1l), (Packet) EasyMock.anyObject());
// EasyMock.expectLastCall().andAnswer(new IAnswer<Object>()
// {
// public Object answer() throws Throwable
// {
// long targetID = (Long)EasyMock.getCurrentArguments()[0];
// assertEquals(1, targetID);
// MessagingExceptionMessage message = (MessagingExceptionMessage) EasyMock.getCurrentArguments()[1];
// assertEquals(message.getException().getCode(), MessagingException.UNSUPPORTED_PACKET);
// return null;
// }
// });
// cm.packetProcessed(packet);
// EasyMock.replay(session, destination, dispatcher, packet, cm);
// ServerBrowserImpl browser = new ServerBrowserImpl(session, destination, messageFilter, dispatcher, cm);
// PacketHandler handler = browser.newHandler();
//
// handler.handle(1245, packet);
// EasyMock.verify(session, destination, dispatcher, packet, cm);
// assertEquals(999l, browser.getID());
// }
//
// private List<MessageReference> setupList()
// {
// ServerMessage serverMessage1 = EasyMock.createStrictMock(ServerMessage.class);
// ServerMessage serverMessage2 = EasyMock.createStrictMock(ServerMessage.class);
// ServerMessage serverMessage3 = EasyMock.createStrictMock(ServerMessage.class);
// ServerMessage serverMessage4 = EasyMock.createStrictMock(ServerMessage.class);
// ServerMessage serverMessage5 = EasyMock.createStrictMock(ServerMessage.class);
// MessageReference reference1 = EasyMock.createStrictMock(MessageReference.class);
// MessageReference reference2 = EasyMock.createStrictMock(MessageReference.class);
// MessageReference reference3 = EasyMock.createStrictMock(MessageReference.class);
// MessageReference reference4 = EasyMock.createStrictMock(MessageReference.class);
// MessageReference reference5 = EasyMock.createStrictMock(MessageReference.class);
// List<MessageReference> refs = new ArrayList<MessageReference>();
// refs.add(reference1);
// refs.add(reference2);
// refs.add(reference3);
// refs.add(reference4);
// refs.add(reference5);
// EasyMock.expect(reference1.getMessage()).andStubReturn(serverMessage1);
// EasyMock.expect(reference2.getMessage()).andStubReturn(serverMessage2);
// EasyMock.expect(reference3.getMessage()).andStubReturn(serverMessage3);
// EasyMock.expect(reference4.getMessage()).andStubReturn(serverMessage4);
// EasyMock.expect(reference5.getMessage()).andStubReturn(serverMessage5);
// EasyMock.replay(reference1, reference2, reference3, reference4, reference5);
// return refs;
// }
}