@@ -112,6 +112,39 @@ public void testPurge() throws Exception {
112112 producer .close ();
113113 }
114114
115+ public void testPurgeCount () throws Exception {
116+ // Send some messages
117+ int messagesSent = 1_000 ;
118+ int messagesPurge = 200 ;
119+
120+ connection = connectionFactory .createConnection ();
121+ connection .setClientID (clientID );
122+ connection .start ();
123+ Session session = connection .createSession (transacted , authMode );
124+ destination = createDestination ();
125+ MessageProducer producer = session .createProducer (destination );
126+ for (int i = 0 ; i < messagesSent ; i ++) {
127+ Message message = session .createTextMessage ("Message: " + i );
128+ producer .send (message );
129+ }
130+
131+ // Now get the QueueViewMBean and purge
132+ String objectNameStr = broker .getBrokerObjectName ().toString ();
133+ objectNameStr += ",destinationType=Queue,destinationName=" +getDestinationString ();
134+ ObjectName queueViewMBeanName = assertRegisteredObjectName (objectNameStr );
135+ QueueViewMBean proxy = (QueueViewMBean )MBeanServerInvocationHandler .newProxyInstance (mbeanServer , queueViewMBeanName , QueueViewMBean .class , true );
136+
137+ long count = proxy .getQueueSize ();
138+ assertEquals ("Queue size" , count , messagesSent );
139+
140+ for (int i = 1 ; i <= 5 ; i ++) {
141+ proxy .purge (messagesPurge );
142+ count = proxy .getQueueSize ();
143+ assertEquals ("Queue size" , count , messagesSent - (messagesPurge * i ));
144+ }
145+ producer .close ();
146+ }
147+
115148 public void initCombosForTestDelete () {
116149 addCombinationValues ("persistenceAdapter" , new Object [] {new MemoryPersistenceAdapter (), new KahaDBPersistenceAdapter ()});
117150 }
0 commit comments