SE251Ex:MultiMap TestMultiMap: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
m 2 revision(s)  | 
			
(No difference) 
 | 
Latest revision as of 05:21, 3 November 2008
Copy and paste the code below.
import java.util.Set;
import junit.framework.TestCase;
public class TestMultiMap extends TestCase {
    MultiMap<String, String> mmap;
    
    protected void setUp() {
        mmap = new MultiMap<String, String>();
    }
    
    protected void setUp2() {
        assertTrue(mmap.add("a", "one"));
        assertTrue(mmap.add("a", "two"));
        assertTrue(mmap.add("b", "two"));
        assertTrue(mmap.add("b", "three"));
        assertTrue(mmap.add("b", "four"));
        assertTrue(mmap.add("c", "one"));
        assertTrue(mmap.add("c", "three"));
        assertTrue(mmap.add("d", "four"));
    }
    
    public void testEmpty() {
        assertTrue(mmap.keySet().isEmpty());
        assertTrue(mmap.valueSet().isEmpty());
        Set<String> none = mmap.get("a");
        assertTrue(none.isEmpty());
        assertEquals("{}", mmap.toString());
    }
    
    public void testAdd() {
        assertTrue(mmap.add("a", "one"));
        assertTrue(mmap.add("a", "two"));
        assertTrue(mmap.add("b", "two"));
        assertFalse(mmap.add("a", "one"));
        assertTrue(mmap.add("c", "one"));
        assertFalse(mmap.add("b", "two"));
        
        Set<String> keys = mmap.keySet();
        assertEquals(3, keys.size());
        assertTrue(keys.contains("a"));
        assertTrue(keys.contains("b"));
        assertTrue(keys.contains("c"));
        
        Set<String> aValues = mmap.get("a");
        assertEquals(2, aValues.size());
        assertTrue(aValues.contains("one"));
        assertTrue(aValues.contains("two"));
        
        Set<String> bValues = mmap.get("b");
        assertEquals(1, bValues.size());
        assertTrue(bValues.contains("two"));
        
        Set<String> cValues = mmap.get("c");
        assertEquals(1, cValues.size());
        assertTrue(cValues.contains("one"));
    }
    
    public void testValueSet() {
        setUp2();
        
        Set<String> values = mmap.valueSet();
        assertEquals(4, values.size());
        assertTrue(values.contains("one"));
        assertTrue(values.contains("two"));
        assertTrue(values.contains("three"));
        assertTrue(values.contains("four"));
    }
    
    public void testRemove() {
        setUp2();
        
        assertTrue(mmap.remove("d", "four"));
        assertFalse(mmap.remove("d", "four"));
        assertTrue(mmap.remove("b", "four"));
        assertTrue(mmap.remove("a", "two"));
        assertFalse(mmap.remove("f", "one"));
        
        Set<String> keys = mmap.keySet();
        assertEquals(3, keys.size());
        assertTrue(keys.contains("a"));
        assertTrue(keys.contains("b"));
        assertTrue(keys.contains("c"));
        assertFalse(keys.contains("f"));
        Set<String> aValues = mmap.get("a");
        assertEquals(1, aValues.size());
        assertTrue(aValues.contains("one"));
        assertFalse(aValues.contains("two"));
        
        Set<String> bValues = mmap.get("b");
        assertEquals(2, bValues.size());
        assertTrue(bValues.contains("two"));
        assertTrue(bValues.contains("three"));
        assertFalse(bValues.contains("four"));
        
        Set<String> cValues = mmap.get("c");
        assertEquals(2, cValues.size());
        assertTrue(cValues.contains("one"));
        assertTrue(bValues.contains("three"));
        Set<String> values = mmap.valueSet();
        assertEquals(3, values.size());
        assertTrue(values.contains("one"));
        assertTrue(values.contains("two"));
        assertTrue(values.contains("three"));
        assertFalse(values.contains("four"));
    }
}