1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
/*
* BioJava development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
* For more information on the BioJava project and its aims,
* or to join the biojava-l mailing list, visit the home page
* at:
*
* http://www.biojava.org/
*
*/
package org.biojava.utils;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit tests for the <code>SmallMap</code> class.
*
* @author Len Trigg
*/
public class SmallMapTest extends TestCase {
protected SmallMap mMap = null;
public SmallMapTest(String name) {
super(name);
}
public void setUp() throws Exception {
mMap = new SmallMap();
}
public void tearDown() throws Exception {
mMap = null;
}
// A test that does some simple map contents manipulation
public void testPutRemove() throws Exception {
String annoTag = "anno1";
String annoVal = "val1";
String anno2Tag = "anno2";
String anno2Val = "val2";
String anno3Tag = "anno3";
String anno3Val = "val3";
// Test putting a single value in
mMap.put(annoTag, annoVal);
assertTrue(mMap.containsKey(annoTag));
assertTrue(!mMap.containsKey(anno2Tag));
// Test removing the only value
mMap.remove(annoTag);
assertTrue(!mMap.containsKey(annoTag));
mMap.put(annoTag, annoVal);
// Test adding a second value
mMap.put(anno2Tag, anno2Val);
assertTrue(mMap.containsKey(anno2Tag));
// Test removing the first value
// This triggered a bug in SmallMap
mMap.remove(annoTag);
assertTrue(!mMap.containsKey(annoTag));
assertTrue(mMap.containsKey(anno2Tag));
// Test removing the second value
mMap.remove(anno2Tag);
assertTrue(!mMap.containsKey(anno2Tag));
assertEquals("Should be empty, but was: " + mMap.toString(), 0, mMap.size());
mMap.put(annoTag, annoVal);
mMap.put(anno2Tag, anno2Val);
mMap.put(anno3Tag, anno3Val);
assertEquals(3, mMap.size());
assertTrue(mMap.containsKey(annoTag));
assertTrue(mMap.containsKey(anno2Tag));
assertTrue(mMap.containsKey(anno3Tag));
assertEquals(annoVal, mMap.get(annoTag));
assertEquals(anno2Val, mMap.get(anno2Tag));
assertEquals(anno3Val, mMap.get(anno3Tag));
mMap.remove(anno2Tag);
assertEquals(2, mMap.size());
assertTrue(mMap.containsKey(annoTag));
assertTrue(!mMap.containsKey(anno2Tag));
assertTrue(mMap.containsKey(anno3Tag));
assertEquals(annoVal, mMap.get(annoTag));
assertEquals(anno3Val, mMap.get(anno3Tag));
mMap.remove(anno3Tag);
assertEquals(1, mMap.size());
assertTrue(mMap.containsKey(annoTag));
assertTrue(!mMap.containsKey(anno2Tag));
assertTrue(!mMap.containsKey(anno3Tag));
assertEquals(annoVal, mMap.get(annoTag));
mMap.remove(annoTag);
assertEquals(0, mMap.size());
assertTrue(!mMap.containsKey(annoTag));
assertTrue(!mMap.containsKey(anno2Tag));
assertTrue(!mMap.containsKey(anno3Tag));
}
public static Test suite() {
return new TestSuite(SmallMapTest.class);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
}
|