svn commit: r923093 - /ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r923093 - /ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java

doogie-3
Author: doogie
Date: Mon Mar 15 07:21:10 2010
New Revision: 923093

URL: http://svn.apache.org/viewvc?rev=923093&view=rev
Log:
100% line coverage, 2 branches left.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java?rev=923093&r1=923092&r2=923093&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java Mon Mar 15 07:21:10 2010
@@ -21,6 +21,7 @@ package org.ofbiz.base.concurrent.test;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 
+import org.ofbiz.base.util.ObjectWrapper;
 import org.ofbiz.base.concurrent.TTLObject;
 import org.ofbiz.base.test.GenericTestCaseBase;
 
@@ -29,6 +30,43 @@ public class SyncTTLObjectTest extends T
         super(name, true);
     }
 
+    private static class TTLStaticRegistryObject extends TTLObject<String> {
+        protected String load(String old, int serial) {
+            return old;
+        }
+    }
+
+    public void testTTLStaticRegistries() throws Exception {
+        ObjectWrapper.ConfigurationException caught = null;
+        try {
+            TTLObject.getTTLForClass(TTLStaticRegistryObject.class);
+        } catch (ObjectWrapper.ConfigurationException e) {
+            caught = e;
+        } finally {
+            assertNotNull("no ttl set", caught);
+        }
+        TTLObject.setDefaultTTLForClass(TTLStaticRegistryObject.class, 100);
+        assertEquals("ttl default", 100, TTLObject.getTTLForClass(TTLStaticRegistryObject.class));
+        TTLObject.setDefaultTTLForClass(TTLStaticRegistryObject.class, 200);
+        assertEquals("can't override ttl default", 100, TTLObject.getTTLForClass(TTLStaticRegistryObject.class));
+        TTLObject.setTTLForClass(TTLStaticRegistryObject.class, 200);
+        assertEquals("change ttl", 200, TTLObject.getTTLForClass(TTLStaticRegistryObject.class));
+        TTLObject.setTTLForClass(TTLStaticRegistryObject.class, 300);
+        assertEquals("change ttl", 300, TTLObject.getTTLForClass(TTLStaticRegistryObject.class));
+        caught = null;
+        assertTrue("default foreground", TTLObject.getForegroundForClass(TTLStaticRegistryObject.class));
+        TTLObject.setDefaultForegroundForClass(TTLStaticRegistryObject.class, false);
+        assertFalse("set foreground", TTLObject.getForegroundForClass(TTLStaticRegistryObject.class));
+        TTLObject.setDefaultForegroundForClass(TTLStaticRegistryObject.class, true);
+        assertFalse("can't override foreground", TTLObject.getForegroundForClass(TTLStaticRegistryObject.class));
+        TTLObject.setForegroundForClass(TTLStaticRegistryObject.class, true);
+        assertTrue("set foreground true", TTLObject.getForegroundForClass(TTLStaticRegistryObject.class));
+        TTLObject.setForegroundForClass(TTLStaticRegistryObject.class, false);
+        assertFalse("set foreground false", TTLObject.getForegroundForClass(TTLStaticRegistryObject.class));
+        // this is only to cause coverage to be 100%
+        new TTLStaticRegistryObject().getObject();
+    }
+
     public void testRefresh() throws Exception {
         assertEquals("state:invalid", TTLObject.State.INVALID, object.getState());
         assertEquals("no dones", 0, doneCount.get());
@@ -138,6 +176,13 @@ public class SyncTTLObjectTest extends T
             }
         }, 50);
         assertGetObject("Refreshed with old data", "4", 5, 0, 100000000);
+        object.refresh();
+        loadData = "5";
+        assertGetObject("syncing after refresh", "5", 6, 0, 100000000);
+        loadData = "6";
+        assertGetObject("no load after refresh", "5", 6, 0, 100000000);
+        TTLObject.pulseAll();
+        assertGetObject("new data after pulse all", "6", 7, 0, 100000000);
     }
 
     public void testSetGetAbort() throws Exception {