You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2010/11/25 14:37:57 UTC

svn commit: r1039036 - in /felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test: AbstractServiceDependencyTest.java DynamicProxyAspectTest.java ServiceDependencyComponentLifeCycleTest.java

Author: marrs
Date: Thu Nov 25 13:37:57 2010
New Revision: 1039036

URL: http://svn.apache.org/viewvc?rev=1039036&view=rev
Log:
Fixes and enhancements to these tests.

Modified:
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AbstractServiceDependencyTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AbstractServiceDependencyTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AbstractServiceDependencyTest.java?rev=1039036&r1=1039035&r2=1039036&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AbstractServiceDependencyTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AbstractServiceDependencyTest.java Thu Nov 25 13:37:57 2010
@@ -23,8 +23,8 @@ import static org.ops4j.pax.exam.CoreOpt
 import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
-import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.Component;
+import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Option;
@@ -50,8 +50,17 @@ public class AbstractServiceDependencyTe
        // helper class that ensures certain steps get executed in sequence
        Ensure e = new Ensure();
        // create a service provider and consumer
-       Component sp = m.createComponent().setImplementation(new ServiceProvider(e)).setInterface(ServiceAbstract.class.getName(), null);
-       Component sc = m.createComponent().setImplementation(new ServiceConsumer(e)).add(m.createServiceDependency().setService(ServiceAbstract.class).setRequired(true).setCallbacks("bind", "unbind"));
+       Component sp = m.createComponent()
+           .setInterface(ServiceAbstract.class.getName(), null)
+           .setImplementation(new ServiceProvider(e))
+           ;
+       Component sc = m.createComponent()
+           .setImplementation(new ServiceConsumer(e))
+           .add(m.createServiceDependency()
+               .setService(ServiceAbstract.class)
+               .setRequired(true)
+               .setCallbacks("bind", "unbind")
+               );
        m.add(sp);
        m.add(sc);
        m.remove(sp);
@@ -105,6 +114,7 @@ public class AbstractServiceDependencyTe
        }
 
        public void unbind(ServiceAbstract service) {
+           System.out.println("UNBINDDDDDDDDDDDDDDDDDDDDDDDDDDD");
            Assert.assertEquals(m_service, service);
            m_ensure.step(6);
        }

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java?rev=1039036&r1=1039035&r2=1039036&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/DynamicProxyAspectTest.java Thu Nov 25 13:37:57 2010
@@ -28,8 +28,8 @@ import java.lang.reflect.Proxy;
 
 import junit.framework.Assert;
 
-import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.Component;
+import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Option;
@@ -92,6 +92,14 @@ public class DynamicProxyAspectTest exte
         
         // make sure the proxy has been called twice
         Assert.assertEquals("Proxy should have been invoked this many times.", 2, DynamicProxyHandler.getCounter());
+        
+        try {
+            Thread.sleep(2000);
+        }
+        catch (InterruptedException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        }
     }
     
     static interface ServiceInterface {
@@ -158,6 +166,7 @@ public class DynamicProxyAspectTest exte
         }
 
         public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+            System.out.println("IIIIIIINVOKE--------------------------" + method.getName());
             if (m_service == null) {
                 Assert.fail("No service was injected into dynamic proxy handler " + m_label);
             }
@@ -165,7 +174,12 @@ public class DynamicProxyAspectTest exte
             if (m == null) {
                 Assert.fail("No method " + method.getName() + " was found in instance " + m_service + " in dynamic proxy handler " + m_label);
             }
-            m_counter++;
+            if (method.getName().equals("invoke")) {
+                // only count methods called 'invoke' because those are actually the ones
+                // both interfaces implement (and the dynamic proxy might be invoked for
+                // other methods, such as toString() as well)
+                m_counter++;
+            }
             return m.invoke(m_service, args);
         }
         

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java?rev=1039036&r1=1039035&r2=1039036&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ServiceDependencyComponentLifeCycleTest.java Thu Nov 25 13:37:57 2010
@@ -102,7 +102,9 @@ public class ServiceDependencyComponentL
         
         e.step(11);
         
-        // remove the service again
+        // remove the service again, the component still has an instance bound
+        // dependency on it, so stop() should be invoked, but the component
+        // should not be destroyed
         m.remove(component2);
         e.step(15);
         Assert.assertNull("service should no longer be available", st.getService());
@@ -116,8 +118,8 @@ public class ServiceDependencyComponentL
         private final Ensure m_ensure;
         private final Ensure.Steps m_initSteps = new Ensure.Steps(1, 5);
         private final Ensure.Steps m_startSteps = new Ensure.Steps(2, 6, 8, 16);
-        private final Ensure.Steps m_stopSteps = new Ensure.Steps(3, 7, 17, 18);
-        private final Ensure.Steps m_destroySteps = new Ensure.Steps(4, 14);
+        private final Ensure.Steps m_stopSteps = new Ensure.Steps(3, 7, 12, 17);
+        private final Ensure.Steps m_destroySteps = new Ensure.Steps(4, 18);
 
         public MyComponent(Ensure e) {
             m_ensure = e;