| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.harmony.text.tests.java.text; |
| |
| import dalvik.annotation.TestLevel; |
| import dalvik.annotation.TestTargetClass; |
| import dalvik.annotation.TestTargetNew; |
| |
| import java.io.ByteArrayInputStream; |
| import java.io.ByteArrayOutputStream; |
| import java.io.ObjectInputStream; |
| import java.io.ObjectOutputStream; |
| import java.text.DateFormatSymbols; |
| import java.util.Arrays; |
| import java.util.Locale; |
| |
| @TestTargetClass(DateFormatSymbols.class) |
| public class DateFormatSymbolsTest extends junit.framework.TestCase { |
| |
| private DateFormatSymbols dfs; |
| |
| /** |
| * @tests java.text.DateFormatSymbols#DateFormatSymbols() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "DateFormatSymbols", |
| args = {} |
| ) |
| public void test_Constructor() { |
| // Test for method java.text.DateFormatSymbols() |
| // Used in tests |
| new DateFormatSymbols(); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#DateFormatSymbols(java.util.Locale) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "DateFormatSymbols", |
| args = {java.util.Locale.class} |
| ) |
| public void test_ConstructorLjava_util_Locale() { |
| // Test for method java.text.DateFormatSymbols(java.util.Locale) |
| new DateFormatSymbols(new Locale("en", "us")); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#clone() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "clone", |
| args = {} |
| ) |
| public void test_clone() { |
| // Test for method java.lang.Object java.text.DateFormatSymbols.clone() |
| DateFormatSymbols symbols = new DateFormatSymbols(); |
| DateFormatSymbols clone = (DateFormatSymbols) symbols.clone(); |
| assertTrue("Not equal", symbols.equals(clone)); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#equals(java.lang.Object) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "equals", |
| args = {java.lang.Object.class} |
| ) |
| public void test_equalsLjava_lang_Object() { |
| // Test for method boolean |
| // java.text.DateFormatSymbols.equals(java.lang.Object) |
| assertTrue("Equal object returned true", dfs.equals(dfs.clone())); |
| dfs.setLocalPatternChars("KKKKKKKKK"); |
| assertTrue("Un-Equal objects returned false", !dfs |
| .equals(new DateFormatSymbols())); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getAmPmStrings() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getAmPmStrings", |
| args = {} |
| ) |
| public void test_getAmPmStrings() { |
| // Test for method java.lang.String [] |
| // java.text.DateFormatSymbols.getAmPmStrings() |
| String[] retVal = dfs.getAmPmStrings(); |
| String[] val = { "AM", "PM" }; |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Array values do not match", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getEras() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getEras", |
| args = {} |
| ) |
| public void test_getEras() { |
| // Test for method java.lang.String [] |
| // java.text.DateFormatSymbols.getEras() |
| String[] retVal = dfs.getEras(); |
| String[] val = { "BC", "AD" }; |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Array values do not match", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getLocalPatternChars() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getLocalPatternChars", |
| args = {} |
| ) |
| public void test_getLocalPatternChars() { |
| // Test for method java.lang.String |
| // java.text.DateFormatSymbols.getLocalPatternChars() |
| String retVal = dfs.getLocalPatternChars(); |
| |
| String val = "GyMdkHmsSEDFwWahKzZ"; |
| // Harmony uses a different set of pattern chars |
| // String val = "GyMdkHmsSEDFwWahKzYeugAZvcLQqV"; |
| |
| assertEquals("Returned incorrect pattern string", val, retVal); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getMonths() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getMonths", |
| args = {} |
| ) |
| public void test_getMonths() { |
| // Test for method java.lang.String [] |
| // java.text.DateFormatSymbols.getMonths() |
| String[] retVal = dfs.getMonths(); |
| String[] val = { "January", "February", "March", "April", "May", |
| "June", "July", "August", "September", "October", "November", |
| "December", ""}; |
| // Note: Harmony doesn't include "" at the end of the array |
| assertEquals("Returned wrong array: ", val.length, retVal.length); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Array values do not match", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getShortMonths() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getShortMonths", |
| args = {} |
| ) |
| public void test_getShortMonths() { |
| // Test for method java.lang.String [] |
| // java.text.DateFormatSymbols.getShortMonths() |
| String[] retVal = dfs.getShortMonths(); |
| String[] val = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", |
| "Aug", "Sep", "Oct", "Nov", "Dec", ""}; |
| // Note: Harmony doesn't include "" at the end of the array |
| assertEquals("Returned wrong array: ", val.length, retVal.length); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Array values do not match", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getShortWeekdays() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getShortWeekdays", |
| args = {} |
| ) |
| public void test_getShortWeekdays() { |
| // Test for method java.lang.String [] |
| // java.text.DateFormatSymbols.getShortWeekdays() |
| String[] retVal = dfs.getShortWeekdays(); |
| String[] val = { "", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Array values do not match", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getWeekdays() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getWeekdays", |
| args = {} |
| ) |
| public void test_getWeekdays() { |
| // Test for method java.lang.String [] |
| // java.text.DateFormatSymbols.getWeekdays() |
| String[] retVal = dfs.getWeekdays(); |
| String[] val = { "", "Sunday", "Monday", "Tuesday", "Wednesday", |
| "Thursday", "Friday", "Saturday" }; |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Array values do not match", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#getZoneStrings() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "getZoneStrings", |
| args = {} |
| ) |
| public void test_getZoneStrings() { |
| // Test for method java.lang.String [][] |
| // java.text.DateFormatSymbols.getZoneStrings() |
| String[][] val = { { "XX" }, { "YY" } }; |
| dfs.setZoneStrings(val); |
| String[][] retVal = dfs.getZoneStrings(); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings", Arrays |
| .equals(retVal[i], val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#hashCode() |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "hashCode", |
| args = {} |
| ) |
| public void test_hashCode() { |
| // Test for method int java.text.DateFormatSymbols.hashCode() |
| int hc1 = dfs.hashCode(); |
| int hc2 = dfs.hashCode(); |
| assertTrue("hashCode() returned inconsistent number : " + hc1 + " - " |
| + hc2, hc1 == hc2); |
| |
| assertTrue("hashCode() returns different values for equal() objects", |
| dfs.hashCode() == dfs.clone().hashCode()); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setAmPmStrings(java.lang.String[]) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setAmPmStrings", |
| args = {java.lang.String[].class} |
| ) |
| public void test_setAmPmStrings$Ljava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setAmPmStrings(java.lang.String []) |
| String[] val = { "XX", "YY" }; |
| dfs.setAmPmStrings(val); |
| String[] retVal = dfs.getAmPmStrings(); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setEras(java.lang.String[]) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setEras", |
| args = {java.lang.String[].class} |
| ) |
| public void test_setEras$Ljava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setEras(java.lang.String []) |
| String[] val = { "XX", "YY" }; |
| dfs.setEras(val); |
| String[] retVal = dfs.getEras(); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setLocalPatternChars(java.lang.String) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setLocalPatternChars", |
| args = {java.lang.String.class} |
| ) |
| public void test_setLocalPatternCharsLjava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setLocalPatternChars(java.lang.String) |
| dfs.setLocalPatternChars("GyMZZkHmsSEHHFwWahKz"); |
| String retVal = dfs.getLocalPatternChars(); |
| String val = "GyMZZkHmsSEHHFwWahKz"; |
| assertTrue("Returned incorrect pattern string", retVal.equals(val)); |
| |
| try { |
| // Regression for HARMONY-466 |
| new DateFormatSymbols().setLocalPatternChars(null); |
| fail("NullPointerException expected"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setMonths(java.lang.String[]) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setMonths", |
| args = {java.lang.String[].class} |
| ) |
| public void test_setMonths$Ljava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setMonths(java.lang.String []) |
| String[] val = { "XX", "YY" }; |
| dfs.setMonths(val); |
| String[] retVal = dfs.getMonths(); |
| assertTrue("Return is identical", retVal != dfs.getMonths()); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setShortMonths(java.lang.String[]) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setShortMonths", |
| args = {java.lang.String[].class} |
| ) |
| public void test_setShortMonths$Ljava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setShortMonths(java.lang.String []) |
| String[] val = { "XX", "YY" }; |
| dfs.setShortMonths(val); |
| String[] retVal = dfs.getShortMonths(); |
| assertTrue("Return is identical", retVal != dfs.getShortMonths()); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setShortWeekdays(java.lang.String[]) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setShortWeekdays", |
| args = {java.lang.String[].class} |
| ) |
| public void test_setShortWeekdays$Ljava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setShortWeekdays(java.lang.String []) |
| String[] val = { "XX", "YY" }; |
| dfs.setShortWeekdays(val); |
| String[] retVal = dfs.getShortWeekdays(); |
| assertTrue("Return is identical", retVal != dfs.getShortWeekdays()); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setWeekdays(java.lang.String[]) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setWeekdays", |
| args = {java.lang.String[].class} |
| ) |
| public void test_setWeekdays$Ljava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setWeekdays(java.lang.String []) |
| String[] val = { "XX", "YY" }; |
| dfs.setWeekdays(val); |
| String[] retVal = dfs.getWeekdays(); |
| assertTrue("Return is identical", retVal != dfs.getWeekdays()); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings", retVal[i].equals(val[i])); |
| } |
| |
| /** |
| * @tests java.text.DateFormatSymbols#setZoneStrings(java.lang.String[][]) |
| */ |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "", |
| method = "setZoneStrings", |
| args = {java.lang.String[][].class} |
| ) |
| public void test_setZoneStrings$$Ljava_lang_String() { |
| // Test for method void |
| // java.text.DateFormatSymbols.setZoneStrings(java.lang.String [][]) |
| String[][] val = { { "XX" }, { "YY" } }; |
| dfs.setZoneStrings(val); |
| String[][] retVal = dfs.getZoneStrings(); |
| assertTrue("get returns identical", retVal != dfs.getZoneStrings()); |
| assertTrue("get[0] returns identical", retVal[0] != dfs |
| .getZoneStrings()[0]); |
| assertTrue("get returned identical", retVal != val); |
| if (retVal.length != val.length) |
| fail("Returned wrong array"); |
| for (int i = 0; i < val.length; i++) |
| assertTrue("Failed to set strings: " + retVal[i], Arrays.equals( |
| retVal[i], val[i])); |
| } |
| |
| /** |
| * Sets up the fixture, for example, open a network connection. This method |
| * is called before a test is executed. |
| */ |
| protected void setUp() { |
| dfs = new DateFormatSymbols(new Locale("en", "us")); |
| } |
| |
| /** |
| * Tears down the fixture, for example, close a network connection. This |
| * method is called after a test is executed. |
| */ |
| protected void tearDown() { |
| } |
| |
| @TestTargetNew( |
| level = TestLevel.COMPLETE, |
| notes = "Checks serialization mechanism.", |
| method = "!SerializationSelf", |
| args = {} |
| ) |
| public void test_serialization() throws Exception { |
| DateFormatSymbols symbols = new DateFormatSymbols(Locale.FRANCE); |
| String[][] zoneStrings = symbols.getZoneStrings(); |
| assertNotNull(zoneStrings); |
| |
| // serialize |
| ByteArrayOutputStream byteOStream = new ByteArrayOutputStream(); |
| ObjectOutputStream objectOStream = new ObjectOutputStream(byteOStream); |
| objectOStream.writeObject(symbols); |
| |
| // and deserialize |
| ObjectInputStream objectIStream = new ObjectInputStream( |
| new ByteArrayInputStream(byteOStream.toByteArray())); |
| DateFormatSymbols symbolsD = (DateFormatSymbols) objectIStream |
| .readObject(); |
| |
| // The associated currency will not persist |
| String[][] zoneStringsD = symbolsD.getZoneStrings(); |
| assertNotNull(zoneStringsD); |
| assertEquals(symbols, symbolsD); |
| } |
| } |