Files
JIMRI/java/test/jmri/jmrit/timetable/TimeTableDataManagerTest.java
2026-06-17 14:00:51 +02:00

103 lines
3.6 KiB
Java

package jmri.jmrit.timetable;
import java.io.File;
import java.io.IOException;
import jmri.util.JUnitUtil;
import org.junit.Assert;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.io.TempDir;
/**
* Tests for the TimeTableDataManager Class
* @author Dave Sand Copyright (C) 2018
*/
public class TimeTableDataManagerTest {
@Test
public void testCreate() {
TimeTableDataManager dx = new TimeTableDataManager(false);
jmri.InstanceManager.deregister(dx, TimeTableDataManager.class);
}
@Test
public void testExercise() {
TimeTableDataManager dm = new TimeTableDataManager(false);
// Test adds
Layout layout = new Layout();
int layoutId = layout.getLayoutId();
TrainType type = new TrainType(layoutId);
int typeId = type.getTypeId();
Segment segment = new Segment(layoutId);
int segmentId = segment.getSegmentId();
Station station1 = new Station(segmentId);
Station station2 = new Station(segmentId);
int stationId1 = station1.getStationId();
int stationId2 = station2.getStationId();
Schedule schedule = new Schedule(layoutId);
int scheduleId = schedule.getScheduleId();
Train train = new Train(scheduleId);
int trainId = train.getTrainId();
train.setTypeId(typeId);
Stop stop1 = new Stop(trainId, 1);
stop1.setStationId(stationId1);
Stop stop2 = new Stop(trainId, 2);
stop2.setStationId(stationId2);
int stopId1 = stop1.getStopId();
// Test gets
Assert.assertNotNull(dm.getLayout(layoutId));
Assert.assertNotNull(dm.getTrainType(typeId));
Assert.assertNotNull(dm.getSegment(segmentId));
Assert.assertNotNull(dm.getStation(stationId1));
Assert.assertNotNull(dm.getSchedule(scheduleId));
Assert.assertNotNull(dm.getTrain(trainId));
Assert.assertNotNull(dm.getStop(stopId1));
// Test array lists
Assert.assertEquals(1, dm.getLayouts(true).size());
Assert.assertEquals(1, dm.getTrainTypes(layoutId, true).size());
Assert.assertEquals(1, dm.getSegments(layoutId, true).size());
Assert.assertEquals(2, dm.getStations(segmentId, true).size());
Assert.assertEquals(1, dm.getSchedules(layoutId, true).size());
Assert.assertEquals(1, dm.getTrains(scheduleId, 0, true).size());
Assert.assertEquals(1, dm.getTrains(0, typeId, true).size());
Assert.assertEquals(2, dm.getStops(trainId, 0, true).size());
Assert.assertEquals(1, dm.getStops(0, stationId1, true).size());
// Test special cases
Assert.assertNotNull(dm.getLayoutForStop(stopId1));
Assert.assertEquals(2, dm.getSegmentStations(layoutId).size());
int nextId = dm.getNextId("ErrorMsg"); // NOI18N
jmri.util.JUnitAppender.assertErrorMessage("getNextId: Invalid record type: ErrorMsg"); // NOI18N
Assert.assertEquals(0, nextId);
// Release data manager
jmri.InstanceManager.deregister(dm, TimeTableDataManager.class);
}
@BeforeEach
public void setUp(@TempDir File folder) throws IOException {
JUnitUtil.setUp();
JUnitUtil.resetProfileManager(new jmri.profile.NullProfile(folder));
}
@AfterEach
public void tearDown() {
// reset the static file location.
jmri.jmrit.timetable.configurexml.TimeTableXml.TimeTableXmlFile.resetFileLocation();
JUnitUtil.tearDown();
}
// private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TimeTableDataManagerTest.class);
}