161 lines
4.7 KiB
Java
161 lines
4.7 KiB
Java
package jmri.jmrit.roster.swing;
|
|
|
|
import javax.swing.JFrame;
|
|
import javax.swing.table.DefaultTableCellRenderer;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.jmrit.roster.*;
|
|
import jmri.util.JUnitUtil;
|
|
import jmri.util.ThreadingUtil;
|
|
import jmri.util.junit.annotations.DisabledIfHeadless;
|
|
import jmri.util.gui.GuiLafPreferencesManager;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
import org.netbeans.jemmy.operators.*;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
*/
|
|
public class RosterTableTest {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
RosterTable t = new RosterTable();
|
|
assertNotNull(t, "exists");
|
|
t.dispose();
|
|
}
|
|
|
|
@Test
|
|
@DisabledIfHeadless
|
|
public void testDisplaysOk() {
|
|
RosterTable t = new RosterTable();
|
|
JFrame frame = new JFrame("RosterTableTest testDisplaysOk");
|
|
frame.add(t);
|
|
|
|
ThreadingUtil.runOnGUI(() -> {
|
|
frame.pack();
|
|
frame.setVisible(true);
|
|
} );
|
|
|
|
JFrameOperator jfo = new JFrameOperator(frame.getTitle());
|
|
assertNotNull(jfo);
|
|
|
|
JTableOperator to = new JTableOperator(jfo);
|
|
assertNotNull(to);
|
|
assertFalse(t.getEditable());
|
|
|
|
to.getHeaderOperator().clickForPopup();
|
|
JPopupMenuOperator jpo = new JPopupMenuOperator();
|
|
assertNotNull(jpo);
|
|
new JMenuItemOperator(jpo,"Protocol").doClick();
|
|
|
|
// check cell values for column Key A
|
|
to.waitCell("value 1", 0, 12); // key a column value 1
|
|
to.waitCell("value 22", 1, 12); // key a column value 1
|
|
to.waitCell("", 2, 11); // key a column value 1
|
|
|
|
JUnitUtil.dispose(jfo.getWindow());
|
|
jfo.waitClosed();
|
|
|
|
}
|
|
|
|
@Test
|
|
@DisabledIfHeadless
|
|
public void testDateEditable(){
|
|
|
|
Roster.getDefault().getEntry(0).deleteAttribute("KeyA");
|
|
Roster.getDefault().getEntry(1).deleteAttribute("KeyA");
|
|
Roster.getDefault().getEntry(0).putAttribute(RosterEntry.ATTRIBUTE_LAST_OPERATED, "2022-10-31T06:22:00.000+00:00");
|
|
|
|
RosterTable t = new RosterTable(true); // editable true
|
|
JFrame frame = new JFrame("RosterTableTest testDateEditable");
|
|
frame.add(t);
|
|
|
|
ThreadingUtil.runOnGUI(() -> {
|
|
frame.pack();
|
|
frame.setVisible(true);
|
|
} );
|
|
|
|
JFrameOperator jfo = new JFrameOperator(frame.getTitle());
|
|
assertNotNull(jfo);
|
|
|
|
JTableOperator to = new JTableOperator(jfo);
|
|
assertNotNull(to);
|
|
assertTrue(t.getEditable());
|
|
|
|
JUnitUtil.dispose(jfo.getWindow());
|
|
jfo.waitClosed();
|
|
|
|
}
|
|
|
|
@Test
|
|
@DisabledIfHeadless
|
|
public void testOperatingDurationEditable(){
|
|
|
|
Roster.getDefault().getEntry(0).deleteAttribute("KeyA");
|
|
Roster.getDefault().getEntry(1).deleteAttribute("KeyA");
|
|
Roster.getDefault().getEntry(0).putAttribute(RosterEntry.ATTRIBUTE_OPERATING_DURATION, "1");
|
|
|
|
RosterTable t = new RosterTable(true);
|
|
JFrame frame = new JFrame("RosterTableTest testDurationEditable");
|
|
frame.add(t);
|
|
|
|
ThreadingUtil.runOnGUI(() -> {
|
|
frame.pack();
|
|
frame.setVisible(true);
|
|
} );
|
|
|
|
JFrameOperator jfo = new JFrameOperator(frame.getTitle());
|
|
assertNotNull(jfo);
|
|
|
|
JTableOperator to = new JTableOperator(jfo);
|
|
assertNotNull(to);
|
|
|
|
int durationCol = 11;
|
|
|
|
var c = (DefaultTableCellRenderer) to.prepareRenderer(to.getCellRenderer(0, durationCol), 0, durationCol);
|
|
assertEquals(Bundle.getMessage("DurationViewTip"), c.getToolTipText());
|
|
assertEquals("00:00:01", c.getText());
|
|
|
|
to.setValueAt("123456", 0, durationCol);
|
|
c = (DefaultTableCellRenderer) to.prepareRenderer(to.getCellRenderer(0, durationCol), 0, durationCol);
|
|
assertEquals("1 10:17:36", c.getText());
|
|
|
|
JUnitUtil.dispose(jfo.getWindow());
|
|
jfo.waitClosed();
|
|
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.resetProfileManager();
|
|
JUnitUtil.initGuiLafPreferencesManager();
|
|
InstanceManager.getDefault(GuiLafPreferencesManager.class).setFontSize(14);
|
|
JUnitUtil.initRosterConfigManager();
|
|
|
|
RosterEntry r = RosterEntryImplementations.id1();
|
|
r.putAttribute("KeyA", "value 1");
|
|
Roster.getDefault().addEntry(r);
|
|
|
|
r = RosterEntryImplementations.id2();
|
|
r.putAttribute("KeyA", "value 22");
|
|
Roster.getDefault().addEntry(r);
|
|
|
|
r = RosterEntryImplementations.id3();
|
|
Roster.getDefault().addEntry(r);
|
|
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(RosterTableTest.class);
|
|
}
|