Clover coverage report -
Coverage timestamp: Wed Jan 31 2007 15:38:53 EST
file stats: LOC: 358   Methods: 21
NCLOC: 294   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
LocalTest.java 50% 95.7% 95.2% 92%
coverage coverage
 1    package org.jboss.cache.pojo;
 2   
 3    import junit.framework.Test;
 4    import junit.framework.TestCase;
 5    import junit.framework.TestSuite;
 6    import org.apache.commons.logging.Log;
 7    import org.apache.commons.logging.LogFactory;
 8    import org.jboss.aop.proxy.ClassProxy;
 9    import org.jboss.cache.pojo.test.Address;
 10    import org.jboss.cache.pojo.test.Person;
 11    import org.jboss.cache.pojo.test.Student;
 12   
 13    import java.util.ArrayList;
 14    import java.util.HashMap;
 15    import java.util.HashSet;
 16    import java.util.List;
 17    import java.util.Map;
 18    import java.util.Set;
 19   
 20    /**
 21    * Basic PojoCache test case.
 22    *
 23    * @author Ben Wang
 24    */
 25   
 26    public class LocalTest extends TestCase
 27    {
 28    Log log = LogFactory.getLog(LocalTest.class);
 29    PojoCache cache_;
 30   
 31  28 public LocalTest(String name)
 32    {
 33  28 super(name);
 34    }
 35   
 36  28 protected void setUp() throws Exception
 37    {
 38  28 super.setUp();
 39  28 log.info("setUp() ....");
 40  28 String configFile = "META-INF/local-service.xml";
 41  28 boolean toStart = false;
 42  28 cache_ = PojoCacheFactory.createCache(configFile, toStart);
 43  28 cache_.start();
 44    }
 45   
 46  28 protected void tearDown() throws Exception
 47    {
 48  28 super.tearDown();
 49  28 cache_.stop();
 50    }
 51   
 52    // public void testDummy() {}
 53   
 54  22 private Person createPerson(String id, String name, int age)
 55    {
 56  22 Person p = new Person();
 57  22 p.setName(name);
 58  22 p.setAge(age);
 59  22 Address add = new Address();
 60  22 add.setZip(95123);
 61  22 add.setCity("San Jose");
 62  22 p.setAddress(add);
 63  22 cache_.attach(id, p);
 64  22 return p;
 65    }
 66   
 67  2 private Student createStudent(String id, String name, int age, String grade)
 68    {
 69  2 Student p = new Student();
 70  2 p.setName(name);
 71  2 p.setAge(age);
 72  2 p.setYear(grade);
 73  2 Address add = new Address();
 74  2 add.setZip(95123);
 75  2 add.setCity("San Jose");
 76  2 p.setAddress(add);
 77  2 cache_.attach(id, p);
 78  2 return p;
 79    }
 80   
 81  2 public void testSimple() throws Exception
 82    {
 83  2 log.info("testSimple() ....");
 84  2 Person p = createPerson("/person/test1", "Joe Black", 32);
 85  2 assertEquals((Object) "Joe Black", p.getName());
 86    }
 87   
 88  2 public void testSimpleType() throws Exception
 89    {
 90  2 log.info("testSimpleType() ....");
 91  2 String test = "This is a test";
 92  2 cache_.attach("test", test);
 93   
 94  2 assertEquals("String ", test, cache_.find("test"));
 95    }
 96   
 97  2 public void testModification() throws Exception
 98    {
 99  2 Person joe = createPerson("/person/test2", "Joe", 32);
 100  2 joe.setName("Joe Black");
 101  2 assertEquals(joe.getName(), "Joe Black");
 102  2 cache_.detach("/person/test2");
 103    }
 104   
 105  2 public void testRemove() throws Exception
 106    {
 107  2 Person joe = createPerson("/person/test3", "Joe", 32);
 108  2 cache_.detach("/person/test3");
 109    // assertNull("Underlying cache content " + cache_.getCache().printDetails(),
 110    // cache_.getCache().get("/person/test3"));
 111    }
 112   
 113  2 public void testDynamicRefSwapping() throws Exception
 114    {
 115  2 Person person = createPerson("/person/test3", "Joe", 32);
 116  2 try
 117    {
 118  2 person.setAge(30);
 119  2 List med = person.getMedication();
 120  2 assertNull("Medication should be null ", med);
 121  2 person.setAge(60);
 122  2 med = person.getMedication();
 123  2 assertEquals("Medication ", "Lipitor", med.get(0));
 124    }
 125    catch (Exception e)
 126    {
 127    // should be thrown
 128    }
 129    }
 130   
 131  2 public void testMap() throws Exception
 132    {
 133  2 log.info("testMap() ....");
 134  2 Person ben = createPerson("/person/test1", "Ben Wang", 40);
 135  2 assertEquals((Object) "Ben Wang", ben.getName());
 136  2 Map<String, String> hobbies = ben.getHobbies();
 137  2 if (hobbies == null)
 138    {
 139  2 hobbies = new HashMap<String, String>();
 140  2 ben.setHobbies(hobbies);
 141    // NB: it is neccessary to get hobbies again to get advised version
 142  2 hobbies = ben.getHobbies();
 143    }
 144  2 hobbies.put("1", "English");
 145  2 hobbies.put("2", "French");
 146  2 if (!(hobbies instanceof ClassProxy))
 147    {
 148  0 fail("Hobbies is not an instance of ClassProxy");
 149    }
 150   
 151  2 hobbies = ben.getHobbies();
 152  2 assertEquals("Hobbies size", 2, hobbies.size());
 153  2 log.debug("Hobbies is " + hobbies.toString());
 154    }
 155   
 156  2 public void testMapDetachAttach() throws Exception
 157    {
 158  2 log.info("testMapDetachATtach() ....");
 159  2 Person ben = createPerson("/person/test1", "Ben Wang", 40);
 160  2 assertEquals((Object) "Ben Wang", ben.getName());
 161  2 Map<String, String> hobbies = ben.getHobbies();
 162  2 if (hobbies == null)
 163    {
 164  2 hobbies = new HashMap<String, String>();
 165  2 ben.setHobbies(hobbies);
 166    // NB: it is neccessary to get hobbies again to get advised version
 167  2 hobbies = ben.getHobbies();
 168    }
 169  2 hobbies.put("1", "English");
 170  2 hobbies.put("2", "French");
 171  2 if (!(hobbies instanceof ClassProxy))
 172    {
 173  0 fail("Hobbies is not an instance of ClassProxy");
 174    }
 175   
 176  2 hobbies = ben.getHobbies();
 177  2 assertEquals("Hobbies size", 2, hobbies.size());
 178  2 log.debug("Hobbies is " + hobbies.toString());
 179   
 180  2 cache_.detach("/person/test1");
 181  2 hobbies = ben.getHobbies();
 182  2 if ((hobbies instanceof ClassProxy))
 183    {
 184  0 fail("Hobbies should not be an instance of ClassProxy");
 185    }
 186   
 187  2 cache_.attach("/person/1", ben);
 188   
 189    }
 190   
 191  2 public void testMap2() throws Throwable
 192    {
 193  2 Person joe = createPerson("/person/test5", "Joe Black", 32);
 194  2 Map<String, String> hobby = new HashMap<String, String>();
 195  2 hobby.put("music", "guitar");
 196  2 joe.setHobbies(hobby);
 197  2 Object val = joe.getHobbies().get("music");
 198  2 assertEquals("guitar", val);
 199  2 hobby = joe.getHobbies();
 200  2 hobby.put("novel", "English");
 201  2 assertEquals("Size of map ", 2, joe.getHobbies().size());
 202    }
 203   
 204  2 public void testList() throws Throwable
 205    {
 206  2 Person joe = createPerson("/person/test6", "Joe", 50);
 207  2 List<String> language = new ArrayList<String>();
 208  2 language.add("German");
 209  2 language.add("English");
 210  2 language.add("French");
 211  2 joe.setLanguages(language);
 212   
 213  2 assertEquals("Size of language ", 3, joe.getLanguages().size());
 214  2 language = joe.getLanguages();
 215  2 language.add("Mandarin");
 216  2 language.add("Taiwanese");
 217  2 language.add("Haka");
 218  2 assertEquals("Size of language ", 6, joe.getLanguages().size());
 219   
 220  2 String English = language.get(1);
 221  2 assertEquals((Object) "English", English);
 222  2 cache_.detach("/person/test6");
 223    }
 224   
 225  2 public void testListDetachAndAttach() throws Throwable
 226    {
 227  2 String id = "/person/test6";
 228  2 Person joe = new Person();
 229  2 List<String> language = new ArrayList<String>();
 230  2 language.add("German");
 231  2 language.add("English");
 232  2 language.add("French");
 233  2 joe.setLanguages(language);
 234   
 235  2 cache_.attach(id, joe);
 236  2 cache_.detach(id);
 237    // TreeCacheProxyImpl impl = (TreeCacheProxyImpl)cache_.getCache();
 238    // System.out.println("*** Here I ");
 239    // System.out.println(impl.printDetails());
 240   
 241  2 joe.getAge();
 242  2 cache_.attach(id, joe);
 243    }
 244   
 245  2 public void testListDetachAndAttach2() throws Throwable
 246    {
 247  2 String id = "/person/test6";
 248  2 Person joe = createPerson(id, "Joe", 50);
 249  2 List<String> language = new ArrayList<String>();
 250  2 language.add("German");
 251  2 language.add("English");
 252  2 language.add("French");
 253  2 joe.setLanguages(language);
 254   
 255  2 assertEquals("Size of language ", 3, joe.getLanguages().size());
 256  2 language = joe.getLanguages();
 257  2 language.add("Mandarin");
 258  2 language.add("Taiwanese");
 259  2 language.add("Haka");
 260  2 assertEquals("Size of language ", 6, joe.getLanguages().size());
 261   
 262  2 String English = language.get(1);
 263  2 assertEquals((Object) "English", English);
 264   
 265  2 if (!(language instanceof ClassProxy))
 266    {
 267  0 fail("Language is not an instance of ClassProxy");
 268    }
 269   
 270  2 cache_.detach(id);
 271  2 joe.getAge();
 272  2 language = joe.getLanguages();
 273  2 if ((language instanceof ClassProxy))
 274    {
 275  0 fail("Language is an instance of ClassProxy");
 276    }
 277   
 278  2 cache_.attach(id, joe);
 279    }
 280   
 281  2 public void testSet() throws Throwable
 282    {
 283  2 Person joe = createPerson("/person/test7", "Joe", 27);
 284  2 Set<String> skill = new HashSet<String>();
 285  2 skill.add("Java");
 286  2 skill.add("Java");
 287  2 skill.add("Java");
 288  2 joe.setSkills(skill);
 289  2 skill = joe.getSkills();
 290  2 assertEquals("Size of skill ", 1, skill.size());
 291   
 292  2 skill.remove("Java");
 293  2 assertTrue(skill.isEmpty());
 294  2 skill.add("Java");
 295  2 skill.add("J2EE");
 296  2 skill.add("JBoss");
 297  2 assertEquals(new Integer(3), new Integer(skill.size()));
 298    }
 299   
 300  2 public void testSetDetachAttach() throws Throwable
 301    {
 302  2 String id = "/person/test7";
 303  2 Person joe = createPerson(id, "Joe", 27);
 304  2 Set<String> skill = new HashSet<String>();
 305  2 skill.add("Java");
 306  2 skill.add("Java");
 307  2 skill.add("Java");
 308  2 joe.setSkills(skill);
 309  2 skill = joe.getSkills();
 310  2 assertEquals("Size of skill ", 1, skill.size());
 311   
 312  2 skill.remove("Java");
 313  2 assertTrue(skill.isEmpty());
 314  2 skill.add("Java");
 315  2 skill.add("J2EE");
 316  2 skill.add("JBoss");
 317  2 assertEquals(new Integer(3), new Integer(skill.size()));
 318   
 319  2 if (!(skill instanceof ClassProxy))
 320    {
 321  0 fail("Skill is not an instance of ClassProxy");
 322    }
 323   
 324  2 cache_.detach(id);
 325  2 joe.getAge();
 326  2 skill = joe.getSkills();
 327  2 if ((skill instanceof ClassProxy))
 328    {
 329  0 fail("Skill is an instance of ClassProxy");
 330    }
 331   
 332  2 cache_.attach(id, joe);
 333    }
 334   
 335  2 public void testInheritance() throws Exception
 336    {
 337  2 Student joe = createStudent("/person/joe", "Joe", 32, "Senior");
 338  2 joe.setName("Joe Black");
 339  2 assertEquals(joe.getName(), "Joe Black");
 340  2 joe.setYear("Junior");
 341  2 assertEquals(joe.getYear(), "Junior");
 342  2 cache_.detach("/person/joe");
 343    }
 344   
 345   
 346  2 public static Test suite() throws Exception
 347    {
 348  2 return new TestSuite(LocalTest.class);
 349    }
 350   
 351   
 352  0 public static void main(String[] args) throws Exception
 353    {
 354  0 junit.textui.TestRunner.run(suite());
 355    }
 356   
 357    }
 358