final QueryMgr queryMgr = getQueryMgr();
final ObjectName objectName = Util.getObjectName( queryMgr );
final Object id = proxy.createBuffer( 10, null);
final NotificationServiceHelper helper = new NotificationServiceHelper( proxy, id);
proxy.listenTo( objectName, null );
assert( proxy.getListeneeSet().size() == 1 );
assert( Util.getObjectName( (Util.asAMX(proxy.getListeneeSet().iterator().next())) ).equals( objectName ) );
final MyListener myListener = new MyListener();
proxy.addNotificationListener( myListener, null, null );
final Level saveLevel = queryMgr.getMBeanLogLevel();
queryMgr.setMBeanLogLevel( Level.INFO );
queryMgr.setMBeanLogLevel( saveLevel );
// delivery may be asynchronous; wait until done
while ( myListener.getCount() < 2 )
{
sleep( 20 );
}
assert( myListener.getCount() == 2 );
Notification[] notifs = helper.getNotifications();
assertEquals( 2, notifs.length );
assert( notifs[ 0 ].getType().equals( AttributeChangeNotification.ATTRIBUTE_CHANGE ) );
assert( notifs[ 1 ].getType().equals( AttributeChangeNotification.ATTRIBUTE_CHANGE ) );
notifs = helper.getNotifications();
assert( notifs.length == 0 );
proxy.dontListenTo( objectName );
assert( proxy.getListeneeSet().size() == 0 );