/************************************************************************* /* Test.java -- Test java.text.DateFormatSymbols /* /* Copyright (c) 1998, 2001 Free Software Foundation, Inc. /* Written by Aaron M. Renn (arenn@urbanophile.com) /* /* This program is free software; you can redistribute it and/or modify /* it under the terms of the GNU General Public License as published /* by the Free Software Foundation, either version 2 of the License, or /* (at your option) any later version. /* /* This program is distributed in the hope that it will be useful, but /* WITHOUT ANY WARRANTY; without even the implied warranty of /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /* GNU General Public License for more details. /* /* You should have received a copy of the GNU General Public License /* along with this program; if not, write to the Free Software Foundation /* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA /*************************************************************************/ // Tags: JDK1.1 package gnu.testlet.wonka.text.DateFormatSymbols; import gnu.testlet.Testlet; import gnu.testlet.TestHarness; import java.text.*; import java.util.Locale; import java.util.MissingResourceException; public class Test implements Testlet { private String[] my_eras = { "XX", "YY" }; private String[] my_months = { "A", "B", "C", "D" }; private String[] my_short_months = { "a", "a", "b", "c" }; private String[] my_weekdays = { "S", "M", "T" }; private String[] my_short_weekdays = { "s", "m", "t" }; private String[] my_ampms = { "aa", "pp" }; private String[][] my_zonestrings = {{ "A", "B" }}; private String my_patternchars = "123456789012345678"; private static boolean arrayEquals(Object[] o1, Object[] o2) { if (o1 == null) { if (o2 != null) return(false); } else if (o2 == null) return(true); // We assume ordering is important. for (int i = 0; i < o1.length; i++) if (o1[i] instanceof Object[]) { if (o2[i] instanceof Object[]) { if (!arrayEquals((Object[])o1[i], (Object[])o2[i])) return(false); } else return(false); } else if (!o1[i].equals(o2[i])) return(false); return(true); } private static void arrayDump(TestHarness harness, Object[] o, String desc) { harness.debug("Dumping Object Array: " + desc); if (o == null) { harness.debug("null"); return; } for (int i = 0; i < o.length; i++) if (o[i] instanceof Object[]) arrayDump(harness, (Object[])o[i], desc + " element " + i); else harness.debug(" Element " + i + ": " + o[i]); } public void test(TestHarness harness) { try { DateFormatSymbols dfs = new DateFormatSymbols(Locale.US); harness.setclass("java.text.DateFormatSymbols"); harness.checkPoint("basic -- tests"); /* harness.debug("Dumping default symbol information"); arrayDump(harness, dfs.getEras(), "eras"); arrayDump(harness, dfs.getMonths(), "months"); arrayDump(harness, dfs.getShortMonths(), "short months"); arrayDump(harness, dfs.getWeekdays(), "weekdays"); arrayDump(harness, dfs.getShortWeekdays(), "short weekdays"); arrayDump(harness, dfs.getAmPmStrings(), "am/pm strings"); arrayDump(harness, dfs.getZoneStrings(), "zone string array"); harness.debug("local pattern chars: " + dfs.getLocalPatternChars()); */ dfs.setEras(my_eras); harness.check(arrayEquals(dfs.getEras(), my_eras), "eras"); dfs.setMonths(my_months); harness.check(arrayEquals(dfs.getMonths(), my_months), "months"); dfs.setShortMonths(my_short_months); harness.check(arrayEquals(dfs.getShortMonths(), my_short_months), "short months"); dfs.setWeekdays(my_weekdays); harness.check(arrayEquals(dfs.getWeekdays(), my_weekdays), "weekdays"); dfs.setShortWeekdays(my_short_weekdays); harness.check(arrayEquals(dfs.getShortWeekdays(), my_short_weekdays), "short weekdays"); dfs.setAmPmStrings(my_ampms); harness.check(arrayEquals(dfs.getAmPmStrings(), my_ampms), "am/pm"); dfs.setZoneStrings(my_zonestrings); harness.check(arrayEquals(dfs.getZoneStrings(), my_zonestrings), "zones"); dfs.setLocalPatternChars(my_patternchars); harness.check(dfs.getLocalPatternChars(), my_patternchars, "patterns"); } catch(MissingResourceException e) { harness.debug(e); harness.check(false); } // Now test failure /* THIS TEST WILL ALWAYS FAIL --> if the specified locale doesn't result in an answar the default one is used ... harness.checkPoint ("invalid locale"); try { // Hmm. Need a way to make this fail. Which I'm not sure we // can do easily in the JDK. Locale l = new Locale("yi", "yi"); new DateFormatSymbols(l); harness.check(false); } catch(MissingResourceException e) { harness.check(true); // We passed. } */ } } // class Test