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

194 lines
8.5 KiB
Java

package jmri.jmrix.can.cbus.node;
import jmri.jmrix.can.CanSystemConnectionMemo;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2019
*/
public class CbusNodeSingleEventTableDataModelTest {
@Test
public void testCTor() {
CbusNodeEvent ev = new CbusNodeEvent(null,0,1,0,0,0);
CbusNodeSingleEventTableDataModel t = new CbusNodeSingleEventTableDataModel(
null, 3,CbusNodeSingleEventTableDataModel.MAX_COLUMN,ev);
assertNotNull(t);
}
@Test
public void testNoVars() {
CbusNodeEvent evNoRows = new CbusNodeEvent(null,0,1,0,0,0);
CbusNodeSingleEventTableDataModel t = new CbusNodeSingleEventTableDataModel(
null, 3,CbusNodeSingleEventTableDataModel.MAX_COLUMN,evNoRows);
assertEquals( 0, t.getRowCount());
assertEquals( 7, t.getColumnCount());
assertFalse( t.isTableLoaded());
for (int i = 0; i <t.getColumnCount(); i++) {
assertFalse(t.getColumnName(i).isEmpty());
assertTrue(CbusNodeSingleEventTableDataModel.getPreferredWidth(i) > 0);
}
assertEquals( "unknown 999", t.getColumnName(999));
assertTrue(CbusNodeSingleEventTableDataModel.getPreferredWidth(999) > 0);
}
@Test
public void testThreeVars() {
CbusNodeEvent evThreeRows = new CbusNodeEvent(null,0,1,0,0,3);
evThreeRows.setEvArr( new int[]{0,2,255});
CbusNodeSingleEventTableDataModel t = new CbusNodeSingleEventTableDataModel(
null, 3,CbusNodeSingleEventTableDataModel.MAX_COLUMN,evThreeRows);
assertEquals( 3, t.getRowCount());
assertTrue(t.isCellEditable(0,CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN));
assertFalse(t.isCellEditable(0,CbusNodeSingleEventTableDataModel.EV_NUMBER_COLUMN));
assertTrue(t.isCellEditable(0,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
assertEquals( Integer.class, t.getColumnClass(CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
assertEquals( String.class, t.getColumnClass(CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN));
assertEquals( 1, t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_NUMBER_COLUMN));
assertEquals( 2, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_NUMBER_COLUMN));
assertEquals( 3, t.getValueAt(2,CbusNodeSingleEventTableDataModel.EV_NUMBER_COLUMN));
assertEquals( 0, t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_CURRENT_VAL_COLUMN));
assertEquals( 2, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_CURRENT_VAL_COLUMN));
assertEquals( 255, t.getValueAt(2,CbusNodeSingleEventTableDataModel.EV_CURRENT_VAL_COLUMN));
assertEquals( "00", t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_CURRENT_HEX_COLUMN));
assertEquals( "02", t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_CURRENT_HEX_COLUMN));
assertEquals( "FF", t.getValueAt(2,CbusNodeSingleEventTableDataModel.EV_CURRENT_HEX_COLUMN));
assertEquals( "0000 0000", t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_CURRENT_BIT_COLUMN));
assertEquals( "0000 0010", t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_CURRENT_BIT_COLUMN));
assertEquals( "1111 1111", t.getValueAt(2,CbusNodeSingleEventTableDataModel.EV_CURRENT_BIT_COLUMN));
assertEquals( 0, t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
assertEquals( 2, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
assertEquals( 255, t.getValueAt(2,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
assertEquals( "", t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_SELECT_HEX_COLUMN));
assertEquals( "", t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_HEX_COLUMN));
assertEquals( "", t.getValueAt(2,CbusNodeSingleEventTableDataModel.EV_SELECT_HEX_COLUMN));
assertEquals( "", t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN));
assertEquals( "", t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN));
assertEquals( "", t.getValueAt(2,CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN));
assertFalse(t.isTableDirty());
assertTrue(t.isTableLoaded());
assertEquals( 0, t.getCountDirty());
t.setValueAt(211,1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN);
assertEquals( 211, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
assertEquals( "D3", t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_HEX_COLUMN));
assertEquals( "1101 0011", t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN));
assertFalse(t.isSingleEvDirty(0));
assertTrue(t.isSingleEvDirty(1));
assertEquals( 1, t.getCountDirty());
assertTrue(t.isTableDirty());
t.resetnewEVs();
assertEquals( 2, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
assertFalse(t.isTableDirty());
t.setValueAt(211,1,CbusNodeSingleEventTableDataModel.EV_CURRENT_VAL_COLUMN);
assertEquals( 2, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_CURRENT_VAL_COLUMN));
assertNull(t.getValueAt(0,999));
}
@Test
public void testLoading() {
CbusNodeEvent evThreeRows = new CbusNodeEvent(null,0,1,0,0,3);
evThreeRows.setEvArr( new int[]{-1,-1,-1});
CbusNodeSingleEventTableDataModel t = new CbusNodeSingleEventTableDataModel(
new CanSystemConnectionMemo(), 3,CbusNodeSingleEventTableDataModel.MAX_COLUMN,evThreeRows);
assertFalse(t.isTableLoaded());
assertEquals( -1, t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_CURRENT_HEX_COLUMN));
assertEquals( -1, t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_CURRENT_BIT_COLUMN));
assertEquals( -1, t.getValueAt(0,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
}
@Test
public void testSetGetValues(){
CbusNodeEvent evThreeRows = new CbusNodeEvent(null,0,1,0,0,3);
evThreeRows.setEvArr( new int[]{0,2,255});
CbusNodeSingleEventTableDataModel t = new CbusNodeSingleEventTableDataModel(
null, 3,CbusNodeSingleEventTableDataModel.MAX_COLUMN,evThreeRows);
assertEquals( 2, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_CURRENT_VAL_COLUMN));
assertEquals( 2, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("EE", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_HEX_COLUMN);
assertEquals( 238, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("00", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_HEX_COLUMN);
assertEquals( 0, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("FF", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_HEX_COLUMN);
assertEquals( 255, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("FF", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN);
assertEquals( 255, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("0000 0000", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN);
assertEquals( 0, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("1111 1111", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN);
assertEquals( 255, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("1100 0011", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN);
assertEquals( 195, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("not binary", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN);
assertEquals( 195, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
t.setValueAt("111111111", 1, CbusNodeSingleEventTableDataModel.EV_SELECT_BIT_COLUMN); // too big
assertEquals( 195, t.getValueAt(1,CbusNodeSingleEventTableDataModel.EV_SELECT_COLUMN));
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusNodeSingleEventTableDataModelTest.class);
}