MailboxPullRegistration mr = getPullRegistration(mb, DURATION1);
Lease mrl = getPullMailboxLease(mr);
checkLease(mrl, DURATION1);
// Get the mailbox service provided listener
RemoteEventListener mbRel = getPullMailboxListener(mr);
TestPullListener goodPullListener = TestUtils.createPullListener(manager);
// Switch to pull interface -- should disable event listener
logger.log(Level.INFO, "Using pull listener -- not expecting any events.");
int goodPullCount = 0;
Collection events = goodPullListener.getRemoteEvents(mr);
if (events.size() != 0) {
throw new TestException("Got events from empty iterator " + events);
}
logger.log(Level.INFO, "Event iterator was empty -- OK");
Object src = new Integer(0);
long id = EVENT_ID;
long seqNum = 0L;
MarshalledObject hbk = null;
RemoteEvent[] badEvents = new RemoteEvent[] {
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
};
goodPullCount = 0;
logger.log(Level.INFO, "Sending " + badEvents.length + " bad events ...");
for (i = 0; i < badEvents.length; i++) {
mbRel.notify(badEvents[i]);
}
// Switch to pull interface -- should disable event listener
logger.log(Level.INFO, "Using pull listener -- not expecting any events.");
goodPullCount = 0;
events = goodPullListener.getRemoteEvents(mr);
if (events.size() != 0) {
throw new TestException("Got bad events from iterator " + events);
}
logger.log(Level.INFO, "Event iterator was empty -- OK");
RemoteEvent[] goodEvents = new RemoteEvent[] {
new RemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
};
goodPullCount = goodEvents.length;
logger.log(Level.INFO, "Sending " + goodEvents.length + " good events ...");
for (i = 0; i < goodEvents.length; i++) {
mbRel.notify(goodEvents[i]);
}
events = goodPullListener.getRemoteEvents(mr);
if (events.size() != goodPullCount) {
throw new TestException(
"Got " + events.size() + " + events, but expected " +
goodPullCount + ":" + events);
}
logger.log(Level.INFO, "Event iterator was not empty -- OK");
RemoteEvent[] mixedEvents = new RemoteEvent[] {
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
new MyLocalRemoteEvent(src, id, seqNum++, hbk),
new RemoteEvent(src, id, seqNum++, hbk),
};
logger.log(Level.INFO, "Sending " + mixedEvents.length + " mixed events ...");
for (i = 0; i < mixedEvents.length; i++) {
mbRel.notify(mixedEvents[i]);
}
goodPullCount = 3;
events = goodPullListener.getRemoteEvents(mr);
if (events.size() != goodPullCount) {
throw new TestException(