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

211 lines
7.1 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.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2019
*/
public class CbusNodeNVTableDataModelTest {
@Test
public void testCTor() {
t = new CbusNodeNVTableDataModel(
memo, 3,CbusNodeNVTableDataModel.MAX_COLUMN);
assertNotNull(t);
}
@Test
public void testNodeNoNv() {
t = new CbusNodeNVTableDataModel(
memo, 3,CbusNodeNVTableDataModel.MAX_COLUMN);
assertEquals( 8, t.getColumnCount());
CbusNode myNode = new CbusNode(memo,12345);
t.setNode(myNode);
assertEquals( 0, t.getRowCount());
assertEquals( 8, t.getColumnCount());
for (int i = 0; i <t.getColumnCount(); i++) {
assertFalse(t.getColumnName(i).isEmpty());
}
assertEquals( "unknown 999", t.getColumnName(999));
t.dispose();
myNode.dispose();
}
@Test
public void testNodeWithNv() {
t = new CbusNodeNVTableDataModel(
memo, 3,CbusNodeNVTableDataModel.MAX_COLUMN);
CbusNode myNode = new CbusNode(memo,12345);
// set node to 3 node vars , param6
myNode.getNodeParamManager().setParameters(new int[]{7,1,2,3,4,5,3,7});
t.setNode(myNode);
assertEquals( 3, t.getRowCount());
assertFalse(t.isCellEditable(0,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertTrue(t.isCellEditable(0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
assertEquals( Integer.class, t.getColumnClass(CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertEquals( String.class, t.getColumnClass(CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN));
assertEquals( 1, t.getValueAt( 0,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertEquals( 2, t.getValueAt( 1,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertEquals( 3, t.getValueAt( 2,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertEquals( "", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_CURRENT_HEX_COLUMN));
assertEquals( "", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_CURRENT_BIT_COLUMN));
assertEquals( -1, t.getValueAt( 0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
assertEquals( "", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_SELECT_HEX_COLUMN));
assertEquals( "", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN));
assertNull(t.getValueAt(0,999));
assertFalse(t.isTableDirty());
assertEquals( 0, t.getCountDirty());
t.setValueAt(0,0,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN);
assertFalse(t.isTableDirty());
t.setValueAt(0,0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN);
t.setValueAt(122,1,CbusNodeNVTableDataModel.NV_SELECT_COLUMN);
assertTrue( t.isTableDirty());
assertEquals( 2, t.getCountDirty());
t.setValueAt(255,2,CbusNodeNVTableDataModel.NV_SELECT_COLUMN);
assertTrue( t.isTableDirty());
assertEquals( 1, t.getValueAt( 0,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertEquals( 2, t.getValueAt( 1,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertEquals( 3, t.getValueAt( 2,CbusNodeNVTableDataModel.NV_NUMBER_COLUMN));
assertEquals( "", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_CURRENT_HEX_COLUMN));
assertEquals( "", t.getValueAt( 1,CbusNodeNVTableDataModel.NV_CURRENT_HEX_COLUMN));
assertEquals( "", t.getValueAt( 2,CbusNodeNVTableDataModel.NV_CURRENT_HEX_COLUMN));
assertEquals( "", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_CURRENT_BIT_COLUMN));
assertEquals( "", t.getValueAt( 1,CbusNodeNVTableDataModel.NV_CURRENT_BIT_COLUMN));
assertEquals( "", t.getValueAt( 2,CbusNodeNVTableDataModel.NV_CURRENT_BIT_COLUMN));
assertEquals( 0, t.getValueAt( 0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
assertEquals( 122, t.getValueAt( 1,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
assertEquals( 255, t.getValueAt( 2,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
assertEquals( "00", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_SELECT_HEX_COLUMN));
assertEquals( "7A", t.getValueAt( 1,CbusNodeNVTableDataModel.NV_SELECT_HEX_COLUMN));
assertEquals( "FF", t.getValueAt( 2,CbusNodeNVTableDataModel.NV_SELECT_HEX_COLUMN));
assertEquals("0000 0000", t.getValueAt( 0,CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN));
assertEquals("0111 1010", t.getValueAt( 1,CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN));
assertEquals("1111 1111", t.getValueAt( 2,CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN));
t.resetNewNvs();
assertFalse(t.isTableDirty());
assertEquals( -1, t.getValueAt( 2,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
t.setValueAt(255,0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN);
t.dispose();
myNode.dispose();
}
@Test
public void testHexBinSets() {
t = new CbusNodeNVTableDataModel(
memo, 3,CbusNodeNVTableDataModel.MAX_COLUMN);
CbusNode myNode = new CbusNode(memo,12345);
// set node to 3 node vars , param6
myNode.getNodeParamManager().setParameters(new int[]{7,1,2,3,4,5,3,7});
t.setNode(myNode);
// set all 3 NVs to 0
myNode.getNodeNvManager().setNVs(new int[]{3,0,0,0});
assertEquals( 0, t.getValueAt(0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
t.setValueAt("01", 0, CbusNodeNVTableDataModel.NV_SELECT_HEX_COLUMN);
assertEquals( 1, t.getValueAt(0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
t.setValueAt("FF", 0, CbusNodeNVTableDataModel.NV_SELECT_HEX_COLUMN);
assertEquals( 255, t.getValueAt(0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
t.setValueAt("0000 0000", 0, CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN);
assertEquals( 0, t.getValueAt(0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
t.setValueAt("1100 0011", 0, CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN);
assertEquals( 195, t.getValueAt(0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
t.setValueAt("not binary", 0, CbusNodeNVTableDataModel.NV_SELECT_BIT_COLUMN);
assertEquals( 195, t.getValueAt(0,CbusNodeNVTableDataModel.NV_SELECT_COLUMN));
t.dispose();
myNode.dispose();
}
private CanSystemConnectionMemo memo = null;
private TrafficControllerScaffold tcis = null;
private CbusNodeNVTableDataModel t;
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
memo = new CanSystemConnectionMemo();
tcis = new TrafficControllerScaffold();
memo.setTrafficController(tcis);
}
@AfterEach
public void tearDown() {
t = null;
assertNotNull(tcis);
tcis.terminateThreads();
tcis = null;
assertNotNull(memo);
memo.dispose();
memo = null;
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusNodeNVTableDataModelTest.class);
}