package com.jcwhatever.nucleus.utils.observer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class SubscriberAgentRunnable implements Runnable {
SubscriberAgent _agent;
public SubscriberAgentRunnable() {}
public SubscriberAgentRunnable(SubscriberAgent agent) {
_agent = agent;
}
@Override
public void run() {
if (_agent == null)
_agent = new SubscriberAgent() {};
assertNotNull(_agent.getSubscribers());
assertEquals(0, _agent.getSubscribers().size());
Subscriber subscriber = new Subscriber() {};
_agent.addSubscriber(subscriber);
assertEquals(1, _agent.getSubscribers().size());
assertEquals(1, subscriber.getAgents().size());
_agent.removeSubscriber(subscriber);
assertEquals(0, _agent.getSubscribers().size());
assertEquals(0, subscriber.getAgents().size());
_agent.registerReference(subscriber);
assertEquals(1, _agent.getSubscribers().size());
assertEquals(0, subscriber.getAgents().size());
_agent.unregisterReference(subscriber);
assertEquals(0, _agent.getSubscribers().size());
assertEquals(0, subscriber.getAgents().size());
}
}