Author: ivol
Date: Thu Oct 21 12:07:10 2010
New Revision: 199

Log:
[AMDATU-110] Improved robustness of integration test

Modified:
   
trunk/integration-tests/src/test/java/org/amdatu/test/integration/IntegrationTestRunner.java
   
trunk/integration-tests/src/test/java/org/amdatu/test/integration/TenantManagementServiceTest.java
   
trunk/integration-tests/src/test/java/org/amdatu/test/integration/UserAdminStoreTest.java

Modified: 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/IntegrationTestRunner.java
==============================================================================
--- 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/IntegrationTestRunner.java
        (original)
+++ 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/IntegrationTestRunner.java
        Thu Oct 21 12:07:10 2010
@@ -113,7 +113,7 @@
             // errors and "Invalid BundleContext" error messages, and as a 
result the container might fail
             // to shutdown properly preventing further integration tests to 
run properly.
             System.out.println(TEST_PREFIX + MARKER + "  Waiting for framework 
to complete startup ("
-                + FRAMEWORK_STARTUP_WAIT / 10 + " seconds)  " + MARKER);
+                + FRAMEWORK_STARTUP_WAIT / 1000 + " seconds)  " + MARKER);
             Thread.sleep(FRAMEWORK_STARTUP_WAIT);
         }
         catch (InterruptedException e) {}

Modified: 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/TenantManagementServiceTest.java
==============================================================================
--- 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/TenantManagementServiceTest.java
  (original)
+++ 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/TenantManagementServiceTest.java
  Thu Oct 21 12:07:10 2010
@@ -38,6 +38,8 @@
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
+import org.osgi.service.useradmin.UserAdmin;
+import org.osgi.util.tracker.ServiceTracker;
 
 /**
  * This class provides an integration test for testing the Tenant Management 
Service.
@@ -71,13 +73,32 @@
         try {
             ServiceReference[] tenantDAOs = 
m_bundleContext.getServiceReferences(TenantDAO.class.getName(), null);
             for (ServiceReference ref : tenantDAOs) {
-                System.out.println(TEST_PREFIX + "Tenant DAO = " + 
m_bundleContext.getService(ref));
+                System.out.println(TEST_PREFIX + "Tenant DAO = " + 
m_bundleContext.getService(ref).getClass());
             }
         } catch (InvalidSyntaxException e) {
         }
+        
+        TenantManagementService tenantService = null;
+        ServiceTracker serviceTracker = new ServiceTracker(m_bundleContext, 
TenantManagementService.class.getName(), null);
+        serviceTracker.open();
+        try {
+            System.out
+                .println(TEST_PREFIX + "Waiting for TenantManagementService to 
become available (timeout = 30 seconds)");
+            tenantService = (TenantManagementService) 
serviceTracker.waitForService(30000);
+            System.out.println(TEST_PREFIX + "TenantManagementService 
available: " + tenantService);
+        }
+        catch (InterruptedException e) {
+            e.printStackTrace();
+            Assert.fail(TEST_PREFIX + "TenantManagementService service not 
available: " + e.toString());
+        }
 
         ServiceReference tenantMgrSR = 
m_bundleContext.getServiceReference(TenantManagementService.class.getName());
-        TenantManagementService tenantService = (TenantManagementService) 
m_bundleContext.getService(tenantMgrSR);
+        if (tenantMgrSR == null) {
+            System.out.println("TenantManagementService not available in 
BundleContext, but it is using a ServiceTracker");
+        } else {
+            tenantService = (TenantManagementService) 
m_bundleContext.getService(tenantMgrSR);
+        }
+        
         System.out.println(TEST_PREFIX + "Testing " + tenantService);
 
         try {

Modified: 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/UserAdminStoreTest.java
==============================================================================
--- 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/UserAdminStoreTest.java
   (original)
+++ 
trunk/integration-tests/src/test/java/org/amdatu/test/integration/UserAdminStoreTest.java
   Thu Oct 21 12:07:10 2010
@@ -53,7 +53,7 @@
     }
 
     @Test
-    public void testTenantManagementService() {
+    public void testAdminStore() {
         super.runTest("User Admin Store");
     }
 
@@ -64,8 +64,8 @@
         try {
             System.out
                 .println(TEST_PREFIX + "Waiting for UserAdmin service to 
become available (timeout = 30 seconds)");
-            serviceTracker.waitForService(30000);
-            System.out.println(TEST_PREFIX + "UserAdmin service available");
+            m_userAdmin = (UserAdmin) serviceTracker.waitForService(30000);
+            System.out.println(TEST_PREFIX + "UserAdmin service available: " + 
m_userAdmin);
         }
         catch (InterruptedException e) {
             e.printStackTrace();
@@ -74,8 +74,12 @@
 
         // First get the UserAdmin service
         ServiceReference servRef = 
m_bundleContext.getServiceReference(UserAdmin.class.getName());
-        m_userAdmin = (UserAdmin) m_bundleContext.getService(servRef);
-
+        if (servRef == null) {
+            System.out.println("UserAdmin service not available in 
BundleContext, but it is using a ServiceTracker");
+        } else {
+            m_userAdmin = (UserAdmin) m_bundleContext.getService(servRef);
+        }
+        
         try {
             // Start the test, first remove all existing roles
             Role[] allRoles = m_userAdmin.getRoles(null);

Reply via email to