Update of 
/var/cvs/applications/vpro-wizards/tests/org/mmbase/applications/vprowizards/spring/cache
In directory 
james.mmbase.org:/tmp/cvs-serv2827/applications/vpro-wizards/tests/org/mmbase/applications/vprowizards/spring/cache

Modified Files:
        applicationContext.xml 
        OSCacheHandlerInterceptorIntegrationTest.java 
        TokenizerCacheNameResolverTest.java 
Added Files:
        OSCacheHandlerInterceptorSupport.java 
        OSCachehandlerSpringConfigTest.java 
Log Message:
tests are finished


See also: 
http://cvs.mmbase.org/viewcvs/applications/vpro-wizards/tests/org/mmbase/applications/vprowizards/spring/cache


OSCacheHandlerInterceptorSupport.java is new



OSCachehandlerSpringConfigTest.java is new



Index: applicationContext.xml
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/tests/org/mmbase/applications/vprowizards/spring/cache/applicationContext.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- applicationContext.xml      6 Dec 2008 17:58:47 -0000       1.2
+++ applicationContext.xml      10 Dec 2008 15:44:18 -0000      1.3
@@ -6,10 +6,17 @@
                interceptor
   </description>
 
+    <bean id="tokenizerCacheNameResolverFactory" 
class="org.mmbase.applications.vprowizards.spring.util.ClassInstanceFactory">
+        <property name="className" 
value="org.mmbase.applications.vprowizards.spring.cache.TokenizerCacheNameResolver"/>
+    </bean>
+    
+    <bean id="dummyCacheWrapper"
+        
class="org.mmbase.applications.vprowizards.spring.cache.DummyCacheWrapper" />
 
        <bean id="handlerInterceptor"
                
class="org.mmbase.applications.vprowizards.spring.cache.BasicCacheHandlerInterceptor">
                <property name="cacheWrapper" ref="dummyCacheWrapper" />
+               <property name="cacheNameResolverFactory" 
ref="tokenizerCacheNameResolverFactory"/>
                <property name="modifiers">
                        <list>
                                <bean
@@ -17,15 +24,10 @@
                                        <property name="prefix" value="pre_" />
                                        <property name="suffix" value="_suf" />
                                </bean>
+                               <bean 
class="org.mmbase.applications.vprowizards.spring.cache.modifiers.TemplateCleanerModifier"/>
                        </list>
                </property>
-               <property name="cacheNameResolverFactory">
-                 <bean 
class="org.mmbase.applications.vprowizards.spring.util.ClassInstanceFactory">
-                     <property name="className" 
value="org.mmbase.applications.vprowizards.spring.cache.TokenizerCacheNameResolver"/>
-                 </bean>
-               </property>
        </bean>
 
-       <bean id="dummyCacheWrapper"
-               
class="org.mmbase.applications.vprowizards.spring.cache.DummyCacheWrapper" />
+       
 </beans>
\ No newline at end of file


Index: OSCacheHandlerInterceptorIntegrationTest.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/tests/org/mmbase/applications/vprowizards/spring/cache/OSCacheHandlerInterceptorIntegrationTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- OSCacheHandlerInterceptorIntegrationTest.java       8 Dec 2008 19:37:08 
-0000       1.1
+++ OSCacheHandlerInterceptorIntegrationTest.java       10 Dec 2008 15:44:18 
-0000      1.2
@@ -1,29 +1,208 @@
 package org.mmbase.applications.vprowizards.spring.cache;
 
-import junit.framework.TestCase;
+import static org.easymock.EasyMock.*;
+
 
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import junit.framework.TestCase;
 
