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

132 lines
5.2 KiB
Java

package jmri.jmrix.can.cbus.node;
import jmri.jmrix.can.CanSystemConnectionMemo;
import jmri.jmrix.can.TrafficControllerScaffold;
import jmri.util.JUnitUtil;
import org.junit.Assert;
import org.junit.jupiter.api.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2019
*/
public class CbusNodeFromFcuTableDataModelTest {
@Test
public void testCTor() {
CbusNodeFromFcuTableDataModel t = new CbusNodeFromFcuTableDataModel(
memo, 3,CbusNodeFromFcuTableDataModel.FCU_MAX_COLUMN);
Assert.assertNotNull("exists",t);
Assertions.assertEquals(0, tcis.outbound.size(),"no can frames sent by fcu model");
}
@Test
public void testDefaults() {
CbusNodeFromFcuTableDataModel t = new CbusNodeFromFcuTableDataModel(
memo, 3,CbusNodeFromFcuTableDataModel.FCU_MAX_COLUMN);
Assert.assertTrue("default getRowCount 0",t.getRowCount() == 0 );
t.provideNodeByNodeNum(123);
Assert.assertTrue("default getRowCount 0",t.getRowCount() == 1 );
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") );
Assert.assertTrue("cell not editable",
t.isCellEditable(0,CbusNodeFromFcuTableDataModel.FCU_NODE_NUMBER_COLUMN) == false );
Assert.assertTrue("column class int",
t.getColumnClass(CbusNodeFromFcuTableDataModel.FCU_NODE_EVENTS_COLUMN) == Integer.class );
Assert.assertTrue("column class string",
t.getColumnClass(CbusNodeFromFcuTableDataModel.FCU_NODE_USER_NAME_COLUMN) == String.class );
Assert.assertTrue("default getNodeByNodeNum 1234",t.getNodeByNodeNum(1234) == null);
Assert.assertTrue("default getNodeRowFromNodeNum 1234",t.getNodeRowFromNodeNum(1234) == -1 );
t.provideNodeByNodeNum(1234);
Assert.assertTrue("default getNodeByNodeNum 1234",t.getNodeByNodeNum(1234) != null);
Assert.assertTrue("default getNodeRowFromNodeNum 1234",t.getNodeRowFromNodeNum(1234) == 1 );
Assert.assertTrue("default getRowCount 0",t.getRowCount() == 2 );
Assertions.assertEquals(0, tcis.outbound.size(),"no can frames sent by fcu model");
}
@Test
public void testLoaded() {
CbusNodeFromFcuTableDataModel t = new CbusNodeFromFcuTableDataModel(
memo, 3,CbusNodeFromFcuTableDataModel.FCU_MAX_COLUMN);
CbusNodeFromBackup myNode = new CbusNodeFromBackup(memo,256);
// set node to 4 ev vars per event, para 5, 3 NV's, param 6
myNode.getNodeParamManager().setParameters(new int[]{7,1,2,3,4,4,3,7});
myNode.getNodeNvManager().setNV(1,1);
myNode.getNodeNvManager().setNV(2,2);
myNode.getNodeNvManager().setNV(3,3);
t.addNode(myNode);
Assert.assertTrue(" getNodeByNodeNum 256",t.getNodeByNodeNum(256) != null);
Assert.assertTrue(" getNodeRowFromNodeNum 256",t.getNodeRowFromNodeNum(256) == 0 );
Assert.assertTrue(" getRowCount 0",t.getRowCount() == 1 );
Assert.assertTrue("getValueAt fcu node", (Integer)t.getValueAt(0,CbusNodeFromFcuTableDataModel.FCU_NODE_NUMBER_COLUMN)== 256 );
Assert.assertTrue("getValueAt fcu user nm",(((String)t.getValueAt(0,CbusNodeFromFcuTableDataModel.FCU_NODE_USER_NAME_COLUMN)).isEmpty()) );
Assert.assertTrue("getValueAt fcu type nm",(((String)t.getValueAt(0,CbusNodeFromFcuTableDataModel.FCU_NODE_TYPE_NAME_COLUMN)).isEmpty()) );
Assert.assertTrue("getValueAt fcu ev",(Integer)t.getValueAt(0,CbusNodeFromFcuTableDataModel.FCU_NODE_EVENTS_COLUMN)== -1 );
Assert.assertTrue("getValueAt fcu tot bytes",(Integer)t.getValueAt(0,CbusNodeFromFcuTableDataModel.FCU_NODE_TOTAL_BYTES_COLUMN)== -1 );
Assert.assertTrue("getValueAt fcu nv tot",(Integer)t.getValueAt(0,CbusNodeFromFcuTableDataModel.NODE_NV_TOTAL_COLUMN)== 3 );
t.setValueAt(7,0,CbusNodeFromFcuTableDataModel.NODE_NV_TOTAL_COLUMN);
Assert.assertTrue("setValueAt does nothing",(Integer)t.getValueAt(0,CbusNodeFromFcuTableDataModel.NODE_NV_TOTAL_COLUMN)== 3 );
Assertions.assertEquals(0, tcis.outbound.size(),"no can frames sent by fcu model");
}
private CanSystemConnectionMemo memo = null;
private TrafficControllerScaffold tcis;
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
memo = new CanSystemConnectionMemo();
tcis = new TrafficControllerScaffold();
memo.setTrafficController(tcis);
memo.setProtocol(jmri.jmrix.can.CanConfigurationManager.MERGCBUS);
}
@AfterEach
public void tearDown() {
tcis.terminateThreads();
tcis = null;
Assertions.assertNotNull(memo);
memo.dispose();
memo = null;
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusNodeFromFcuTableDataModelTest.class);
}