diff options
Diffstat (limited to 'harmony-tests/src/test/java/org/apache/harmony/tests/java/util/SimpleEntryTest.java')
-rw-r--r-- | harmony-tests/src/test/java/org/apache/harmony/tests/java/util/SimpleEntryTest.java | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/SimpleEntryTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/SimpleEntryTest.java new file mode 100644 index 0000000..3f0847f --- /dev/null +++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/SimpleEntryTest.java @@ -0,0 +1,133 @@ +/* + * 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.tests.java.util; + +import junit.framework.TestCase; +import org.apache.harmony.testframework.serialization.SerializationTest; +import tests.util.SerializationTester; +import java.util.AbstractMap; +import java.util.AbstractMap.SimpleEntry; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + +public class SimpleEntryTest extends TestCase { + public void test_SimpleEntry_Constructor_K_V() throws Exception { + new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + new AbstractMap.SimpleEntry(null, null); + } + + static class NullEntry implements Entry { + + public Object getKey() { + return null; + } + + public Object getValue() { + return null; + } + + public Object setValue(Object object) { + return null; + } + } + + public void test_SimpleEntry_Constructor_LEntry() throws Exception { + Map map = new TreeMap(); + map.put(1, "test"); + Entry entryToPut = (Entry) map.entrySet().iterator().next(); + Entry testEntry = new AbstractMap.SimpleEntry(entryToPut); + assertEquals(1, testEntry.getKey()); + assertEquals("test", testEntry.getValue()); + map.clear(); + + testEntry = new AbstractMap.SimpleEntry(new NullEntry()); + assertNull(testEntry.getKey()); + assertNull(testEntry.getValue()); + try { + new AbstractMap.SimpleEntry(null); + fail("Should throw NullPointerException"); + } catch (NullPointerException e) { + // expected + } + + } + + public void test_SimpleEntry_getKey() throws Exception { + Entry entry = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + assertEquals(1, entry.getKey()); + entry = new AbstractMap.SimpleEntry(null, null); + assertNull(entry.getKey()); + } + + public void test_SimpleEntry_getValue() throws Exception { + Entry entry = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + assertEquals("test", entry.getValue()); + entry = new AbstractMap.SimpleEntry(null, null); + assertNull(entry.getValue()); + } + + public void test_SimpleEntry_setValue() throws Exception { + Entry entry = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + assertEquals("test", entry.getValue()); + entry.setValue("Another String"); + assertEquals("Another String", entry.getValue()); + entry = new AbstractMap.SimpleEntry(null, null); + assertNull(entry.getKey()); + } + + public void test_SimpleEntry_equals() throws Exception { + Entry entry = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + Map map = new TreeMap(); + map.put(1, "test"); + Entry entryToPut = (Entry) map.entrySet().iterator().next(); + Entry testEntry = new AbstractMap.SimpleEntry(entryToPut); + assertEquals(entry, testEntry); + Entry ent = new AbstractMap.SimpleImmutableEntry<Integer, String>(1, "test"); + assertEquals(entry, ent); + } + + public void test_SimpleEntry_hashCode() throws Exception { + Entry e = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + assertEquals((e.getKey() == null ? 0 : e.getKey().hashCode()) + ^ (e.getValue() == null ? 0 : e.getValue().hashCode()), e + .hashCode()); + } + + public void test_SimpleEntry_toString() throws Exception { + Entry e = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + assertEquals(e.getKey() + "=" + e.getValue(), e.toString()); + } + + /** + * serialization/deserialization. + */ + @SuppressWarnings({ "unchecked", "boxing" }) + public void testSerializationSelf_SimpleEntry() throws Exception { + Entry e = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + SerializationTest.verifySelf(e); + } + + /** + * serialization/deserialization compatibility with RI. + */ + @SuppressWarnings({ "unchecked", "boxing" }) + public void testSerializationCompatibility_SimpleEntry() throws Exception { + SimpleEntry e = new AbstractMap.SimpleEntry<Integer, String>(1, "test"); + SerializationTester.assertCompabilityEquals(e, "serialization/org/apache/harmony/tests/java/util/AbstractMapTest_SimpleEntry.golden.ser"); + } +} |