blob: 14c4dd0b6303b818dca801b194bff33cf9819c1c [file] [log] [blame]
/*
* 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 libcore.java.util;
import java.util.AbstractMap;
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import junit.framework.TestCase;
public class OldAbstractMapTest extends TestCase {
public void test_Constructor() {
AMT amt = new AMT();
assertNotNull(amt);
}
public void test_equalsLjava_lang_Object() {
AbstractMap<String, String> amt1 = new AMT();
AbstractMap<String, String> amt2 = new AMT();
assertTrue("assert 0", amt1.equals(amt2));
assertTrue("assert 1", amt1.equals(amt1));
assertTrue("assert 2", amt2.equals(amt1));
amt1.put("1", "one");
assertFalse("assert 3", amt1.equals(amt2));
amt1.put("2", "two");
amt1.put("3", "three");
amt2.put("1", "one");
amt2.put("2", "two");
amt2.put("3", "three");
assertTrue("assert 4", amt1.equals(amt2));
assertFalse("assert 5", amt1.equals(this));
}
public void test_hashCode() {
AMT amt1 = new AMT();
AMT amt2 = new AMT();
amt1.put("1", "one");
assertNotSame(amt1.hashCode(), amt2.hashCode());
}
public void test_isEmpty() {
AMT amt = new AMT();
assertTrue(amt.isEmpty());
amt.put("1", "one");
assertFalse(amt.isEmpty());
}
public void test_put() {
AMT amt = new AMT();
assertEquals(0, amt.size());
amt.put("1", "one");
assertEquals(1, amt.size());
amt.put("2", "two");
assertEquals(2, amt.size());
amt.put("3", "three");
assertEquals(3, amt.size());
}
public void test_size() {
AMT amt = new AMT();
assertEquals(0, amt.size());
amt.put("1", "one");
assertEquals(1, amt.size());
amt.put("2", "two");
assertEquals(2, amt.size());
amt.put("3", "three");
assertEquals(3, amt.size());
}
public void test_toString() {
AMT amt = new AMT();
assertEquals("{}", amt.toString());
amt.put("1", "one");
assertEquals("{1=one}", amt.toString());
amt.put("2", "two");
assertEquals("{1=one, 2=two}", amt.toString());
amt.put("3", "three");
assertEquals("{1=one, 2=two, 3=three}", amt.toString());
}
static class AMT extends AbstractMap<String, String> {
private final List<Entry<String, String>> entries = new ArrayList<Entry<String, String>>();
@Override public String put(String key, String value) {
String result = remove(key);
entries.add(new AbstractMap.SimpleEntry<String, String>(key, value));
return result;
}
@Override public Set<Entry<String, String>> entrySet() {
return new AbstractSet<Entry<String, String>>() {
@Override public Iterator<Entry<String, String>> iterator() {
return entries.iterator();
}
@Override public int size() {
return entries.size();
}
};
}
}
}