2014-06-10 16:25:06 -04:00
|
|
|
/*----------------------------------------------------------------------------*/
|
2015-06-25 15:07:55 -04:00
|
|
|
/* Copyright (c) FIRST 2008-2014. All Rights Reserved. */
|
|
|
|
|
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
2014-06-10 16:25:06 -04:00
|
|
|
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
2015-06-25 15:07:55 -04:00
|
|
|
/* the project. */
|
2014-06-10 16:25:06 -04:00
|
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
|
package edu.wpi.first.wpilibj;
|
|
|
|
|
|
2014-08-29 11:40:03 -04:00
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
|
import static org.junit.Assert.assertFalse;
|
|
|
|
|
import static org.junit.Assert.assertTrue;
|
2014-06-10 16:25:06 -04:00
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.OutputStream;
|
2014-06-13 15:03:38 -04:00
|
|
|
import java.util.logging.Logger;
|
2014-06-10 16:25:06 -04:00
|
|
|
|
|
|
|
|
import org.junit.Before;
|
|
|
|
|
import org.junit.Test;
|
|
|
|
|
|
|
|
|
|
import edu.wpi.first.wpilibj.networktables.NetworkTable;
|
2014-08-29 11:40:03 -04:00
|
|
|
import edu.wpi.first.wpilibj.test.AbstractComsSetup;
|
2014-06-10 16:25:06 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author jonathanleitschuh
|
|
|
|
|
*
|
|
|
|
|
*/
|
2015-09-19 22:39:26 -07:00
|
|
|
public class PreferencesTest extends AbstractComsSetup {
|
|
|
|
|
private static final Logger logger = Logger.getLogger(PreferencesTest.class.getName());
|
2015-06-25 15:07:55 -04:00
|
|
|
|
|
|
|
|
private NetworkTable prefTable;
|
|
|
|
|
private Preferences pref;
|
|
|
|
|
private long check;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected Logger getClassLogger() {
|
|
|
|
|
return logger;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @throws java.lang.Exception
|
|
|
|
|
*/
|
|
|
|
|
@Before
|
|
|
|
|
public void setUp() throws Exception {
|
2015-08-13 23:17:19 -07:00
|
|
|
NetworkTable.shutdown();
|
2015-06-25 15:07:55 -04:00
|
|
|
try {
|
2015-08-13 23:17:19 -07:00
|
|
|
File file = new File("networktables.ini");
|
2015-06-25 15:07:55 -04:00
|
|
|
file.mkdirs();
|
|
|
|
|
if (file.exists()) {
|
|
|
|
|
file.delete();
|
|
|
|
|
}
|
|
|
|
|
file.createNewFile();
|
|
|
|
|
OutputStream output = new FileOutputStream(file);
|
|
|
|
|
output
|
2015-08-13 23:17:19 -07:00
|
|
|
.write("[NetworkTables Storage 3.0]\ndouble \"/Preferences/checkedValueInt\"=2\ndouble \"/Preferences/checkedValueDouble\"=.2\ndouble \"/Preferences/checkedValueFloat\"=3.14\ndouble \"/Preferences/checkedValueLong\"=172\nstring \"/Preferences/checkedValueString\"=\"hello \\nHow are you ?\"\nboolean \"/Preferences/checkedValueBoolean\"=false\n"
|
2015-06-25 15:07:55 -04:00
|
|
|
.getBytes());
|
|
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
2015-08-13 23:17:19 -07:00
|
|
|
NetworkTable.initialize();
|
2015-06-25 15:07:55 -04:00
|
|
|
|
|
|
|
|
pref = Preferences.getInstance();
|
|
|
|
|
prefTable = NetworkTable.getTable("Preferences");
|
|
|
|
|
check = System.currentTimeMillis();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void remove() {
|
|
|
|
|
pref.remove("checkedValueLong");
|
|
|
|
|
pref.remove("checkedValueDouble");
|
|
|
|
|
pref.remove("checkedValueString");
|
|
|
|
|
pref.remove("checkedValueInt");
|
|
|
|
|
pref.remove("checkedValueFloat");
|
|
|
|
|
pref.remove("checkedValueBoolean");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void addCheckedValue() {
|
|
|
|
|
pref.putLong("checkedValueLong", check);
|
|
|
|
|
pref.putDouble("checkedValueDouble", 1);
|
|
|
|
|
pref.putString("checkedValueString", "checked");
|
|
|
|
|
pref.putInt("checkedValueInt", 1);
|
|
|
|
|
pref.putFloat("checkedValueFloat", 1);
|
|
|
|
|
pref.putBoolean("checkedValueBoolean", true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testAddRemoveSave() {
|
|
|
|
|
assertEquals(pref.getLong("checkedValueLong", 0), 172L);
|
|
|
|
|
assertEquals(pref.getDouble("checkedValueDouble", 0), .2, 0);
|
|
|
|
|
assertEquals(pref.getString("checkedValueString", ""), "hello \nHow are you ?");
|
|
|
|
|
assertEquals(pref.getInt("checkedValueInt", 0), 2);
|
|
|
|
|
assertEquals(pref.getFloat("checkedValueFloat", 0), 3.14, .001);
|
|
|
|
|
assertFalse(pref.getBoolean("checkedValueBoolean", true));
|
|
|
|
|
remove();
|
|
|
|
|
assertEquals(pref.getLong("checkedValueLong", 0), 0);
|
|
|
|
|
assertEquals(pref.getDouble("checkedValueDouble", 0), 0, 0);
|
|
|
|
|
assertEquals(pref.getString("checkedValueString", ""), "");
|
|
|
|
|
assertEquals(pref.getInt("checkedValueInt", 0), 0);
|
|
|
|
|
assertEquals(pref.getFloat("checkedValueFloat", 0), 0, 0);
|
|
|
|
|
assertFalse(pref.getBoolean("checkedValueBoolean", false));
|
|
|
|
|
addCheckedValue();
|
|
|
|
|
pref.save();
|
|
|
|
|
assertEquals(check, pref.getLong("checkedValueLong", 0));
|
|
|
|
|
assertEquals(pref.getDouble("checkedValueDouble", 0), 1, 0);
|
|
|
|
|
assertEquals(pref.getString("checkedValueString", ""), "checked");
|
|
|
|
|
assertEquals(pref.getInt("checkedValueInt", 0), 1);
|
|
|
|
|
assertEquals(pref.getFloat("checkedValueFloat", 0), 1, 0);
|
|
|
|
|
assertTrue(pref.getBoolean("checkedValueBoolean", false));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testPreferencesToNetworkTables() {
|
|
|
|
|
String networkedNumber = "networkCheckedValue";
|
|
|
|
|
int networkNumberValue = 100;
|
|
|
|
|
pref.putInt(networkedNumber, networkNumberValue);
|
2015-08-13 23:17:19 -07:00
|
|
|
assertEquals(networkNumberValue, (int)(prefTable.getNumber(networkedNumber)));
|
2015-06-25 15:07:55 -04:00
|
|
|
pref.remove(networkedNumber);
|
|
|
|
|
}
|
2014-06-10 16:25:06 -04:00
|
|
|
|
|
|
|
|
}
|