-
Notifications
You must be signed in to change notification settings - Fork 331
/
LightTableTabActionTest.java
156 lines (124 loc) · 5.59 KB
/
LightTableTabActionTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package jmri.jmrit.beantable;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import jmri.InstanceManager;
import jmri.Light;
import jmri.LightManager;
import jmri.jmrix.internal.InternalLightManager;
import jmri.jmrix.internal.InternalSystemConnectionMemo;
import jmri.managers.AbstractProxyManager;
import jmri.managers.ProxyLightManager;
import jmri.util.JUnitUtil;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.jupiter.api.*;
import org.netbeans.jemmy.operators.*;
/**
*
* @author Paul Bender Copyright (C) 2017
*/
public class LightTableTabActionTest extends AbstractTableTabActionBase {
@Test
public void testCTor() {
Assert.assertNotNull("exists", a);
}
@Override
public String getTableFrameName() {
return Bundle.getMessage("TitleLightTable");
}
/**
* Check the return value of includeAddButton.
* <p>
* The table generated by this action includes an Add Button.
*/
@Override
@Test
public void testIncludeAddButton() {
Assert.assertTrue("Default include add button", a.includeAddButton());
}
@Test
public void testMultiSystemTabs(){
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
JUnitUtil.resetInstanceManager();
// Not returning null v4.23.4ish
// Assert.assertNull("No Manager at start",InstanceManager.getNullableDefault(LightManager.class));
ProxyLightManager l = new ProxyLightManager(); // has 2 systems: JL, IL
l.addManager(new InternalLightManager(new InternalSystemConnectionMemo("J", "Juliet")));
l.addManager(new InternalLightManager(new InternalSystemConnectionMemo("I", "India")));
InstanceManager.setLightManager(l);
// Test that Proxy Light Manager has Juliet, India, and nothing else.
LightManager plm = InstanceManager.getDefault(LightManager.class);
if (!(plm instanceof AbstractProxyManager)) {
Assert.fail("Instance LightManager Not a proxy Light Manager");
}
try {
@SuppressWarnings("unchecked")
AbstractProxyManager<Light> proxy = (AbstractProxyManager<Light>) plm;
int numLm = proxy.getDisplayOrderManagerList().size();
Assert.assertEquals("2 Light Managers, Juliet, India",2, numLm);
String s = proxy.getDisplayOrderManagerList().get(0).getMemo().getUserName();
Assert.assertEquals("Light Manager 0 , Juliet","Juliet", s);
s = proxy.getDisplayOrderManagerList().get(1).getMemo().getUserName();
Assert.assertEquals("Light Manager 1, India","India", s);
} catch (ClassCastException e){
Assert.fail("catch Instance LightManager Not a proxy Light Manager");
}
InstanceManager.getDefault(LightManager.class).provideLight("IL1");
InstanceManager.getDefault(LightManager.class).provideLight("IL2");
InstanceManager.getDefault(LightManager.class).provideLight("IL3");
InstanceManager.getDefault(LightManager.class).provideLight("IL4");
InstanceManager.getDefault(LightManager.class).provideLight("IL5");
InstanceManager.getDefault(LightManager.class).provideLight("JL8");
InstanceManager.getDefault(LightManager.class).provideLight("JL9");
TabbedLightTableFrame sf = new TabbedLightTableFrame();
sf.initTables();
sf.initComponents();
sf.pack();
sf.setVisible(true);
JFrame f = JFrameOperator.waitJFrame(sf.getTitle(), true, true);
JFrameOperator jfo = new JFrameOperator(f);
JTabbedPaneOperator tabOperator = new JTabbedPaneOperator(jfo);
Assert.assertEquals("3 manager tabs",3, tabOperator.getTabCount());
tabOperator.selectPage("All");
new org.netbeans.jemmy.QueueTool().waitEmpty();
JTableOperator controltbl = new JTableOperator(jfo, 0);
Assert.assertEquals("All tab 7 Lights",7, controltbl.getRowCount());
tabOperator.selectPage("Juliet");
new org.netbeans.jemmy.QueueTool().waitEmpty();
controltbl = new JTableOperator(jfo, 0);
Assert.assertEquals("Juliet tab 2 Lights",2, controltbl.getRowCount());
tabOperator.selectPage("India");
new org.netbeans.jemmy.QueueTool().waitEmpty();
controltbl = new JTableOperator(jfo, 0);
Assert.assertEquals("India tab 5 Lights",5, controltbl.getRowCount());
// jmri.util.swing.JemmyUtil.pressButton(jfo, "Not a Button, pause test");
jfo.requestClose();
}
private static class TabbedLightTableFrame extends ListedTableFrame<Light> {
public TabbedLightTableFrame(){
super();
tabbedTableItemListArrayArray.clear(); // reset static BeanTable list
}
@Override
public void initTables() {
addTable("jmri.jmrit.beantable.LightTableTabAction", Bundle.getMessage("MenuItemLightTable"), false);
}
}
@BeforeEach
@Override
public void setUp() {
JUnitUtil.setUp();
jmri.util.JUnitUtil.resetProfileManager();
jmri.util.JUnitUtil.initInternalLightManager();
jmri.util.JUnitUtil.initDefaultUserMessagePreferences();
helpTarget = "package.jmri.jmrit.beantable.LightTable";
a = new LightTableTabAction();
}
@AfterEach
@Override
public void tearDown() {
a = null;
JUnitUtil.tearDown();
}
// private final static Logger log = LoggerFactory.getLogger(LightTableTabActionTest.class);
}