You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ro...@apache.org on 2019/11/25 18:43:36 UTC
[aries-cdi] 17/27: test fixes
This is an automated email from the ASF dual-hosted git repository.
rotty3000 pushed a commit to branch rotty3000/cdi-spi
in repository https://gitbox.apache.org/repos/asf/aries-cdi.git
commit 1e0219d2496f8ccc9bf603526bc778fcdeae2f01
Author: Raymond Augé <ro...@apache.org>
AuthorDate: Fri Nov 22 16:51:58 2019 -0500
test fixes
Signed-off-by: Raymond Augé <ro...@apache.org>
---
.../aries/cdi/test/cases/AbstractTestCase.java | 4 +-
.../apache/aries/cdi/test/cases/CdiBeanTests.java | 23 +++---
.../aries/cdi/test/cases/ConfigurationTests.java | 86 ++++++++++++++++------
.../cdi/test/cases/OSGiBeanDescriptorTests.java | 3 +-
4 files changed, 80 insertions(+), 36 deletions(-)
diff --git a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java
index 7ba6581..4c2fcda 100644
--- a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java
+++ b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java
@@ -91,7 +91,7 @@ public abstract class AbstractTestCase {
runtimeTracker = new ServiceTracker<>(
bundleContext, CDIComponentRuntime.class, null);
runtimeTracker.open();
- servicesBundle = installBundle("services-one.jar");
+ servicesBundle = installBundle("services-one.jar", false);
servicesBundle.start();
}
@@ -104,7 +104,7 @@ public abstract class AbstractTestCase {
@Before
public void setUp() throws Exception {
cdiRuntime = runtimeTracker.waitForService(timeout);
- cdiBundle = installBundle("basic-beans.jar");
+ cdiBundle = installBundle("basic-beans.jar", false);
cdiBundle.start();
}
diff --git a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java
index debd60a..29e613a 100644
--- a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java
+++ b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java
@@ -14,7 +14,10 @@
package org.apache.aries.cdi.test.cases;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import java.util.Map;
import java.util.Set;
@@ -43,7 +46,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<BeanService, BeanService> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
BeanService.class.getName(),
- "ConstructorInjectedService");) {
+ "ConstructorInjectedService")) {
BeanService beanService = tracker.waitForService(timeout);
@@ -57,7 +60,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<FieldInjectedReference, FieldInjectedReference> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
FieldInjectedReference.class.getName(),
- "FieldInjectedBundleScopedImpl");) {
+ "FieldInjectedBundleScopedImpl")) {
FieldInjectedReference fieldInjectedReference = tracker.waitForService(timeout);
@@ -77,7 +80,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<FieldInjectedReference, FieldInjectedReference> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
FieldInjectedReference.class.getName(),
- "FieldInjectedPrototypeScopedImpl");) {
+ "FieldInjectedPrototypeScopedImpl")) {
FieldInjectedReference fieldInjectedReference = tracker.waitForService(timeout);
@@ -97,7 +100,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<BeanService, BeanService> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
BeanService.class.getName(),
- "FieldInjectedService");) {
+ "FieldInjectedService")) {
BeanService beanService = tracker.waitForService(timeout);
@@ -111,7 +114,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<BeanService, BeanService> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
BeanService.class.getName(),
- "MethodInjectedService");) {
+ "MethodInjectedService")) {
BeanService beanService = tracker.waitForService(timeout);
@@ -140,7 +143,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<BeanService, BeanService> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
BeanService.class.getName(),
- "ServiceWithProperties");) {
+ "ServiceWithProperties")) {
BeanService beanService = tracker.waitForService(timeout);
@@ -217,7 +220,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<BeanService, BeanService> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
BeanService.class.getName(),
- "Instance_ServiceProperties");) {
+ "Instance_ServiceProperties")) {
BeanService beanService = tracker.waitForService(timeout);
@@ -235,7 +238,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<BeanService, BeanService> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
BeanService.class.getName(),
- "Instance_ServiceReference");) {
+ "Instance_ServiceReference")) {
BeanService beanService = tracker.waitForService(timeout);
@@ -252,7 +255,7 @@ public class CdiBeanTests extends AbstractTestCase {
try (CloseableTracker<BeanService, BeanService> tracker = track(
"(&(objectClass=%s)(objectClass=*.%s))",
BeanService.class.getName(),
- "Instance_Optional");) {
+ "Instance_Optional")) {
BeanService beanService = tracker.waitForService(timeout);
diff --git a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java
index 93272e0..c72a161 100644
--- a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java
+++ b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java
@@ -14,6 +14,7 @@
package org.apache.aries.cdi.test.cases;
+import static java.lang.Thread.sleep;
import static org.junit.Assert.*;
import java.util.Dictionary;
@@ -112,29 +113,40 @@ public class ConfigurationTests extends AbstractTestCase {
p2.put("ports", new int[] {80});
configurationB.update(p2);
- Thread.sleep(200); // give it a few cycles to make sure the configuration update has gone through
-
- stA = new ServiceTracker<BeanService, BeanService>(
- bundleContext, bundleContext.createFilter(
+ stA = new ServiceTracker<>(
+ bundleContext, bundleContext.createFilter(
"(&(objectClass=org.apache.aries.cdi.test.interfaces.BeanService)(bean=A))"), null);
stA.open(true);
BeanService<Callable<int[]>> beanService = stA.waitForService(timeout);
assertNotNull(beanService);
- assertEquals("blue", beanService.doSomething());
- assertArrayEquals(new int[] {12, 4567}, beanService.get().call());
- stB = new ServiceTracker<BeanService, BeanService>(
- bundleContext, bundleContext.createFilter(
+ assertWithRetries(() -> {
+ assertEquals("blue", beanService.doSomething());
+ try {
+ assertArrayEquals(new int[]{12, 4567}, beanService.get().call());
+ } catch (final Exception e) {
+ fail(e.getMessage());
+ }
+ });
+
+ stB = new ServiceTracker<>(
+ bundleContext, bundleContext.createFilter(
"(&(objectClass=org.apache.aries.cdi.test.interfaces.BeanService)(bean=B))"), null);
stB.open(true);
- beanService = stB.waitForService(timeout);
+ final BeanService<Callable<int[]>> beanServiceB = stB.waitForService(timeout);
+ assertNotNull(beanServiceB);
- assertNotNull(beanService);
- assertEquals("green", beanService.doSomething());
- assertArrayEquals(new int[] {80}, beanService.get().call());
+ assertWithRetries(() -> {
+ assertEquals("green", beanServiceB.doSomething());
+ try {
+ assertArrayEquals(new int[]{80}, beanServiceB.get().call());
+ } catch (final Exception e) {
+ fail(e.getMessage());
+ }
+ });
}
finally {
if (configurationA != null) {
@@ -163,6 +175,22 @@ public class ConfigurationTests extends AbstractTestCase {
}
}
+ private void assertWithRetries(final Runnable runnable) throws Exception {
+ int retries = 50;
+ for (int i = 0; i < retries; i++) { // can take some time to let configuration listener get the event and update the bean
+ try {
+ runnable.run();
+ break;
+ } catch (final AssertionError ae) {
+ retries--;
+ if (retries == 0) {
+ throw ae;
+ }
+ sleep(200);
+ }
+ }
+ }
+
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void testOptionalConfiguration() throws Exception {
@@ -192,29 +220,41 @@ public class ConfigurationTests extends AbstractTestCase {
configurationC.update(properties);
stC.close();
- stC = new ServiceTracker<BeanService, BeanService>(
- bundleContext, bundleContext.createFilter(
+ stC = new ServiceTracker<>(
+ bundleContext, bundleContext.createFilter(
"(&(objectClass=org.apache.aries.cdi.test.interfaces.BeanService)(bean=C)(ports=12))"), null);
stC.open(true);
- beanService = stC.waitForService(timeout);
+ final BeanService<Callable<int[]>> beanServiceC = stC.waitForService(timeout);
- assertNotNull(beanService);
- assertEquals("blue", beanService.doSomething());
- assertArrayEquals(new int[] {12, 4567}, beanService.get().call());
+ assertNotNull(beanServiceC);
+ assertWithRetries(() -> {
+ assertEquals("blue", beanServiceC.doSomething());
+ try {
+ assertArrayEquals(new int[]{12, 4567}, beanServiceC.get().call());
+ } catch (final Exception e) {
+ fail(e.getMessage());
+ }
+ });
configurationC.delete();
stC.close();
- stC = new ServiceTracker<BeanService, BeanService>(
- bundleContext, bundleContext.createFilter(
+ stC = new ServiceTracker<>(
+ bundleContext, bundleContext.createFilter(
"(&(objectClass=org.apache.aries.cdi.test.interfaces.BeanService)(bean=C)(!(ports=*)))"), null);
stC.open(true);
- beanService = stC.waitForService(timeout);
+ final BeanService<Callable<int[]>> beanServiceC2 = stC.waitForService(timeout);
assertNotNull(beanService);
- assertEquals("blue", beanService.doSomething());
- assertArrayEquals(new int[] {35777}, beanService.get().call());
+ assertWithRetries(() -> {
+ assertEquals("blue", beanServiceC2.doSomething());
+ try {
+ assertArrayEquals(new int[] {35777}, beanServiceC2.get().call());
+ } catch (final Exception e) {
+ fail(e.getMessage());
+ }
+ });
}
finally {
if (configurationC != null) {
diff --git a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java
index 9446b0e..c8d8233 100644
--- a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java
+++ b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java
@@ -14,7 +14,8 @@
package org.apache.aries.cdi.test.cases;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.util.Set;