-public class OSCacheHandlerInterceptorIntegrationTest extends TestCase {
+import org.mmbase.applications.vprowizards.spring.util.ClassInstanceFactory;
     
-    private ApplicationContext context;
+public class OSCacheHandlerInterceptorIntegrationTest extends 
OSCacheHandlerInterceptorSupport {
 
     @Override
-    protected void setUp() throws Exception {
-        context = new 
ClassPathXmlApplicationContext("org/mmbase/applications/vprowizards/spring/cache/applicationContext.xml");
+    protected void setUp() {
+        cacheNameResolverFactory = new 
ClassInstanceFactory<CacheNameResolver>();
+        cacheNameResolverFactory.setClass(TokenizerCacheNameResolver.class);
+        cacheWrapper = new DummyCacheWrapper();
+        
+        osCacheHandlerInterceptor = new BasicCacheHandlerInterceptor();
+        
osCacheHandlerInterceptor.setCacheNameResolverFactory(cacheNameResolverFactory);
+        osCacheHandlerInterceptor.setCacheWrapper(cacheWrapper);
+    }
+
+    public void test_no_flush_param_does_nothing(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), "");
+        handleRequest();
+        
+        assertAmountOfCacheFlushes(0);
+    }
+    
+    public void test_no_cacheflush_hint_dous_nothing(){
+        setUpRequest(null, "node:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
+    }
+    
+    public void test_single_hint_with_matching_template_couses_flush(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), "node:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("user");
+
+        setUp();
+        setUpRequest(createList(createCacheFlushHintTypeRelation()), 
"relation:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("user");
+        
+        setUp();
+        setUpRequest(createList(createCacheFlushHintTypeRequest()), 
"request:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("user");
+    }
+    
+    public void 
test_single_hint_with_template_for_different_hint_type_dous_nothing(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), 
"relation:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
+        
+        setUp();
+        setUpRequest(createList(createCacheFlushHintTypeRelation()), 
"node:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
+        
+        setUp();
+        setUpRequest(createList(createCacheFlushHintTypeRequest()), 
"node:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
     }
     
-    public void test_application_context(){
-        assertNotNull(context.getBean("handlerInterceptor"));
-        assertNotNull(context.getBean("dummyCacheWrapper"));
-        BasicCacheHandlerInterceptor handlerInterceptor = 
(BasicCacheHandlerInterceptor) context.getBean("handlerInterceptor");
-        assertNotNull(handlerInterceptor.getCacheNameResolverFactory());
+    public void 
test_single_hint_with_multiple_matching_templates_for_different_hint_type_dous_nothing(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), 
"relation:user,disco");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
+        
+        setUp();
+        setUpRequest(createList(createCacheFlushHintTypeRelation()), 
"request:user,disco");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
+        
+        setUp();
+        setUpRequest(createList(createCacheFlushHintTypeRequest()), 
"node:user,disco");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
+    }
         
-        
assertTrue(DummyCacheWrapper.class.isInstance(handlerInterceptor.getCacheWrapper()));
-        assertEquals(TokenizerCacheNameResolver.class, 
handlerInterceptor.getCacheNameResolverFactory().getClazz());
+    public void 
test_single_hint_with_multiple_matching_templates_couses_flush(){
+        setUpRequest(
+                createList(createCacheFlushHintTypeNode()), 
+                "node:user,disco");
+        handleRequest();
+        assertAmountOfCacheFlushes(2);
+        assertCacheHasBeenFlushed("user");
+        assertCacheHasBeenFlushed("disco");
+        
+        setUp();
+        setUpRequest(
+                createList(createCacheFlushHintTypeRelation()), 
+                "relation:user,disco");
+        handleRequest();
+        assertAmountOfCacheFlushes(2);
+        assertCacheHasBeenFlushed("user");
+        assertCacheHasBeenFlushed("disco");
+        
+        setUp();
+        setUpRequest(
+                createList(createCacheFlushHintTypeRequest()), 
+                "request:user,disco");
+        handleRequest();
+        assertAmountOfCacheFlushes(2);
+        assertCacheHasBeenFlushed("user");
+        assertCacheHasBeenFlushed("disco");
     }
-    public void test_some_more(){
+    
+    public void test_multiple_matching_hints(){
+        setUpRequest(
+                createList(createCacheFlushHintTypeNode(), 
+                        createCacheFlushHintTypeRelation(), 
+                        createCacheFlushHintTypeRequest()), 
+                "node:user relation:disco,something request:global");
+        handleRequest();
+        assertAmountOfCacheFlushes(4);
+        assertCacheHasBeenFlushed("user");
+        assertCacheHasBeenFlushed("disco");
+        assertCacheHasBeenFlushed("something");
+        assertCacheHasBeenFlushed("global");
     }
 
+    public void test_mix_of_matching_and_nonmatching_hints(){
+        setUpRequest(
+                createList(createCacheFlushHintTypeNode(), 
+                        createCacheFlushHintTypeRequest()), 
+                "node:user relation:disco,something request:global");
+        handleRequest();
+        assertAmountOfCacheFlushes(2);
+        assertCacheHasBeenFlushed("user");
+        assertCacheHasBeenFlushed("global");
+    }    
+    
+    public void test_unsupported_namespace_dous_nothing(){
+        setUpRequest(
+                createList(createCacheFlushHintTypeNode()), 
+                "unsupportednamespace:user");
+        handleRequest();
+        assertAmountOfCacheFlushes(0);
+    }
+    
+    public void test_with_prefix_suffix_modifier(){
+        setUpRequest(
+                createList(createCacheFlushHintTypeNode(), 
+                        createCacheFlushHintTypeRelation(), 
+                        createCacheFlushHintTypeRequest()), 
+                "node:user relation:disco,something request:global");
+        addPrefixSuffixModifier("p_", "_s");
+        handleRequest();
+        assertAmountOfCacheFlushes(4);
+        assertCacheHasBeenFlushed("p_user_s");
+        assertCacheHasBeenFlushed("p_disco_s");
+        assertCacheHasBeenFlushed("p_something_s");
+        assertCacheHasBeenFlushed("p_global_s");
+    }
+    
+    
+    public void test_with_template_cleaner_modifier_and_simple_template(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), 
"node:user_[users:90]");
+        addTemplateRemover();
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("user_90");
+    }
+    
+    public void test_with_template_cleaner_modifier_and_query_template(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), 
"node:user_[users.disco.nogwat:90]");
+        addTemplateRemover();
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("user_90");
+    }
+    
+    public void test_with_template_cleaner_modifier_and_multi_template(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), 
+                "node:user_[users.disco.nogwat:90]and[something:80]");
+        addTemplateRemover();
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("user_90and80");
+    }
+    
+    public void 
test_with_template_cleaner_modifier_and_simple_template_without_number(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), 
"node:user_[users]");
+        addTemplateRemover();
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("user_");
+    }
+    
+    public void test_with_both_prefixsuffix_and_template_cleaner(){
+        setUpRequest(createList(createCacheFlushHintTypeNode()), 
"node:user_[users:100]");
+        addTemplateRemover();
+        addPrefixSuffixModifier("p_", "_s");
+        handleRequest();
+        assertAmountOfCacheFlushes(1);
+        assertCacheHasBeenFlushed("p_user_100_s");
+    }
 }


