Clover coverage report -
Coverage timestamp: Wed Jan 31 2007 15:38:53 EST
file stats: LOC: 129   Methods: 4
NCLOC: 94   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
MRUQueueTest.java 85.7% 100% 100% 97.4%
coverage coverage
 1    /*
 2    * JBoss, the OpenSource J2EE webOS
 3    *
 4    * Distributable under LGPL license.
 5    * See terms of license at gnu.org.
 6    */
 7    package org.jboss.cache.eviction;
 8   
 9    import junit.framework.TestCase;
 10    import org.jboss.cache.Fqn;
 11   
 12    /**
 13    * Unit tests for MRUQueue.
 14    *
 15    * @author Daniel Huang (dhuang@jboss.org)
 16    * @version $Revision: 1.2 $
 17    */
 18    public class MRUQueueTest extends TestCase
 19    {
 20    private MRUQueue queue;
 21   
 22  2 public void setUp() throws Exception
 23    {
 24  2 super.setUp();
 25  2 queue = new MRUQueue();
 26    }
 27   
 28  2 public void tearDown() throws Exception
 29    {
 30  2 super.tearDown();
 31  2 queue.clear();
 32    }
 33   
 34  1 public void testQueue() throws Exception
 35    {
 36  1 for (int i = 0; i < 100; i++)
 37    {
 38  100 NodeEntry ne = new NodeEntry("/a/b/c/" + Integer.toString(i));
 39  100 ne.setModifiedTimeStamp(0);
 40  100 queue.addNodeEntry(ne);
 41    }
 42   
 43  1 assertEquals(queue.nodeMap.size(), queue.list.size());
 44   
 45  1 for (int i = 0; i < 100; i++)
 46    {
 47  100 if (i % 2 == 0)
 48    {
 49  50 Fqn fqn = Fqn.fromString("/a/b/c/" + Integer.toString(i));
 50  50 NodeEntry ne = queue.getNodeEntry(fqn);
 51  50 ne.setModifiedTimeStamp(System.currentTimeMillis());
 52  50 queue.moveToTopOfStack(fqn);
 53    }
 54    }
 55   
 56  1 assertEquals(queue.nodeMap.size(), queue.list.size());
 57   
 58  1 NodeEntry ne;
 59  1 int count = 0;
 60  ? while ((ne = queue.getFirstNodeEntry()) != null)
 61    {
 62  100 if (count < 50)
 63    {
 64  50 assertTrue(ne.getModifiedTimeStamp() > 0);
 65  50 assertEquals(100 - count, queue.getNumberOfNodes());
 66    }
 67    else
 68    {
 69  50 assertEquals(0, ne.getModifiedTimeStamp());
 70    }
 71  100 queue.removeNodeEntry(ne);
 72  100 count++;
 73    }
 74  1 assertEquals(queue.nodeMap.size(), queue.list.size());
 75   
 76    }
 77   
 78  1 public void testNumElements() throws Exception
 79    {
 80  1 MRUQueue queue = new MRUQueue();
 81   
 82  1 NodeEntry ne = new NodeEntry("/a/b/c");
 83  1 ne.setNumberOfElements(50);
 84  1 queue.addNodeEntry(ne);
 85   
 86  1 assertEquals(50, queue.getNumberOfElements());
 87  1 assertEquals(1, queue.getNumberOfNodes());
 88   
 89  1 queue.removeNodeEntry(ne);
 90  1 assertEquals(0, queue.getNumberOfElements());
 91   
 92  1 for(int i = 0; i < 10; i++)
 93    {
 94  10 ne = new NodeEntry("/a/b/c/" + Integer.toString(i));
 95  10 ne.setNumberOfElements(i);
 96  10 queue.addNodeEntry(ne);
 97    }
 98   
 99  1 assertEquals(45, queue.getNumberOfElements());
 100  1 assertEquals(10, queue.getNumberOfNodes());
 101   
 102  1 ne = queue.getNodeEntry("/a/b/c/0");
 103  1 assertNotNull(ne);
 104  1 assertEquals(0, ne.getNumberOfElements());
 105  1 ne.setNumberOfElements(500);
 106   
 107  1 assertEquals(545, queue.getNumberOfElements());
 108  1 ne = queue.getNodeEntry("/a/b/c/0");
 109  1 assertEquals(500, ne.getNumberOfElements());
 110   
 111  1 queue.removeNodeEntry(ne);
 112   
 113  1 assertEquals(45, queue.getNumberOfElements());
 114  1 assertEquals(9, queue.getNumberOfNodes());
 115  1 for(int i = 1; i < 10; i++)
 116    {
 117  9 ne = queue.getNodeEntry("/a/b/c/" + Integer.toString(i));
 118  9 assertEquals(i, ne.getNumberOfElements());
 119  9 queue.removeNodeEntry(ne);
 120    }
 121   
 122  1 assertEquals(0, queue.getNumberOfNodes());
 123  1 assertEquals(0, queue.getNumberOfElements());
 124   
 125  1 assertNull(queue.getNodeEntry("/a/b/c/0"));
 126  1 assertNull(queue.getFirstNodeEntry());
 127    }
 128   
 129    }