// $Id: TestXMLStore.java,v 1.2 2002/12/24 22:04:53 john Exp $ /* * Copyright 1998-2009 University Corporation for Atmospheric Research/Unidata * * Portions of this software were developed by the Unidata Program at the * University Corporation for Atmospheric Research. * * Access and use of this software shall impose the following obligations * and understandings on the user. The user is granted the right, without * any fee or cost, to use, copy, modify, alter, enhance and distribute * this software, and any derivative works thereof, and its supporting * documentation for any purpose whatsoever, provided that this entire * notice appears in all copies of the software, derivative works and * supporting documentation. Further, UCAR requests that the user credit * UCAR/Unidata in any publications that result from the use of this * software or in any product that includes this software. The names UCAR * and/or Unidata, however, may not be used in any advertising or publicity * to endorse or promote any products or commercial entity unless specific * written permission is obtained from UCAR/Unidata. The user also * understands that UCAR/Unidata is not obligated to provide the user with * any support, consulting, training or assistance of any kind with regard * to the use, operation and performance of this software nor to provide * the user with any updates, revisions, new versions or "bug fixes." * * THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. */ package ucar.util.prefs; import org.junit.Before; import org.junit.Test; import ucar.nc2.util.Misc; import java.util.prefs.Preferences; public class TestXMLStore { static { System.setProperty("java.util.prefs.PreferencesFactory", "ucar.util.prefs.PreferencesExtFactory"); } private boolean debug = false; private String storeFile = TestAllPrefs.dir+"TestXMLStore.xml"; private String storeFile2 = TestAllPrefs.dir+"TestXMLStore2.xml"; @Before @Test public void testMake() { try { XMLStore store = XMLStore.createFromFile(storeFile, null); PreferencesExt prefs = store.getPreferences(); prefs.putDouble("testD", 3.14157); prefs.putFloat("testF", 1.23456F); prefs.putLong("testL", 12345678900L); prefs.putInt("testI", 123456789); prefs.put("testS", "youdBeDeadbyNow"); prefs.putBoolean("testB", true); byte[] barr = new byte[3]; barr[0] = 1; barr[1] = 2; barr[2] = 3; prefs.putByteArray("testBA", barr); Preferences subnode = prefs.node("SemperUbi"); subnode.putDouble("testD", 3.14158); subnode.putFloat("testF", 1.23457F); subnode.putLong("testL", 12345678901L); subnode.putInt("testI", 123456780); subnode.put("testS", "youdBeLivebyNow"); subnode.putBoolean("testB", false); byte[] barr2 = new byte[3]; barr2[0] = 2; barr2[1] = 3; barr2[2] = 4; subnode.putByteArray("testBA", barr2); store.save(); } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } @Test public void testPersistence() { try { XMLStore store = XMLStore.createFromFile(storeFile, null); //store.writeToStream( System.out); PreferencesExt prefs = store.getPreferences(); double d = prefs.getDouble("testD", 0.0); assert Misc.closeEnough(d, 3.14157) : "double failed " + d; float f = prefs.getFloat("testF", 0.0F); assert Misc.closeEnough(f, 1.23456F) : "float failed"; long ll = prefs.getLong("testL", 0); assert ll == 12345678900L : "long failed"; int ii = prefs.getInt("testI", 0); assert ii == 123456789 : "int failed"; String s = prefs.get("testS", ""); assert s.equals("youdBeDeadbyNow") : "String failed"; boolean b = prefs.getBoolean("testB", false); assert b : "boolean failed"; byte[] barr = new byte[3]; byte[] barr2 = new byte[3]; barr[0] = 1; barr[1] = 2; barr[2] = 3; byte[] ba = prefs.getByteArray("testBA", barr2); for (int i=0; i<3; i++) assert ba[i] == barr[i] : "BA failed"; } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } @Test public void testPersistenceSubnode() { try { XMLStore store = XMLStore.createFromFile(storeFile, null); Preferences prefs = store.getPreferences().node("SemperUbi"); double d = prefs.getDouble("testD", 0.0); assert Misc.closeEnough(d, 3.14158) : "double failed"; float f = prefs.getFloat("testF", 0.0F); assert Misc.closeEnough(f, 1.23457F) : "float failed"; long ll = prefs.getLong("testL", 0); assert ll == 12345678901L : "long failed"; int ii = prefs.getInt("testI", 0); assert ii == 123456780 : "int failed"; String s = prefs.get("testS", ""); assert s.equals("youdBeLivebyNow") : "String failed"; boolean b = prefs.getBoolean("testB", true); assert !b : "boolean failed"; byte[] barr = new byte[3]; byte[] barr2 = new byte[3]; barr[0] = 2; barr[1] = 3; barr[2] = 4; byte[] ba = prefs.getByteArray("testBA", barr2); for (int i=0; i<3; i++) assert ba[i] == barr[i] : "BA failed"; } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } @Test public void testPersistenceChange() { try { XMLStore store = XMLStore.createFromFile(storeFile, null); Preferences prefs = store.getPreferences().node("SemperUbi"); String s = prefs.get("testS", ""); assert s.equals("youdBeLivebyNow") : "testPersistenceChange failed 1"; prefs.put("testS", "NewBetter"); store.save(); XMLStore store2 = XMLStore.createFromFile(storeFile, null); Preferences prefs2 = store2.getPreferences().node("SemperUbi"); s = prefs2.get("testS", ""); assert s.equals("NewBetter") : "testPersistenceChange failed 2"; prefs.put("testS", "youdBeDeadbyNow"); store.save(); XMLStore store3 = XMLStore.createFromFile(storeFile, null); Preferences prefs3 = store3.getPreferences().node("SemperUbi"); s = prefs3.get("testS", ""); assert s.equals("youdBeDeadbyNow") : "testPersistenceChange failed 3"; } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } @Test public void testPersistenceAddRemove() { try { XMLStore store = XMLStore.createFromFile(storeFile, null); Preferences prefs = store.getPreferences().node("SemperUbi"); String s = prefs.get("testS2", "def"); assert s.equals("def") : "testPersistenceAddRemove failed 1"; prefs.put("testS2", "WayBetter"); store.save(); XMLStore store2 =XMLStore.createFromFile(storeFile, null); Preferences prefs2 = store2.getPreferences().node("SemperUbi"); s = prefs2.get("testS2", ""); assert s.equals("WayBetter") : "testPersistenceAddRemove failed 2"; prefs.remove("testS2"); store.save(); XMLStore store3 = XMLStore.createFromFile("E:/dev/prefs/test/store/prefs2.xml", null); Preferences prefs3 = store3.getPreferences().node("SemperUbi"); s = prefs3.get("testS2", "deff"); assert s.equals("deff") : "testPersistenceAddRemove failed 3"; } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } @Test public void testPersistenceDefaults() { try { XMLStore store = XMLStore.createFromFile(storeFile, null); Preferences newNode = store.getPreferences().node("SemperUbi/SubSemperUbi2"); String s = newNode.get("testS2", "def"); assert s.equals("def") : "testPersistenceDefaults failed 1"; s = newNode.get("testS2", "def2"); assert s.equals("def2") : "testPersistenceDefaults failed 2"; } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } @Test public void testPersistenceAddRemoveNode() { try { XMLStore store = XMLStore.createFromFile(storeFile, null); Preferences newNode = store.getPreferences().node("SemperUbi/SubSemperUbi2"); String s = newNode.get("testS2", "def"); assert s.equals("def") : "testPersistenceAddRemoveNode failed 1"; newNode.put("testS2", "WayBetterValue"); store.save(); XMLStore store2 = XMLStore.createFromFile(storeFile, null); Preferences prefs2 = store2.getPreferences().node("SemperUbi/SubSemperUbi2"); s = prefs2.get("testS2", ""); assert s.equals("WayBetterValue") : "testPersistenceAddRemoveNode failed 2"; prefs2.removeNode(); store2.save(); XMLStore store3 = XMLStore.createFromFile(storeFile, null); Preferences prefs3 = store3.getPreferences().node("SemperUbi/SubSemperUbi2"); s = prefs3.get("testS2", "deff"); assert s.equals("deff") : "testPersistenceAddRemoveNode failed 3 " +s; } catch (Exception e) { System.out.println(e); e.printStackTrace(); } } @Test public void testXMLencoding() { String bad = "><';&\r\"\n"; try { XMLStore store = XMLStore.createFromFile(storeFile, null); Preferences prefs = store.getPreferences().node("badchars"); prefs.put("baddog", bad); store.save(); XMLStore store2 = XMLStore.createFromFile(storeFile, null); Preferences pref2 = store2.getPreferences().node("badchars"); String s = pref2.get("baddog", null); assert s.equals(bad) : "bad==="+s+"==="; //System.out.println("bad==="+s+"==="); } catch (Exception e) { assert false; System.out.println(e); e.printStackTrace(); } } } /* Change History: $Log: TestXMLStore.java,v $ Revision 1.2 2002/12/24 22:04:53 john add bean, beanObject methods Revision 1.1.1.1 2002/12/20 16:40:27 john start new cvs root: prefs */