diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/exception/DeviceTypeConfigurationException.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/exception/DeviceTypeConfigurationException.java
index d044e7ebebe..14b0d7445c5 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/exception/DeviceTypeConfigurationException.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/exception/DeviceTypeConfigurationException.java
@@ -21,33 +21,10 @@ package org.wso2.carbon.device.mgt.extensions.device.type.template.config.except
public class DeviceTypeConfigurationException extends Exception {
private static final long serialVersionUID = -3151279431229070297L;
-
- public DeviceTypeConfigurationException(int errorCode, String message) {
- super(message);
- }
-
- public DeviceTypeConfigurationException(int errorCode, String message, Throwable cause) {
- super(message, cause);
- }
-
+
public DeviceTypeConfigurationException(String msg, Exception nestedEx) {
super(msg, nestedEx);
}
- public DeviceTypeConfigurationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public DeviceTypeConfigurationException(String msg) {
- super(msg);
- }
-
- public DeviceTypeConfigurationException() {
- super();
- }
-
- public DeviceTypeConfigurationException(Throwable cause) {
- super(cause);
- }
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/exception/InvalidConfigurationStateException.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/exception/InvalidConfigurationStateException.java
deleted file mode 100644
index 3d39345327c..00000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/exception/InvalidConfigurationStateException.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2015, 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.extensions.device.type.template.config.exception;
-
-public class InvalidConfigurationStateException extends RuntimeException {
-
- private static final long serialVersionUID = -3151279411229070297L;
-
- public InvalidConfigurationStateException(int errorCode, String message) {
- super(message);
- }
-
- public InvalidConfigurationStateException(int errorCode, String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidConfigurationStateException(String msg, Exception nestedEx) {
- super(msg, nestedEx);
- }
-
- public InvalidConfigurationStateException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidConfigurationStateException(String msg) {
- super(msg);
- }
-
- public InvalidConfigurationStateException() {
- super();
- }
-
- public InvalidConfigurationStateException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/file/FileSystemBasedLicenseManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/file/FileSystemBasedLicenseManager.java
index 30878f924cf..7d7da9891ab 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/file/FileSystemBasedLicenseManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/license/mgt/file/FileSystemBasedLicenseManager.java
@@ -39,9 +39,15 @@ public class FileSystemBasedLicenseManager implements LicenseManager {
String licenseConfigPath =
PATH_MOBILE_PLUGIN_CONF_DIR + File.separator + deviceType + File.separator + "license.xml";
File licenseConfig = new File(licenseConfigPath);
+
+ if (!licenseConfig.exists()) {
+ throw new LicenseManagementException(
+ "License file not found in the path for the device type " + deviceType);
+ }
JAXBContext context = JAXBContext.newInstance(License.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
return (License) unmarshaller.unmarshal(licenseConfig);
+
} catch (JAXBException e) {
throw new LicenseManagementException("Error occurred while un-marshalling license configuration " +
"used for '" + deviceType + "' platform from file system", e);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/utils/UtilsTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/utils/UtilsTest.java
new file mode 100644
index 00000000000..01651d3b2c9
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/utils/UtilsTest.java
@@ -0,0 +1,84 @@
+/*
+ * 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.extensions.utils;
+
+import org.testng.Assert;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import org.wso2.carbon.base.MultitenantConstants;
+import org.wso2.carbon.device.mgt.common.license.mgt.License;
+import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
+import org.wso2.carbon.device.mgt.extensions.device.type.template.util.DeviceSchemaInitializer;
+import org.wso2.carbon.device.mgt.extensions.license.mgt.file.FileSystemBasedLicenseManager;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * This is a test case for testing common utilities used.
+ */
+public class UtilsTest {
+ private FileSystemBasedLicenseManager fileSystemBasedLicenseManager;
+
+ @BeforeTest
+ public void setup() {
+ fileSystemBasedLicenseManager = new FileSystemBasedLicenseManager();
+ }
+
+ @Test(description = "This testcase tests the functionality of the DeviceSchemaInitializer")
+ public void testDeviceSchemaInitializer()
+ throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
+ String deviceType = "sample2";
+ String expectedDBLocation =
+ System.getProperty("carbon.home") + File.separator + "dbscripts" + File.separator + "cdm"
+ + File.separator + "plugins" + File.separator + deviceType + File.separator + "h2.sql";
+ DeviceSchemaInitializer deviceSchemaInitializer = new DeviceSchemaInitializer(null, deviceType,
+ MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
+ Method getDbScriptLocation = DeviceSchemaInitializer.class
+ .getDeclaredMethod("getDbScriptLocation", String.class);
+ getDbScriptLocation.setAccessible(true);
+
+ String dbLocation = (String) getDbScriptLocation.invoke(deviceSchemaInitializer, "h2");
+ Assert.assertEquals(dbLocation, expectedDBLocation,
+ "Expected DB location for the device type is not retrieved");
+ }
+
+ @Test(description = "This test case tests the getLicense method of the FileBasedLicenseManager")
+ public void testFileBasedLicenseManagerGetLicense() throws LicenseManagementException {
+ License fileBasedLicense = fileSystemBasedLicenseManager.getLicense("test","en_US");
+ Assert.assertEquals(fileBasedLicense.getText(), "This is a file based license",
+ "FileBased License cannot " + "be retrieved by FileBasedLicenseManager");
+ }
+
+ @Test(description = "This test case tests the behaviour of file based license manager when the relevant license "
+ + "is missing in file system", expectedExceptions = {LicenseManagementException.class},
+ expectedExceptionsMessageRegExp = "License file not found in the path for the device type test2")
+ public void testFileBasedLicenseManagerGetNonExistingLicense() throws LicenseManagementException {
+ fileSystemBasedLicenseManager.getLicense("test2","en_US");
+ }
+
+ @Test(description = "This test case make sure the File Based License cannot be added without adding directly to "
+ + "file system", expectedExceptions = {UnsupportedOperationException.class},
+ expectedExceptionsMessageRegExp = "'addLicense' method is not supported in FileSystemBasedLicenseManager")
+ public void testFileBasedLicenseManagerAddLicense() throws LicenseManagementException {
+ fileSystemBasedLicenseManager.addLicense("test", null);
+ }
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/carbon-home/repository/conf/etc/device-mgt-plugins/test/license.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/carbon-home/repository/conf/etc/device-mgt-plugins/test/license.xml
new file mode 100644
index 00000000000..7bf018734d3
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/carbon-home/repository/conf/etc/device-mgt-plugins/test/license.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ en_US
+ 1.0.0
+ This is a file based license
+
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/testng.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/testng.xml
index f37097fda10..661e7dd0ddc 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/testng.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/testng.xml
@@ -29,6 +29,7 @@
+