Files
2026-06-17 14:00:51 +02:00

150 lines
6.0 KiB
Java

package jmri.jmrit.operations.trains.trainbuilder;
import java.awt.Color;
import java.util.List;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import jmri.InstanceManager;
import jmri.jmrit.operations.OperationsTestCase;
import jmri.jmrit.operations.rollingstock.cars.Car;
import jmri.jmrit.operations.rollingstock.cars.CarManager;
import jmri.jmrit.operations.setup.Setup;
import jmri.util.JUnitOperationsUtil;
/**
* Tests for the TrainCommon class
*
* @author Paul Bender Copyright (C) 2015
*/
public class TrainCommonTest extends OperationsTestCase {
@Test
public void testGetDate_DateArgument() {
java.util.Calendar calendar = java.util.Calendar.getInstance();
String date = TrainCommon.getDate(calendar.getTime());
Assert.assertNotNull("Date String", date);
}
@Test
public void testGetDate_BooleanArgument() {
String date = TrainCommon.getDate(false);
Assert.assertNotNull("Date String", date);
}
@Test
public void testGetTextColorString() {
String testString = TrainCommon.formatColorString("Test Color Text", Color.YELLOW);
Assert.assertEquals("text", "Test Color Text", TrainCommon.getOnlyText(testString));
Assert.assertEquals("text is not bold", false, TrainCommon.isTextBold(testString));
}
@Test
public void testGetTextColor() {
String testString = TrainCommon.formatColorString("Test Color Text", Color.YELLOW);
Assert.assertEquals("text", Color.YELLOW, TrainCommon.getTextColor(testString));
}
@Test
public void testGetTextBoldString() {
String testString = TrainCommon.formatColorString("Test Color Text", Color.YELLOW, true);
Assert.assertEquals("text is bold", true, TrainCommon.isTextBold(testString));
}
@Test
public void testGetTextNotBoldString() {
String testString = TrainCommon.formatColorString("Test Color Text", Color.YELLOW, false);
Assert.assertEquals("text is not bold", false, TrainCommon.isTextBold(testString));
}
@Test
public void testSetoutUtilityCarsLocal() {
JUnitOperationsUtil.initOperationsData();
CarManager cmanager = InstanceManager.getDefault(CarManager.class);
List<Car> cars = cmanager.getList();
Assert.assertEquals("Confirm list size", 9, cars.size());
for (Car car : cars) {
car.setUtility(true);
}
String[] format = Setup.getLocalSwitchListMessageFormat();
format[3] = " "; //remove length argument from format
Setup.setLocalSwitchListMessageFormat(format);
Setup.setSwitchListFormatSameAsManifest(false);
TrainCommon tc = new TrainCommon();
// select car type "Boxcar"
String s = tc.setoutUtilityCars(cars, cars.get(0), TrainCommon.LOCAL, TrainCommon.IS_MANIFEST);
Assert.assertEquals("Confirm text", " 4 Boxcar 40' E from North End 2 to ", s);
s = tc.setoutUtilityCars(cars, cars.get(0), TrainCommon.LOCAL, TrainCommon.IS_MANIFEST);
Assert.assertNull("should be null", s);
// select car type "Caboose"
s = tc.setoutUtilityCars(cars, cars.get(4), TrainCommon.LOCAL, !TrainCommon.IS_MANIFEST);
Assert.assertEquals("Confirm text", " 2 Caboose from North End 1 to Test Car CP C10099 Comment", s);
s = tc.setoutUtilityCars(cars, cars.get(4), TrainCommon.LOCAL, !TrainCommon.IS_MANIFEST);
Assert.assertNull("should be null", s);
}
@Test
public void testSetoutUtilityCars() {
JUnitOperationsUtil.initOperationsData();
CarManager cmanager = InstanceManager.getDefault(CarManager.class);
List<Car> cars = cmanager.getList();
Assert.assertEquals("Confirm list size", 9, cars.size());
for (Car car : cars) {
car.setUtility(true);
}
String[] format = Setup.getDropSwitchListMessageFormat();
format[3] = " "; //remove length argument from format
Setup.setDropSwitchListMessageFormat(format);
Setup.setSwitchListFormatSameAsManifest(false);
TrainCommon tc = new TrainCommon();
// select car type "Boxcar"
String s = tc.setoutUtilityCars(cars, cars.get(0), !TrainCommon.LOCAL, TrainCommon.IS_MANIFEST);
Assert.assertEquals("Confirm text", " 4 Boxcar 40' E to ", s);
s = tc.setoutUtilityCars(cars, cars.get(0), !TrainCommon.LOCAL, TrainCommon.IS_MANIFEST);
Assert.assertNull("should be null", s);
// select car type "Caboose"
s = tc.setoutUtilityCars(cars, cars.get(4), !TrainCommon.LOCAL, !TrainCommon.IS_MANIFEST);
Assert.assertEquals("Confirm text", " 2 Caboose to Test Car CP C10099 Comment", s);
s = tc.setoutUtilityCars(cars, cars.get(4), !TrainCommon.LOCAL, !TrainCommon.IS_MANIFEST);
Assert.assertNull("should be null", s);
}
@Test
public void testConvertStringTime() {
Assert.assertEquals("blank time", 0, TrainCommon.convertStringTime(""));
// 21 x 60 + 45
Assert.assertEquals("time", 1305, TrainCommon.convertStringTime("21:45"));
// 10 x 60 + 5
Assert.assertEquals("am time", 605, TrainCommon.convertStringTime("10:05 AM"));
// 9 x 60 + 12 x 60 + 3
Assert.assertEquals("pm time", 1263, TrainCommon.convertStringTime("9:03 PM"));
// 3 x 24 x 60 + 3 x 60 + 17
Assert.assertEquals("time with days", 4,517, TrainCommon.convertStringTime("3:03:17"));
// 20 x 24 x 60 + 6 x 60 + 12 x 60 + 1
Assert.assertEquals("pm time with days", 29881, TrainCommon.convertStringTime("20:06:01 PM"));
// test 12 in the morning
Assert.assertEquals("am time", 5, TrainCommon.convertStringTime("12:05 AM"));
// test 12 afternoon 12 x 60 + 4
Assert.assertEquals("pm time", 724, TrainCommon.convertStringTime("12:04 PM"));
// 30 x 24 x 60 + 12 x 60 + 59
Assert.assertEquals("pm time with days", 43979, TrainCommon.convertStringTime("30:12:59 PM"));
}
}