[jboss-cvs] JBossCache/tests/functional/org/jboss/cache/util ...

Elias Ross genman at noderunner.net
Wed Feb 7 17:06:50 EST 2007


  User: genman  
  Date: 07/02/07 17:06:50

  Added:       tests/functional/org/jboss/cache/util  CachesTest.java
  Log:
  JBCACHE-969 - Move transaction classes to org.jboss.cache.transaction
  
  Revision  Changes    Path
  1.1      date: 2007/02/07 22:06:50;  author: genman;  state: Exp;JBossCache/tests/functional/org/jboss/cache/util/CachesTest.java
  
  Index: CachesTest.java
  ===================================================================
  package org.jboss.cache.util;
  
  import java.util.Collection;
  import java.util.Iterator;
  import java.util.Map;
  import java.util.Set;
  
  import org.jboss.cache.Cache;
  import org.jboss.cache.CacheImpl;
  import org.jboss.cache.DefaultCacheFactory;
  import org.jboss.cache.Node;
  import org.jboss.cache.util.Caches.ChildSelector;
  
  import junit.framework.TestCase;
  
  /**
   * Tests {@link Caches}.
   */
  public class CachesTest extends TestCase
  {
     String a = "a";
  
     String b = "b";
  
     String c = "c";
  
     Cache cache = DefaultCacheFactory.getInstance().createCache();
  
     public void testSegment()
     {
        Map m = Caches.asPartitionedMap(cache);
        // m.put(a, b);
        testMap(m);
        m.clear();
        int c = 100;
        for (int i = 0; i < c; i++)
        {
           m.put(Integer.toHexString(i), "foo " + i);
        }
        for (int i = 0; i < c; i++)
        {
           assertEquals("foo " + i, m.get(Integer.toHexString(i)));
        }
        System.out.println(((CacheImpl) cache).printDetails());
     }
  
     public void testAsMap()
     {
        Map m = Caches.asMap(cache);
        testMap(m);
        for (Node n : cache.getRoot().getChildren())
        {
           assertEquals("/a", n.getFqn().toString());
           assertEquals(c, n.get("K"));
        }
        m.clear();
  
        m.put(a, a);
        testCollectionRemove(m.keySet());
        m.put(a, a);
        testCollectionRemove(m.values());
        m.put(a, a);
        testCollectionRemove(m.entrySet());
     }
  
     private void testCollectionRemove(Collection c)
     {
        Iterator i;
        i = c.iterator();
        assertEquals(true, i.hasNext());
        try
        {
           i.remove();
           fail("no next");
        }
        catch (IllegalStateException e)
        {
        }
        i.next();
        i.remove();
        assertEquals(false, i.hasNext());
        assertEquals("C " + c, 0, c.size());
     }
  
     public void testAsSimpleSet()
     {
        Set s = Caches.asSimpleSet(cache.getRoot());
        testSet(s);
     }
  
     private void testSet(Set s)
     {
        assertEquals(0, s.size());
        assertEquals(true, s.add(a));
        assertEquals(false, s.add(a));
        assertEquals(1, s.size());
        assertEquals("[a]", s.toString());
        assertEquals(true, s.contains(a));
        assertEquals(true, s.remove(a));
        assertEquals(false, s.remove(a));
        assertEquals(false, s.contains(a));
        s.add(b);
        s.clear();
        assertEquals(false, s.contains(b));
        s.add(c);
        Iterator i = s.iterator();
        s.add(a);
        s.remove(a); // stable iterator
        assertTrue(i.hasNext());
        assertEquals(c, i.next());
        i.remove();
        assertEquals(false, i.hasNext());
        assertEquals(0, s.size());
        assertEquals(true, s.isEmpty());
     }
  
     private void testMap(Map m)
     {
        assertEquals(null, m.put(a, b));
        assertEquals(b, m.put(a, c));
        assertEquals("{a=c}", m.toString());
        assertEquals(1, m.size());
        assertEquals("a", m.keySet().iterator().next());
        assertEquals(true, m.containsKey(a));
        assertEquals(true, m.containsValue(c));
        assertEquals(false, m.containsValue(b));
        assertEquals(c, m.remove(a));
        assertEquals(null, m.remove(a));
        assertEquals(0, m.size());
        assertEquals(false, m.keySet().iterator().hasNext());
        m.put(c, a);
        assertEquals(1, m.keySet().size());
        assertEquals(1, m.entrySet().size());
        assertEquals(1, m.values().size());
        Iterator i = m.keySet().iterator();
        m.put(b, b);
        m.remove(b); // stable iterator
        assertEquals(true, i.hasNext());
        assertEquals(c, i.next());
        assertEquals(false, i.hasNext());
  
        assertEquals(true, m.keySet().contains(c));
        assertEquals(true, m.entrySet().contains(new SimpleEntry(c, a)));
        assertEquals(true, m.values().contains(a));
        assertEquals(false, m.keySet().contains(a));
        assertEquals(false, m.entrySet().contains(new SimpleEntry(a, c)));
        assertEquals(false, m.values().contains(c));
        assertEquals(false, m.isEmpty());
        m.clear();
        assertEquals(0, m.size());
        m.put(a, a);
        m.clear();
        assertEquals(0, m.size());
        assertEquals(true, m.isEmpty());
        
        String x = "not here";
        m.remove(x);
        assertEquals(false, m.containsKey(x));
        assertEquals(null, m.get(x));
     }
  
     public void testAsSimpleMap()
     {
        Map m = Caches.asSimpleMap(cache.getRoot());
        testMap(m);
     }
  
     public void testSelector()
     {
        Map m = Caches.asPartitionedMap(cache.getRoot(), new DepartmentSelector());
        Person f = new Person("Fred", a);
        Person g = new Person("George", b);
        Person h = new Person("Harry", b);
        // associate person with a number 
        m.put(f, 42);
        m.put(g, 69);
        m.put(h, 21);
        assertEquals(42, m.get(f));
        assertEquals(69, m.get(g));
        System.out.println(((CacheImpl) cache).printDetails());
     }
  
     public static class Person
     {
        String name;
  
        String department;
  
        public Person(String name, String department)
        {
           super();
           this.name = name;
           this.department = department;
        }
  
        public String getDepartment()
        {
           return department;
        }
  
        public String getName()
        {
           return name;
        }
     }
  
     public static class DepartmentSelector implements ChildSelector<Person>
     {
  
        public Object childName(Person key)
        {
           return key.getDepartment();
        }
  
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list