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);