Files
JIMRI/java/test/jmri/jmrit/operations/rollingstock/engines/ConsistManagerTest.java
T
2026-06-17 14:00:51 +02:00

113 lines
4.1 KiB
Java

package jmri.jmrit.operations.rollingstock.engines;
import javax.swing.JComboBox;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import jmri.InstanceManager;
import jmri.jmrit.operations.OperationsTestCase;
public class ConsistManagerTest extends OperationsTestCase {
@Test
public void testCTor() {
ConsistManager manager = InstanceManager.getDefault(ConsistManager.class);
Assert.assertNotNull("Manager Creation", manager);
}
@Test
public void testConsist() {
EngineManager em = InstanceManager.getDefault(EngineManager.class);
ConsistManager cm = InstanceManager.getDefault(ConsistManager.class);
Consist c = cm.newConsist(ConsistManager.NONE);
Assert.assertNull(c);
c = cm.newConsist("A");
Assert.assertNotNull(c);
Consist ct = cm.newConsist("A");
Assert.assertNotNull(ct);
Assert.assertEquals("Same consist", c, ct);
cm.replaceConsistName("A", "B");
ct = cm.getConsistByName("B");
Assert.assertNotNull(ct);
// Replace when test was created doesn't delete the old consist
// GUI does a replace followed by a delete
c = cm.getConsistByName("A");
Assert.assertNotNull(c);
// test delete consist
Engine e = em.newRS("SP", "1");
e.setConsist(ct);
InstanceManager.getDefault(ConsistManager.class).deleteConsist("B");
ct = cm.getConsistByName("B");
Assert.assertNull(ct);
Assert.assertNull(e.getConsist());
}
@Test
public void testConsistComboBox() {
JComboBox<String> cb = InstanceManager.getDefault(ConsistManager.class).getComboBox();
Assert.assertEquals("Number of items", 1, cb.getItemCount());
Assert.assertEquals("Empty", EngineManager.NONE, cb.getSelectedItem());
InstanceManager.getDefault(ConsistManager.class).newConsist("C");
InstanceManager.getDefault(ConsistManager.class).newConsist("B");
InstanceManager.getDefault(ConsistManager.class).newConsist("A");
cb = InstanceManager.getDefault(ConsistManager.class).getComboBox();
Assert.assertEquals("Number of items", 4, cb.getItemCount());
Assert.assertEquals("Empty", ConsistManager.NONE, cb.getSelectedItem());
Assert.assertEquals("1st item", "A", cb.getItemAt(1));
Assert.assertEquals("1st item", "B", cb.getItemAt(2));
Assert.assertEquals("1st item", "C", cb.getItemAt(3));
}
@Test
public void testConsistNameLength() {
ConsistManager km = InstanceManager.getDefault(ConsistManager.class);
Assert.assertEquals("No consists", 0, km.getMaxNameLength());
km.newConsist("A");
Assert.assertEquals("1 consist", 1, km.getMaxNameLength());
km.newConsist("ABC");
Assert.assertEquals("2 consist", 3, km.getMaxNameLength());
}
@Test
public void testReplaceKenelName() {
ConsistManager km = InstanceManager.getDefault(ConsistManager.class);
Consist k = km.newConsist("A");
Assert.assertNotNull(k);
Engine e1 = InstanceManager.getDefault(EngineManager.class).newRS("SP", "1");
Engine e2 = InstanceManager.getDefault(EngineManager.class).newRS("SP", "2");
e1.setConsist(k);
e2.setConsist(k);
Assert.assertEquals("Consist name", "A", e1.getConsistName());
Assert.assertEquals("Consist name", "A", e2.getConsistName());
Assert.assertTrue(e1.isLead());
Assert.assertFalse(e2.isLead());
km.replaceConsistName("A", "B");
Consist kt = km.getConsistByName("B");
Assert.assertNotNull(kt);
// Replace when test was created doesn't delete the old consist
// GUI does a replace followed by a delete
k = km.getConsistByName("A");
Assert.assertNotNull(k);
Assert.assertEquals("Consist name", "B", e1.getConsistName());
Assert.assertEquals("Consist name", "B", e2.getConsistName());
Assert.assertTrue(e1.isLead());
Assert.assertFalse(e2.isLead());
}
}