Index: TokenizerCacheNameResolverTest.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/tests/org/mmbase/applications/vprowizards/spring/cache/TokenizerCacheNameResolverTest.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- TokenizerCacheNameResolverTest.java 8 Dec 2008 19:37:08 -0000       1.3
+++ TokenizerCacheNameResolverTest.java 10 Dec 2008 15:44:18 -0000      1.4
@@ -34,15 +34,15 @@
         tcnr.setInput("drie:hallo vier:noop,noppes");
         List<String> l = tcnr.getNames("drie");
         assertEquals(1, l.size());
-        assertNotNull(l.contains("hallo"));
+        assertTrue(l.contains("hallo"));
     }
     
     public void test_values_with_matching_namespace_should_be_returned() {
         tcnr.setInput("drie:hallo vier:noop,noppes");
         List<String> l = tcnr.getNames("vier");
         assertEquals(2, l.size());
-        assertNotNull(l.contains("noop"));
-        assertNotNull(l.contains("noppes"));
+        assertTrue(l.contains("noop"));
+        assertTrue(l.contains("noppes"));
         l = tcnr.getNames("drie");
         assertEquals(1, l.size());
         
@@ -52,27 +52,27 @@
         tcnr.setInput("foo drie:hallo vier:noop,noppes");
         List<String> l = tcnr.getNames("drie");
         assertEquals(2, l.size());
-        assertNotNull(l.contains("foo"));
-        assertNotNull(l.contains("hallo"));
+        assertTrue(l.contains("foo"));
+        assertTrue(l.contains("hallo"));
     }
     
     public void 
test_global_values_and_values_with_matching_namespace_should_be_returned() {
         tcnr.setInput("foo,bar,again drie:hallo vier:noop,noppes");
         List<String> l = tcnr.getNames("drie");
         assertEquals(4, l.size());
-        assertNotNull(l.contains("foo"));
-        assertNotNull(l.contains("bar"));
-        assertNotNull(l.contains("again"));
-        assertNotNull(l.contains("hallo"));
+        assertTrue(l.contains("foo"));
+        assertTrue(l.contains("bar"));
+        assertTrue(l.contains("again"));
+        assertTrue(l.contains("hallo"));
     }
 
     public void test_just_global_values() {
             tcnr.setInput("foo,bar,again vier:noop,noppes");
             List<String> l = tcnr.getNames("drie");
             assertEquals(3, l.size());
-            assertNotNull(l.contains("foo"));
-            assertNotNull(l.contains("bar"));
-            assertNotNull(l.contains("again"));
+            assertTrue(l.contains("foo"));
+            assertTrue(l.contains("bar"));
+            assertTrue(l.contains("again"));
     }
     
     
@@ -80,23 +80,31 @@
         tcnr.setInput("vier:noop[test],noppes");
         List<String> l = tcnr.getNames("vier");
         assertEquals(2, l.size());
-        assertNotNull(l.contains("noop[test]"));
-        assertNotNull(l.contains("noppes"));
+        assertTrue(l.contains("noop[test]"));
+        assertTrue(l.contains("noppes"));
     }
     
-    public void test_template_with_nodenr(){
+    public void test_template_with_simple_template(){
         tcnr.setInput("vier:noop[test:4576],noppes[jaja]");
         List<String> l = tcnr.getNames("vier");
         assertEquals(2, l.size());
-        assertNotNull(l.contains("noop[test:4576]"));
-        assertNotNull(l.contains("noppes[jaja]"));
+        assertTrue(l.contains("noop[test:4576]"));
+        assertTrue(l.contains("noppes[jaja]"));
     }
     
-    public void test_templates_with_paht(){
+    public void test_templates_with_query_template(){
         tcnr.setInput("vier:noop[test.disco.nogwat:4576]");
         List<String> l = tcnr.getNames("vier");
         assertEquals(1, l.size());
-        assertNotNull(l.contains("noop[test.disco.nogwat:4576]"));
+        assertTrue(l.contains("noop[test.disco.nogwat:4576]"));
+    }
+    
+    public void test_templates_with_multi_template(){
+        tcnr.setInput("vier:noop[test.disco.nogwat:4576]en[een:89],twee");
+        List<String> l = tcnr.getNames("vier");
+        assertEquals(2, l.size());
+        assertTrue(l.contains("noop[test.disco.nogwat:4576]en[een:89]"));
+        assertTrue(l.contains("twee"));
     }
     
     public void test_tokenizer_resets_with_new_input(){
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to