package org.openbakery.racecontrol.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import org.openbakery.jinsim.Car;
import org.openbakery.jinsim.Track;
import org.openbakery.racecontrol.plugin.tracker.data.TrackerSettings;
import org.openbakery.racecontrol.service.SettingsLoader;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.Test;
public class SettingsTest {
@Test
public void testSave() {
TrackerSettings trackerSettings = new TrackerSettings();
trackerSettings.addCar(Car.UF1);
trackerSettings.addCar(Car.BF1);
trackerSettings.setSignupId(1234);
trackerSettings.setTrack(Track.BLACKWOOD_GP);
SettingsLoader settings = new SettingsLoader(System.getProperty("java.io.tmpdir"));
settings.save(trackerSettings);
}
@Test(dependsOnMethods = { "testSave" })
public void testSettings() {
TrackerSettings trackerSettings = new TrackerSettings();
SettingsLoader settings = new SettingsLoader(System.getProperty("java.io.tmpdir"));
settings.load(trackerSettings);
assert 1234 == trackerSettings.getSignupId();
assert Track.BLACKWOOD_GP == trackerSettings.getTrack();
assert trackerSettings.getCars().size() == 2;
assert trackerSettings.getCars().contains(Car.UF1);
assert trackerSettings.getCars().contains(Car.BF1);
}
@Test
public void testError() throws IOException {
Properties properties = new Properties();
properties.put("cars", "ASDF");
FileOutputStream fos = new FileOutputStream(System.getProperty("java.io.tmpdir") + File.separator
+ TrackerSettings.class.getName() + ".properties");
properties.store(fos, "");
TrackerSettings trackerSettings = new TrackerSettings();
SettingsLoader settings = new SettingsLoader(System.getProperty("java.io.tmpdir"));
settings.load(trackerSettings);
assert 0 == trackerSettings.getCars().size();
}
@AfterSuite
public void cleanup() {
File file = new File(System.getProperty("java.io.tmpdir") + File.separator + TrackerSettings.class.getName() + ".properties");
if (file.exists()) {
file.delete();
}
}
}