Files
JIMRI/java/test/jmri/jmrix/can/cbus/node/CbusNodeEventTableDataModelTest.java
2026-06-17 14:00:51 +02:00

162 lines
5.5 KiB
Java

package jmri.jmrix.can.cbus.node;
import jmri.jmrix.can.CanSystemConnectionMemo;
import jmri.jmrix.can.TrafficControllerScaffold;
import jmri.jmrix.can.cbus.CbusConfigurationManager;
import jmri.jmrix.can.cbus.CbusPreferences;
import jmri.util.JUnitUtil;
import org.junit.Assert;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2019
*/
public class CbusNodeEventTableDataModelTest {
@Test
public void testCTor() {
CbusNodeEventTableDataModel t = new CbusNodeEventTableDataModel( null,
memo, 3,CbusNodeEventTableDataModel.MAX_COLUMN);
Assert.assertNotNull("exists",t);
}
@Test
public void testNodeNoEv() {
CbusNodeEventTableDataModel t = new CbusNodeEventTableDataModel( null,
memo, 3,CbusNodeEventTableDataModel.MAX_COLUMN);
Assert.assertTrue("default rowcount", t.getRowCount() == 0 );
Assert.assertTrue("getValueAt no node null", t.getValueAt(0,1) == null );
CbusNode myNode = new CbusNode(memo,12345);
t.setNode(myNode);
// Assert.assertEquals("starting 0 rowcount",0,t.getRowCount() );
Assert.assertTrue( t.getRowCount()== 0 );
Assert.assertTrue( t.getColumnCount()== 7 );
for (int i = 0; i <t.getColumnCount(); i++) {
Assert.assertFalse("column has name", t.getColumnName(i).isEmpty() );
}
Assert.assertTrue("column has NO name", t.getColumnName(999).equals("unknown 999") );
myNode.dispose();
}
@Test
@DisabledIfSystemProperty(named ="java.awt.headless", matches ="true")
public void testNodeWithNewEv() {
// not headless as setValueAt triggers window open
jmri.jmrix.can.cbus.swing.nodeconfig.NodeConfigToolPane mainpane = new
jmri.jmrix.can.cbus.swing.nodeconfig.NodeConfigToolPane();
CbusNodeEventTableDataModel t = new CbusNodeEventTableDataModel( mainpane,
memo, 3,CbusNodeEventTableDataModel.MAX_COLUMN);
CbusNode myNode = new CbusNode(memo,12345);
CbusNodeEvent myNodeEvent = new CbusNodeEvent(memo,3011,7,12345,-1,4);
myNodeEvent.setEvArr(new int[]{1,2,3,4});
myNode.getNodeEventManager().addNewEvent(myNodeEvent);
t.setNode(myNode);
Assert.assertTrue( t.getRowCount()== 1 );
Assert.assertTrue("cell not editable",
t.isCellEditable(0,CbusNodeEventTableDataModel.NODE_NAME_COLUMN) == false );
Assert.assertTrue("cell editable",
t.isCellEditable(0,CbusNodeEventTableDataModel.NODE_EDIT_BUTTON_COLUMN) == true );
Assert.assertTrue("column class int",
t.getColumnClass(CbusNodeEventTableDataModel.EVENT_NUMBER_COLUMN) == Integer.class );
Assert.assertTrue("column class string",
t.getColumnClass(CbusNodeEventTableDataModel.EVENT_NAME_COLUMN) == String.class );
Assert.assertTrue("button class string",
t.getColumnClass(CbusNodeEventTableDataModel.NODE_EDIT_BUTTON_COLUMN) == javax.swing.JButton.class );
Assert.assertTrue("class unknown", t.getColumnClass(999) == null );
Assert.assertTrue("getValueAt NODE_NUMBER_COLUMN number", (Integer)t.getValueAt(
0,CbusNodeEventTableDataModel.NODE_NUMBER_COLUMN)== 3011 );
Assert.assertTrue("getValueAt EVENT_NUMBER_COLUMN number", (Integer)t.getValueAt(
0,CbusNodeEventTableDataModel.EVENT_NUMBER_COLUMN)== 7 );
Assert.assertTrue("getValueAt NODE_EDIT_BUTTON_COLUMN number", (String)t.getValueAt(
0,CbusNodeEventTableDataModel.NODE_EDIT_BUTTON_COLUMN) != null );
Assert.assertTrue("getValueAt NODE_NAME_COLUMN number", ((String)t.getValueAt(
0,CbusNodeEventTableDataModel.NODE_NAME_COLUMN)).isEmpty());
Assert.assertTrue("getValueAt EVENT_NAME_COLUMN number", ((String)t.getValueAt(
0,CbusNodeEventTableDataModel.EVENT_NAME_COLUMN)).isEmpty() );
Assert.assertTrue("getValueAt EVENT_NAME_COLUMN number", (Integer)t.getValueAt(
0,CbusNodeEventTableDataModel.EV_INDEX_COLUMN) == -1 );
Assert.assertEquals("starting ev vars","1, 2, 3, 4",t.getValueAt(
0,CbusNodeEventTableDataModel.EV_VARS_COLUMN) );
Assert.assertTrue("getValueAt nac", (String)t.getValueAt(0,999) == null );
mainpane.dispose();
myNode.dispose();
}
private CbusNodeTableDataModel nodeModel = null;
private CanSystemConnectionMemo memo = null;
private TrafficControllerScaffold tcis = null;
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
memo = new CanSystemConnectionMemo();
tcis = new TrafficControllerScaffold();
memo.setTrafficController(tcis);
memo.setProtocol(jmri.jmrix.can.CanConfigurationManager.SPROGCBUS);
memo.get(CbusPreferences.class).setNodeBackgroundFetchDelay(0);
nodeModel = memo.get(CbusConfigurationManager.class)
.provide(CbusNodeTableDataModel.class);
}
@AfterEach
public void tearDown() {
Assertions.assertNotNull(nodeModel);
nodeModel.dispose();
nodeModel = null;
Assertions.assertNotNull(tcis);
tcis.terminateThreads();
Assertions.assertNotNull(memo);
memo.dispose();
memo = null;
tcis = null;
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusNodeEventTableDataModelTest.class);
}