103 lines
3.6 KiB
Java
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);
|
|
}
|