Author: cziegeler
Date: Wed Sep 15 08:06:08 2010
New Revision: 997219

URL: http://svn.apache.org/viewvc?rev=997219&view=rev
Log:
Add another test case for remove/add of a bundle in a single cycle -> should 
result in an update

Modified:
    
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java

Modified: 
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java?rev=997219&r1=997218&r2=997219&view=diff
==============================================================================
--- 
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java
 (original)
+++ 
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java
 Wed Sep 15 08:06:08 2010
@@ -171,4 +171,38 @@ public class BundleInstallUpgradeDowngra
             assertBundle("After reinstalling", symbolicName, "1.1", 
Bundle.ACTIVE);
         }
     }
+
+    /**
+     * This test first installs the test bundle in version 1.0 and then 
removes this version while
+     * at the same time adding version 1.1 of the bundle.
+     * This test should ensure that this results in a bundle update and not in 
a bundle remove/install!
+     */
+    @Test
+    public void testUpdateAndRemove() throws Exception {
+        final String symbolicName = "osgi-installer-testbundle";
+        assertNull("Test bundle must be absent before installing", 
findBundle(symbolicName));
+
+        // install version 1.0
+        {
+            final Object listener = this.startObservingBundleEvents();
+            installer.updateResources(URL_SCHEME, getInstallableResource(
+                    getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.0.jar")), 
null);
+            this.waitForBundleEvents(symbolicName + " should be installed with 
version 1.0", listener,
+                    new BundleEvent(symbolicName, "1.0", 
org.osgi.framework.BundleEvent.INSTALLED),
+                    new BundleEvent(symbolicName, "1.0", 
org.osgi.framework.BundleEvent.STARTED));
+            assertBundle("After installing", symbolicName, "1.0", 
Bundle.ACTIVE);
+        }
+        // install version 1.1 and remove 1.0 in one go
+        {
+            final Object listener = this.startObservingBundleEvents();
+            installer.updateResources(URL_SCHEME,
+                    getInstallableResource(getTestBundle(BUNDLE_BASE_NAME + 
"-testbundle-1.1.jar")),
+                    
getNonInstallableResourceUrl(getTestBundle(BUNDLE_BASE_NAME + 
"-testbundle-1.0.jar")));
+            this.waitForBundleEvents(symbolicName + " should be updated", 
listener,
+                    new BundleEvent(symbolicName, null, 
org.osgi.framework.BundleEvent.UPDATED),
+                    new BundleEvent(symbolicName, "1.1", 
org.osgi.framework.BundleEvent.STARTED));
+            assertBundle("After installing", symbolicName, "1.1", 
Bundle.ACTIVE);
+        }
+
+    }
 }
\ No newline at end of file


Reply via email to