From 6163b14321decfd7edb9e55cf422976ae2cf3a9e Mon Sep 17 00:00:00 2001 From: sinthuja Date: Tue, 10 Oct 2017 23:25:57 +0530 Subject: [PATCH 1/4] adding service component testcase. --- .../pom.xml | 4 + .../publisher/DataPublisherConfigTest.java | 1 + .../DataPublisherServiceComponentTest.java | 61 +++++++++++++++ .../publisher/EventPublisherServiceTest.java | 2 - .../publisher/util/TestComponentContext.java | 78 +++++++++++++++++++ .../src/test/resources/testng.xml | 1 + pom.xml | 9 +++ 7 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml index fa48e6df8d..fb8894aa93 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml @@ -78,6 +78,10 @@ org.wso2.carbon org.wso2.carbon.securevault + + org.apache.sling + org.apache.sling.testing.osgi-mock + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherConfigTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherConfigTest.java index 5f594ef686..e5bcab9378 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherConfigTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherConfigTest.java @@ -79,4 +79,5 @@ public class DataPublisherConfigTest extends BaseAnalyticsDataPublisherTest { Assert.assertEquals(analyticsConfiguration.getReceiverServerUrl(), "tcp://localhost:7615"); Assert.assertTrue(analyticsConfiguration.isEnable()); } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java new file mode 100644 index 0000000000..74f9762669 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java @@ -0,0 +1,61 @@ +/* +* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +* +*/ +package org.wso2.carbon.device.mgt.analytics.data.publisher; + + +import org.apache.sling.testing.mock.osgi.MockOsgi; +import org.osgi.service.component.ComponentContext; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; +import org.wso2.carbon.device.mgt.analytics.data.publisher.internal.DataPublisherServiceComponent; +import org.wso2.carbon.device.mgt.analytics.data.publisher.util.TestComponentContext; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +public class DataPublisherServiceComponentTest extends BaseAnalyticsDataPublisherTest { + private DataPublisherServiceComponent serviceComponent; + + @BeforeClass + public void initTest() { + this.serviceComponent = new DataPublisherServiceComponent(); + } + + @Test + public void activateWithException() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { + this.activate(new TestComponentContext()); + } + + @Test(dependsOnMethods = "activateWithException") + public void activateWithoutException() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + this.activate(MockOsgi.newComponentContext()); + } + + @Test(dependsOnMethods = "activateWithoutException") + public void deActivate() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Method method = this.serviceComponent.getClass().getDeclaredMethod("deactivate", ComponentContext.class); + method.setAccessible(true); + method.invoke(this.serviceComponent, MockOsgi.newComponentContext()); + } + + private void activate(ComponentContext componentContext) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Method method = this.serviceComponent.getClass().getDeclaredMethod("activate", ComponentContext.class); + method.setAccessible(true); + method.invoke(this.serviceComponent, componentContext); + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/EventPublisherServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/EventPublisherServiceTest.java index b9b822e4c1..a7e5e8083d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/EventPublisherServiceTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/EventPublisherServiceTest.java @@ -29,9 +29,7 @@ import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DataPublish import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService; import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherServiceImpl; -import java.io.File; import java.lang.reflect.Field; -import java.net.URL; /** * This test class will test the methods that are exposed from {@link EventsPublisherService} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java new file mode 100644 index 0000000000..1caecf5c4b --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java @@ -0,0 +1,78 @@ +/* +* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +* +*/ +package org.wso2.carbon.device.mgt.analytics.data.publisher.util; + +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; +import org.osgi.service.component.ComponentContext; +import org.osgi.service.component.ComponentInstance; + +import java.util.Dictionary; + +public class TestComponentContext implements ComponentContext { + @Override + public Dictionary getProperties() { + return null; + } + + @Override + public Object locateService(String s) { + return null; + } + + @Override + public Object locateService(String s, ServiceReference serviceReference) { + return null; + } + + @Override + public Object[] locateServices(String s) { + return new Object[0]; + } + + @Override + public BundleContext getBundleContext() { + return null; + } + + @Override + public Bundle getUsingBundle() { + return null; + } + + @Override + public ComponentInstance getComponentInstance() { + return null; + } + + @Override + public void enableComponent(String s) { + + } + + @Override + public void disableComponent(String s) { + + } + + @Override + public ServiceReference getServiceReference() { + return null; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/resources/testng.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/resources/testng.xml index 7130399792..8a3669fd4d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/resources/testng.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/resources/testng.xml @@ -25,6 +25,7 @@ + diff --git a/pom.xml b/pom.xml index 4bf590b242..7b12b06260 100644 --- a/pom.xml +++ b/pom.xml @@ -408,6 +408,12 @@ ${carbon.kernel.version} test + + org.apache.sling + org.apache.sling.testing.osgi-mock + ${apache.osgi.mock.version} + test + org.wso2.carbon.governance org.wso2.carbon.governance.api @@ -1969,6 +1975,9 @@ 1.6.1 + + 2.3.2 + 2.1.7-wso2v7 1.5.11.wso2v15 From 0475ae9e3a13e4a67554bc0878a1ace3cd9f4fd0 Mon Sep 17 00:00:00 2001 From: sinthuja Date: Tue, 10 Oct 2017 23:37:15 +0530 Subject: [PATCH 2/4] adding class and test case comments. --- .../publisher/DataPublisherServiceComponentTest.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java index 74f9762669..5449d6f489 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java @@ -28,6 +28,9 @@ import org.wso2.carbon.device.mgt.analytics.data.publisher.util.TestComponentCon import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +/** + * This tesclass will be validating the behaviour of {@link DataPublisherServiceComponent} + */ public class DataPublisherServiceComponentTest extends BaseAnalyticsDataPublisherTest { private DataPublisherServiceComponent serviceComponent; @@ -36,17 +39,17 @@ public class DataPublisherServiceComponentTest extends BaseAnalyticsDataPublishe this.serviceComponent = new DataPublisherServiceComponent(); } - @Test + @Test (description = "Test bundle activation with exception thrown when service resgistration") public void activateWithException() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { this.activate(new TestComponentContext()); } - @Test(dependsOnMethods = "activateWithException") + @Test(dependsOnMethods = "activateWithException", description = "Test the bundle activation with succesful path") public void activateWithoutException() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { this.activate(MockOsgi.newComponentContext()); } - @Test(dependsOnMethods = "activateWithoutException") + @Test(dependsOnMethods = "activateWithoutException", description = "Test bundle deactivation") public void deActivate() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { Method method = this.serviceComponent.getClass().getDeclaredMethod("deactivate", ComponentContext.class); method.setAccessible(true); From 6d61878b532f47991b169e163fb9d729ab7c9d3c Mon Sep 17 00:00:00 2001 From: sinthuja Date: Tue, 10 Oct 2017 23:38:44 +0530 Subject: [PATCH 3/4] Line formatting and adding missing class comments. --- .../publisher/DataPublisherServiceComponentTest.java | 9 ++++++--- .../data/publisher/util/TestComponentContext.java | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java index 5449d6f489..d5ffb75d48 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/DataPublisherServiceComponentTest.java @@ -40,12 +40,14 @@ public class DataPublisherServiceComponentTest extends BaseAnalyticsDataPublishe } @Test (description = "Test bundle activation with exception thrown when service resgistration") - public void activateWithException() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { + public void activateWithException() throws NoSuchMethodException, IllegalAccessException, + InvocationTargetException { this.activate(new TestComponentContext()); } @Test(dependsOnMethods = "activateWithException", description = "Test the bundle activation with succesful path") - public void activateWithoutException() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + public void activateWithoutException() throws NoSuchMethodException, InvocationTargetException, + IllegalAccessException { this.activate(MockOsgi.newComponentContext()); } @@ -56,7 +58,8 @@ public class DataPublisherServiceComponentTest extends BaseAnalyticsDataPublishe method.invoke(this.serviceComponent, MockOsgi.newComponentContext()); } - private void activate(ComponentContext componentContext) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + private void activate(ComponentContext componentContext) throws NoSuchMethodException, InvocationTargetException, + IllegalAccessException { Method method = this.serviceComponent.getClass().getDeclaredMethod("activate", ComponentContext.class); method.setAccessible(true); method.invoke(this.serviceComponent, componentContext); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java index 1caecf5c4b..adcb3cba2f 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/src/test/java/org/wso2/carbon/device/mgt/analytics/data/publisher/util/TestComponentContext.java @@ -25,6 +25,9 @@ import org.osgi.service.component.ComponentInstance; import java.util.Dictionary; +/** + * Mock implementation for component context. + */ public class TestComponentContext implements ComponentContext { @Override public Dictionary getProperties() { From 44e92ab4ce2c474fe9c0ff563e775fdc85764af2 Mon Sep 17 00:00:00 2001 From: sinthuja Date: Tue, 10 Oct 2017 23:50:34 +0530 Subject: [PATCH 4/4] Adding the analytics.data.publisher component to test-coverage component. --- components/test-coverage/pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml index 40126ee051..e32a1076f5 100644 --- a/components/test-coverage/pom.xml +++ b/components/test-coverage/pom.xml @@ -180,6 +180,9 @@ + + +