Esempio n. 1
0
  public void testDeleteMessages() throws Exception {
    int messageCount = 10;
    sendMessages(messageCount, true);
    assertEquals("", messageCount, _queueMBean.getMessageCount().intValue());
    assertTrue(_queueMBean.getReceivedMessageCount() == messageCount);
    long queueDepth = (messageCount * MESSAGE_SIZE);
    assertTrue(_queueMBean.getQueueDepth() == queueDepth);

    // delete first message
    _queueMBean.deleteMessages(1L, 1L);
    assertTrue(_queueMBean.getMessageCount() == (messageCount - 1));
    assertTrue(_queueMBean.getReceivedMessageCount() == messageCount);
    try {
      _queueMBean.viewMessageContent(1L);
      fail("Message should no longer be on the queue");
    } catch (Exception e) {

    }

    // delete last message, leaving 2nd to 9th
    _queueMBean.deleteMessages(10L, 10L);
    assertTrue(_queueMBean.getMessageCount() == (messageCount - 2));
    assertTrue(_queueMBean.getReceivedMessageCount() == messageCount);
    try {
      _queueMBean.viewMessageContent(10L);
      fail("Message should no longer be on the queue");
    } catch (Exception e) {

    }

    // delete remaining messages, leaving none
    _queueMBean.deleteMessages(2L, 9L);
    assertTrue(_queueMBean.getMessageCount() == (0));
    assertTrue(_queueMBean.getReceivedMessageCount() == messageCount);

    // Ensure that the data has been removed from the Store
    verifyBrokerState();
  }
Esempio n. 2
0
  public void testExceptions() throws Exception {
    try {
      _queueMBean.viewMessages(0L, 3L);
      fail();
    } catch (JMException ex) {

    }

    try {
      _queueMBean.viewMessages(2L, 1L);
      fail();
    } catch (JMException ex) {

    }

    try {
      _queueMBean.viewMessages(-1L, 1L);
      fail();
    } catch (JMException ex) {

    }

    try {
      long end = Integer.MAX_VALUE;
      end += 2;
      _queueMBean.viewMessages(1L, end);
      fail("Expected Exception due to oversized(> 2^31) message range");
    } catch (JMException ex) {

    }

    IncomingMessage msg = message(false, false);
    getQueue().clearQueue();
    ArrayList<AMQQueue> qs = new ArrayList<AMQQueue>();
    qs.add(getQueue());
    msg.enqueue(qs);
    MessageMetaData mmd = msg.headersReceived();
    msg.setStoredMessage(getMessageStore().addMessage(mmd));
    long id = msg.getMessageNumber();

    msg.addContentBodyFrame(
        new ContentChunk() {
          ByteBuffer _data = ByteBuffer.allocate((int) MESSAGE_SIZE);

          {
            _data.limit((int) MESSAGE_SIZE);
          }

          public int getSize() {
            return (int) MESSAGE_SIZE;
          }

          public ByteBuffer getData() {
            return _data;
          }

          public void reduceToFit() {}
        });

    AMQMessage m = new AMQMessage(msg.getStoredMessage());
    for (BaseQueue q : msg.getDestinationQueues()) {
      q.enqueue(m);
    }
    //        _queue.process(_storeContext, new QueueEntry(_queue, msg), false);
    _queueMBean.viewMessageContent(id);
    try {
      _queueMBean.viewMessageContent(id + 1);
      fail();
    } catch (JMException ex) {

    }
  }