1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18package libcore.java.util; 19 20import java.util.AbstractMap; 21import java.util.AbstractSet; 22import java.util.ArrayList; 23import java.util.Iterator; 24import java.util.List; 25import java.util.Set; 26import junit.framework.TestCase; 27 28public class OldAbstractMapTest extends TestCase { 29 30 public void test_Constructor() { 31 AMT amt = new AMT(); 32 assertNotNull(amt); 33 } 34 35 public void test_equalsLjava_lang_Object() { 36 AbstractMap<String, String> amt1 = new AMT(); 37 AbstractMap<String, String> amt2 = new AMT(); 38 assertTrue("assert 0", amt1.equals(amt2)); 39 assertTrue("assert 1", amt1.equals(amt1)); 40 assertTrue("assert 2", amt2.equals(amt1)); 41 amt1.put("1", "one"); 42 assertFalse("assert 3", amt1.equals(amt2)); 43 amt1.put("2", "two"); 44 amt1.put("3", "three"); 45 46 amt2.put("1", "one"); 47 amt2.put("2", "two"); 48 amt2.put("3", "three"); 49 assertTrue("assert 4", amt1.equals(amt2)); 50 assertFalse("assert 5", amt1.equals(this)); 51 } 52 53 public void test_hashCode() { 54 AMT amt1 = new AMT(); 55 AMT amt2 = new AMT(); 56 amt1.put("1", "one"); 57 58 assertNotSame(amt1.hashCode(), amt2.hashCode()); 59 } 60 61 public void test_isEmpty() { 62 AMT amt = new AMT(); 63 assertTrue(amt.isEmpty()); 64 amt.put("1", "one"); 65 assertFalse(amt.isEmpty()); 66 } 67 68 public void test_put() { 69 AMT amt = new AMT(); 70 assertEquals(0, amt.size()); 71 amt.put("1", "one"); 72 assertEquals(1, amt.size()); 73 amt.put("2", "two"); 74 assertEquals(2, amt.size()); 75 amt.put("3", "three"); 76 assertEquals(3, amt.size()); 77 } 78 79 public void test_size() { 80 AMT amt = new AMT(); 81 assertEquals(0, amt.size()); 82 amt.put("1", "one"); 83 assertEquals(1, amt.size()); 84 amt.put("2", "two"); 85 assertEquals(2, amt.size()); 86 amt.put("3", "three"); 87 assertEquals(3, amt.size()); 88 } 89 90 public void test_toString() { 91 AMT amt = new AMT(); 92 assertEquals("{}", amt.toString()); 93 amt.put("1", "one"); 94 assertEquals("{1=one}", amt.toString()); 95 amt.put("2", "two"); 96 assertEquals("{1=one, 2=two}", amt.toString()); 97 amt.put("3", "three"); 98 assertEquals("{1=one, 2=two, 3=three}", amt.toString()); 99 } 100 101 static class AMT extends AbstractMap<String, String> { 102 private final List<Entry<String, String>> entries = new ArrayList<Entry<String, String>>(); 103 104 @Override public String put(String key, String value) { 105 String result = remove(key); 106 entries.add(new AbstractMap.SimpleEntry<String, String>(key, value)); 107 return result; 108 } 109 110 @Override public Set<Entry<String, String>> entrySet() { 111 return new AbstractSet<Entry<String, String>>() { 112 @Override public Iterator<Entry<String, String>> iterator() { 113 return entries.iterator(); 114 } 115 @Override public int size() { 116 return entries.size(); 117 } 118 }; 119 } 120 } 121} 122