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