public int countProxies(Observer obs) { ProxyBusObject proxy; int count = 0; for (proxy = obs.getFirst(); proxy != null; proxy = obs.getNext(proxy)) { ++count; } return count; }
public void testGetFirstNext() { Participant consumer = new Participant("one"); Participant provider = new Participant("two"); final Observer obs = newObserver(consumer, InterfaceA.class); final ObserverListener listener = new ObserverListener(consumer); obs.registerListener(listener); assertNull(obs.getFirst()); assertNull(obs.getNext(null)); ArrayList<ProxyBusObject> objects = null; String[] names = new String[] {A, AB, B, C}; for (int i = 0; i < names.length; ) { provider.createA(names[i]); waitForEvent(listener, provider, names[i]); objects = checkObjects(++i, obs); } assertNotNull(objects); ProxyBusObject obj = objects.get(1); unregisterObject(provider, obj, listener); assertSame(objects.get(2), obs.getNext(obj)); assertSame(objects.get(2), obs.getNext(objects.get(0))); objects = checkObjects(3, obs); assertFalse(objects.contains(obj)); obj = objects.get(2); unregisterObject(provider, obj, listener); assertNull(obs.getNext(obj)); assertNull(obs.getNext(objects.get(1))); objects = checkObjects(2, obs); assertFalse(objects.contains(obj)); obj = objects.get(0); unregisterObject(provider, obj, listener); assertSame(objects.get(1), obs.getNext(obj)); assertSame(objects.get(1), obs.getFirst()); objects = checkObjects(1, obs); assertFalse(objects.contains(obj)); obj = objects.get(0); unregisterObject(provider, obj, listener); assertNull(obs.getNext(obj)); assertNull(obs.getFirst()); }
private ArrayList<ProxyBusObject> checkObjects(int nrOfObjects, Observer obs) { ArrayList<ProxyBusObject> objects = new ArrayList<ProxyBusObject>(); objects.add(obs.getFirst()); ProxyBusObject obj = obs.getFirst(); checkGet(obj, obs); assertNotNull(obj); assertSame(objects.get(0), obj); for (int i = 1; i < nrOfObjects; i++) { obj = obs.getNext(objects.get(i - 1)); assertNotNull(obj); assertSame(obj, obs.getNext(objects.get(i - 1))); assertFalse(objects.contains(obj)); checkGet(obj, obs); objects.add(obj); } assertNull(obs.getNext(obj)); assertNull(obs.getNext(obj)); return objects; }
public void testClose() throws Exception { Participant provider = new Participant("prov"); Participant consumer = new Participant("cons"); final Observer obs = newObserver(consumer, InterfaceA.class); final ObserverListener listener = new ObserverListener(consumer); obs.registerListener(listener); provider.createA(A); waitForEvent(listener, provider, A); ProxyBusObject pbo = obs.getFirst(); assertNotNull(pbo); obs.close(); obs.close(); obs.registerListener(listener); assertNull(obs.getFirst()); assertNull(obs.get(pbo.getBusName(), pbo.getObjPath())); assertNull(obs.getNext(pbo)); obs.unregisterListener(listener); obs.unregisterAllListeners(); obs.close(); Thread.sleep(100); listener.expectInvocations(0); }