blob: 20c2b8d9d317922489172bfa44488f85fe051e80 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2006, 2010 VMware Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html and the Apache License v2.0
* is available at http://www.opensource.org/licenses/apache2.0.php.
* You may elect to redistribute this code under either of these licenses.
*
* Contributors:
* VMware Inc.
*****************************************************************************/
package org.eclipse.gemini.blueprint.util.internal;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import junit.framework.TestCase;
import org.eclipse.gemini.blueprint.mock.MockBundle;
import org.eclipse.gemini.blueprint.mock.MockServiceReference;
import org.osgi.framework.ServiceReference;
public class ServiceReferenceBasedMapTest extends TestCase {
private ServiceReference reference;
private Map map;
protected void setUp() throws Exception {
reference = new MockServiceReference();
createMap();
}
protected void tearDown() throws Exception {
reference = null;
map = null;
}
private void createMap() {
map = new ServiceReferenceBasedMap(reference);
}
public void testClear() {
try {
map.clear();
fail("map is read-only; expected exception");
}
catch (Exception ex) {
}
}
public void testContainsKeyObject() {
Properties prop = new Properties();
prop.setProperty("joe", "satriani");
reference = new MockServiceReference(new MockBundle(), prop);
createMap();
assertTrue(map.containsKey("joe"));
}
public void testContainsValueObject() {
Properties prop = new Properties();
prop.setProperty("joe", "satriani");
reference = new MockServiceReference(new MockBundle(), prop);
createMap();
assertTrue(map.containsValue("satriani"));
}
public void testEntrySet() {
Properties prop = new Properties();
prop.setProperty("joe", "satriani");
reference = new MockServiceReference(new MockBundle(), prop);
createMap();
Set entries = map.entrySet();
assertNotNull(entries);
for (Iterator iterator = entries.iterator(); iterator.hasNext();) {
Map.Entry entry = (Map.Entry) iterator.next();
assertTrue(map.containsKey(entry.getKey()));
assertEquals(entry.getValue(), map.get(entry.getKey()));
}
}
public void testGetObject() {
Properties prop = new Properties();
prop.setProperty("joe", "satriani");
reference = new MockServiceReference(new MockBundle(), prop);
createMap();
assertEquals("satriani", map.get("joe"));
}
public void testPutObjectObject() {
try {
map.put(new Object(), new Object());
fail("map is read-only; expected exception");
}
catch (Exception ex) {
}
}
public void testPutAllMap() {
try {
map.putAll(new HashMap());
fail("map is read-only; expected exception");
}
catch (Exception ex) {
}
}
public void testRemoveObject() {
try {
map.remove(new Object());
fail("map is read-only; expected exception");
}
catch (Exception ex) {
}
}
}