@Test
  public void testAddToEmptyCursorWhenTempStoreIsFull() throws Exception {
    createBrokerWithTempStoreLimit();
    SystemUsage usage = brokerService.getSystemUsage();

    PList dud = brokerService.getTempDataStore().getPList("dud");
    // fill the temp store
    int id = 0;
    ByteSequence payload = new ByteSequence(new byte[1024]);
    while (!usage.getTempUsage().isFull()) {
      dud.addFirst("A-" + (++id), payload);
    }

    assertTrue(
        "temp store is full: %" + usage.getTempUsage().getPercentUsage(),
        usage.getTempUsage().isFull());

    underTest = new FilePendingMessageCursor(brokerService.getBroker(), "test", false);
    underTest.setSystemUsage(usage);

    // ok to add
    underTest.addMessageLast(QueueMessageReference.NULL_MESSAGE);

    assertFalse("cursor is not full", underTest.isFull());
  }
  private void createBrokerWithTempStoreLimit() throws Exception {
    brokerService = new BrokerService();
    brokerService.setUseJmx(false);
    SystemUsage usage = brokerService.getSystemUsage();
    usage.getTempUsage().setLimit(1025 * 1024 * 15);
    brokerService.start();

    // put something in the temp store to on demand initialise it
    PList dud = brokerService.getTempDataStore().getPList("dud");
    dud.addFirst("A", new ByteSequence("A".getBytes()));
  }