package jmri.managers;
import jmri.*;
import org.junit.jupiter.api.*;
/**
* Base for the various Abstract*MgrTestBase base classes for NamedBean Manager test classes
*
* This is not itself a test class, e.g. should not be added to a suite.
* Instead, this forms the base for test classes, including providing some
* common tests.
*
* Quite a bit of AbstractManager testing is done in InternalSensorManagerTest
* to give it a concrete platform
*
* @author Bob Jacobsen Copyright (C) 2017
* @param Proxy Bean Manager, e.g. ProxySensorManager
* @param Bean type, e.g. Sensor
*/
public abstract class AbstractProxyManagerTestBase, E extends NamedBean> {
// ProxyManager under test - setUp() loads this
protected T l;
// check that you can add and remove listeners
@Test
public void checkSimpleAddAndRemove() {
Manager.ManagerDataListener listener = new Manager.ManagerDataListener(){
@Override public void contentsChanged(Manager.ManagerDataEvent e){}
@Override public void intervalAdded(Manager.ManagerDataEvent e) {}
@Override public void intervalRemoved(Manager.ManagerDataEvent e) {}
};
l.addDataListener(listener);
l.removeDataListener(listener);
l.addDataListener(null);
l.removeDataListener(null);
l.addDataListener(null);
l.removeDataListener(listener);
l.addDataListener(listener);
l.removeDataListener(null);
}
@Test
public final void testMakeSystemName() {
String s = l.makeSystemName("1");
Assertions.assertNotNull(s);
Assertions.assertFalse( s.isEmpty());
}
}