/*
* 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 tests.support;
import dalvik.annotation.TestTargetClass;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import junit.framework.TestCase;
@TestTargetClass(Map.class)
public class Support_UnmodifiableMapTest extends TestCase {
Map<String, Integer> map;
// must be a map containing the string keys "0"-"99" paired with the Integer
// values Integer(0) to Integer(99)
public Support_UnmodifiableMapTest(String p1) {
super(p1);
}
public Support_UnmodifiableMapTest(String p1, Map<String, Integer> m) {
super(p1);
map = m;
}
@Override
public void runTest() {
// containsKey
assertTrue("UnmodifiableMapTest - Should contain the key \"0\"", map
.containsKey("0"));
assertTrue("UnmodifiableMapTest - Should contain the key \"50\"", map
.containsKey("50"));
assertTrue("UnmodifiableMapTest - Should not contain the key \"100\"",
!map.containsKey("100"));
// containsValue
assertTrue("UnmodifiableMapTest - Should contain the value 0", map
.containsValue(new Integer(0)));
assertTrue("UnmodifiableMapTest - Should contain the value 50", map
.containsValue(new Integer(50)));
assertTrue("UnmodifiableMapTest - Should not contain value 100", !map
.containsValue(new Integer(100)));
// entrySet
Set<?> entrySet = map.entrySet();
Iterator<?> entrySetIterator = entrySet.iterator();
int myCounter = 0;
while (entrySetIterator.hasNext()) {
Map.Entry<?, ?> me = (Map.Entry<?, ?>) entrySetIterator.next();
assertTrue("UnmodifiableMapTest - Incorrect Map.Entry returned",
map.get(me.getKey()).equals(me.getValue()));
myCounter++;
}
assertEquals("UnmodifiableMapTest - Incorrect number of map entries returned",
100, myCounter);
// get
assertTrue("UnmodifiableMapTest - getting \"0\" didn't return 0",
map.get("0").intValue() == 0);
assertTrue("UnmodifiableMapTest - getting \"50\" didn't return 0",
map.get("0").intValue() == 0);
assertNull("UnmodifiableMapTest - getting \"100\" didn't return null",
map.get("100"));
// isEmpty
assertTrue(
"UnmodifiableMapTest - should have returned false to isEmpty",
!map.isEmpty());
// keySet
Set<?> keySet = map.keySet();
t_KeySet(keySet);
// size
assertTrue("Size should return 100, returned: " + map.size(), map
.size() == 100);
// values
new Support_UnmodifiableCollectionTest("Unmod--from map test", map
.values());
}
void t_KeySet(Set<?> keySet) {
// keySet should be a set of the strings "0" to "99"
// contains
assertTrue("UnmodifiableMapTest - keySetTest - should contain \"0\"",
keySet.contains("0"));
assertTrue("UnmodifiableMapTest - keySetTest - should contain \"50\"",
keySet.contains("50"));
assertTrue(
"UnmodifiableMapTest - keySetTest - should not contain \"100\"",
!keySet.contains("100"));
// containsAll
HashSet<String> hs = new HashSet<String>();
hs.add("0");
hs.add("25");
hs.add("99");
assertTrue(
"UnmodifiableMapTest - keySetTest - should contain set of \"0\", \"25\", and \"99\"",
keySet.containsAll(hs));
hs.add("100");
assertTrue(
"UnmodifiableMapTest - keySetTest - should not contain set of \"0\", \"25\", \"99\" and \"100\"",
!keySet.containsAll(hs));
// isEmpty
assertTrue("UnmodifiableMapTest - keySetTest - should not be empty",
!keySet.isEmpty());
// iterator
Iterator<?> it = keySet.iterator();
while (it.hasNext()) {
assertTrue(
"UnmodifiableMapTest - keySetTest - Iterator returned wrong values",
keySet.contains(it.next()));
}
// size
assertTrue(
"UnmodifiableMapTest - keySetTest - returned wrong size. Wanted 100, got: "
+ keySet.size(), keySet.size() == 100);
// toArray
Object[] objArray;
objArray = keySet.toArray();
for (int counter = 0; it.hasNext(); counter++) {
assertTrue(
"UnmodifiableMapTest - keySetTest - toArray returned incorrect array",
objArray[counter] == it.next());
}
// toArray (Object[])
objArray = new Object[100];
keySet.toArray(objArray);
for (int counter = 0; it.hasNext(); counter++) {
assertTrue(
"UnmodifiableMapTest - keySetTest - toArray(Object) filled array incorrectly",
objArray[counter] == it.next());
}
}
}
|