mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge pull request #1003 from Megala21/master
Adding negative test cases and refactoring existing test cases
This commit is contained in:
commit
794ec32ea5
@ -229,10 +229,7 @@
|
||||
<dependency>
|
||||
<groupId>org.powermock</groupId>
|
||||
<artifactId>powermock-module-testng</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.powermock</groupId>
|
||||
<artifactId>powermock-api-mockito</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
|
||||
@ -96,6 +96,12 @@
|
||||
<groupId>org.wso2.carbon.governance</groupId>
|
||||
<artifactId>org.wso2.carbon.governance.registry.extensions</artifactId>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>jaxen</groupId>
|
||||
<artifactId>jaxen</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon.registry</groupId>
|
||||
@ -106,6 +112,14 @@
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>jcl-over-slf4j</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>log4j-over-slf4j</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
@ -130,6 +130,17 @@ public class DeviceTypeManager implements DeviceManager {
|
||||
//Check whether device dao definition exist.
|
||||
String tableName = deviceTypeConfiguration.getDeviceDetails().getTableId();
|
||||
if (tableName != null && !tableName.isEmpty()) {
|
||||
DataSource dataSource = deviceTypeConfiguration.getDataSource();
|
||||
if (dataSource == null) {
|
||||
throw new DeviceTypeDeployerPayloadException("Could not find the datasource related with the "
|
||||
+ "table id " + tableName + " for the device type " + deviceType);
|
||||
}
|
||||
TableConfig tableConfig = dataSource.getTableConfig();
|
||||
|
||||
if (tableConfig == null) {
|
||||
throw new DeviceTypeDeployerPayloadException("Could not find the table config with the "
|
||||
+ "table id " + tableName + " for the device type " + deviceType);
|
||||
}
|
||||
List<Table> tables = deviceTypeConfiguration.getDataSource().getTableConfig().getTable();
|
||||
Table deviceDefinitionTable = null;
|
||||
for (Table table : tables) {
|
||||
|
||||
@ -41,17 +41,26 @@ public class DeviceDAODefinition {
|
||||
|
||||
|
||||
public DeviceDAODefinition(Table table) {
|
||||
if (table == null) {
|
||||
throw new DeviceTypeDeployerPayloadException("Table is null. Cannot create DeviceDAODefinition");
|
||||
}
|
||||
deviceTableName = table.getName();
|
||||
primarykey = table.getPrimaryKey();
|
||||
List<String> attributes = table.getAttributes().getAttribute();
|
||||
|
||||
if (deviceTableName == null || deviceTableName.isEmpty()) {
|
||||
throw new DeviceTypeDeployerPayloadException("Missing deviceTableName");
|
||||
}
|
||||
|
||||
if (primarykey == null || primarykey.isEmpty()) {
|
||||
throw new DeviceTypeDeployerPayloadException("Missing primaryKey ");
|
||||
throw new DeviceTypeDeployerPayloadException("Missing primaryKey for the table " + deviceTableName);
|
||||
}
|
||||
|
||||
if (table.getAttributes() == null) {
|
||||
throw new DeviceTypeDeployerPayloadException("Table " + deviceTableName + " attributes are not specified. "
|
||||
+ "Cannot created DeviceDAODefinition");
|
||||
}
|
||||
|
||||
List<String> attributes = table.getAttributes().getAttribute();
|
||||
if (attributes == null || attributes.size() == 0) {
|
||||
throw new DeviceTypeDeployerPayloadException("Missing Attributes ");
|
||||
}
|
||||
|
||||
@ -26,20 +26,9 @@ public class DeviceTypeDeployerPayloadException extends RuntimeException {
|
||||
super(msg, nestedEx);
|
||||
}
|
||||
|
||||
public DeviceTypeDeployerPayloadException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public DeviceTypeDeployerPayloadException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public DeviceTypeDeployerPayloadException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public DeviceTypeDeployerPayloadException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -26,20 +26,4 @@ public class DeviceTypeMgtPluginException extends Exception{
|
||||
super(msg, nestedEx);
|
||||
}
|
||||
|
||||
public DeviceTypeMgtPluginException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public DeviceTypeMgtPluginException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public DeviceTypeMgtPluginException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public DeviceTypeMgtPluginException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ public class BaseExtensionsTest {
|
||||
@BeforeSuite
|
||||
public void init() throws RegistryException, IOException {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
URL resourceUrl = classLoader.getResource("license.rxt");
|
||||
URL resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "license.rxt");
|
||||
String rxt = null;
|
||||
File carbonHome;
|
||||
if (resourceUrl != null) {
|
||||
|
||||
@ -0,0 +1,124 @@
|
||||
/*
|
||||
* 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.device.type.template;
|
||||
|
||||
import org.testng.annotations.BeforeTest;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.base.MultitenantConstants;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DataSource;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceTypeConfiguration;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.exception.DeviceTypeConfigurationException;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.exception.DeviceTypeDeployerPayloadException;
|
||||
import org.wso2.carbon.device.mgt.extensions.utils.Utils;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* This class tests the negative scenarios in {@link DeviceTypeManager} initialization;
|
||||
*/
|
||||
public class DeviceTypeManagerNegativeTest {
|
||||
private DeviceTypeConfiguration defectiveDeviceTypeConfiguration1;
|
||||
private DeviceTypeConfiguration defectiveDeviceTypeConfiguration2;
|
||||
private DeviceTypeConfiguration androidDeviceTypeConfiguration;
|
||||
private DeviceTypeConfigIdentifier deviceTypeConfigIdentifier;
|
||||
private final String DEFECTIVE_DEVICE_TYPE = "defectiveDeviceType";
|
||||
private final String TABLE_NAME = "DEFECTIVE_DEVICE";
|
||||
|
||||
@BeforeTest
|
||||
public void setup()
|
||||
throws SAXException, JAXBException, ParserConfigurationException, DeviceTypeConfigurationException,
|
||||
IOException {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
URL resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "defective-devicetype.xml");
|
||||
File configurationFile = null;
|
||||
if (resourceUrl != null) {
|
||||
configurationFile = new File(resourceUrl.getFile());
|
||||
}
|
||||
if (configurationFile != null) {
|
||||
defectiveDeviceTypeConfiguration1 = Utils.getDeviceTypeConfiguration(configurationFile.getAbsoluteFile());
|
||||
}
|
||||
deviceTypeConfigIdentifier = new DeviceTypeConfigIdentifier(DEFECTIVE_DEVICE_TYPE,
|
||||
MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
|
||||
|
||||
resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "defective-devicetype2.xml");
|
||||
if (resourceUrl != null) {
|
||||
configurationFile = new File(resourceUrl.getFile());
|
||||
}
|
||||
if (configurationFile != null) {
|
||||
defectiveDeviceTypeConfiguration2 = Utils.getDeviceTypeConfiguration(configurationFile.getAbsoluteFile());
|
||||
}
|
||||
|
||||
resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "android.xml");
|
||||
if (resourceUrl != null) {
|
||||
configurationFile = new File(resourceUrl.getFile());
|
||||
}
|
||||
if (configurationFile != null) {
|
||||
androidDeviceTypeConfiguration = Utils.getDeviceTypeConfiguration(configurationFile.getAbsoluteFile());
|
||||
}
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behaviour of the DeviceTypeManager creation without defining the "
|
||||
+ "datasource but by specifying the table id", expectedExceptions = { DeviceTypeDeployerPayloadException
|
||||
.class}, expectedExceptionsMessageRegExp = "Could not find the datasource related with the table id "
|
||||
+ TABLE_NAME + " for the device type " + DEFECTIVE_DEVICE_TYPE)
|
||||
public void testWithoutDataSource() {
|
||||
new DeviceTypeManager(deviceTypeConfigIdentifier, defectiveDeviceTypeConfiguration1);
|
||||
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behaviour of the DeviceTypeManager creation without defining the "
|
||||
+ "table config",expectedExceptions = { DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Could not find the table config with the table id " + TABLE_NAME
|
||||
+ " for the device type " + DEFECTIVE_DEVICE_TYPE,
|
||||
dependsOnMethods = {"testWithoutDataSource"})
|
||||
public void testWithoutTableConfig() {
|
||||
DataSource dataSource = new DataSource();
|
||||
defectiveDeviceTypeConfiguration1.setDataSource(dataSource);
|
||||
new DeviceTypeManager(deviceTypeConfigIdentifier, defectiveDeviceTypeConfiguration1);
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behaviour of the DeviceTypeManager creation without defining the "
|
||||
+ "correct table as per the device details",
|
||||
expectedExceptions = { DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Could not find definition for table: " + TABLE_NAME)
|
||||
public void testWithoutTable() {
|
||||
new DeviceTypeManager(deviceTypeConfigIdentifier, defectiveDeviceTypeConfiguration2);
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behaviour of the DeviceTypeManager creation without having the "
|
||||
+ "actual datasource", expectedExceptions = {DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Error while looking up the data source.*")
|
||||
public void testWithoutProperDataSource() {
|
||||
new DeviceTypeManager(deviceTypeConfigIdentifier, androidDeviceTypeConfiguration);
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behaviour of the DeviceTypeManager creation without having the "
|
||||
+ "actual datasource", expectedExceptions = {DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Error while looking up the data source.*")
|
||||
public void testWithSetupParameters() {
|
||||
System.setProperty("setup", "true");
|
||||
new DeviceTypeManager(deviceTypeConfigIdentifier, androidDeviceTypeConfiguration);
|
||||
|
||||
}
|
||||
}
|
||||
@ -124,7 +124,7 @@ public class DeviceTypeManagerServiceTest {
|
||||
operationMonitoringConfigs.set(rasberrypiDeviceTypeManagerService, new OperationMonitoringTaskConfig());
|
||||
initialOperationConfig.set(rasberrypiDeviceTypeManagerService, new InitialOperationConfig());
|
||||
|
||||
URL resourceUrl = classLoader.getResource("android.xml");
|
||||
URL resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "android.xml");
|
||||
|
||||
File androidConfiguration = null;
|
||||
if (resourceUrl != null) {
|
||||
@ -132,7 +132,7 @@ public class DeviceTypeManagerServiceTest {
|
||||
}
|
||||
androidDeviceConfiguration = Utils.getDeviceTypeConfiguration(androidConfiguration);
|
||||
|
||||
resourceUrl = classLoader.getResource("raspberrypi.xml");
|
||||
resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "raspberrypi.xml");
|
||||
File raspberrypiConfiguration = null;
|
||||
if (resourceUrl != null) {
|
||||
raspberrypiConfiguration = new File(resourceUrl.getFile());
|
||||
@ -304,7 +304,7 @@ public class DeviceTypeManagerServiceTest {
|
||||
throws RegistryException, IOException, SAXException, ParserConfigurationException,
|
||||
DeviceTypeConfigurationException, JAXBException {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
URL resourceUrl = classLoader.getResource("arduino.xml");
|
||||
URL resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "arduino.xml");
|
||||
File arduinoConfiguration = null;
|
||||
if (resourceUrl != null) {
|
||||
arduinoConfiguration = new File(resourceUrl.getFile());
|
||||
|
||||
@ -71,12 +71,13 @@ public class DeviceTypeManagerTest {
|
||||
private Field deviceTypePluginDAOField;
|
||||
private Field deviceTypeDAOHandlerField;
|
||||
private String[] customDeviceTypeProperties = {"custom_property", "custom_property2"};
|
||||
private final String SQL_FOLDER = "sql-files" + File.separator;
|
||||
|
||||
@BeforeTest(description = "Mocking the classes for testing")
|
||||
public void setup() throws NoSuchFieldException, IllegalAccessException, IOException, SQLException, SAXException,
|
||||
ParserConfigurationException, DeviceTypeConfigurationException, JAXBException {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
URL resourceUrl = classLoader.getResource("android_h2.sql");
|
||||
URL resourceUrl = classLoader.getResource(SQL_FOLDER + "android_h2.sql");
|
||||
androidDeviceType = "android";
|
||||
File androidDatabaseScript = null;
|
||||
javax.sql.DataSource dataSource = null;
|
||||
@ -85,7 +86,7 @@ public class DeviceTypeManagerTest {
|
||||
if (resourceUrl != null) {
|
||||
androidDatabaseScript = new File(resourceUrl.getFile());
|
||||
}
|
||||
resourceUrl = classLoader.getResource("android.xml");
|
||||
resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "android.xml");
|
||||
|
||||
if (resourceUrl != null) {
|
||||
androidConfiguration = new File(resourceUrl.getFile());
|
||||
@ -295,7 +296,7 @@ public class DeviceTypeManagerTest {
|
||||
private DeviceTypePluginDAOManager createPluginBasedDeviceTypeManager()
|
||||
throws IOException, SQLException, NoSuchFieldException, IllegalAccessException {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
URL resourceUrl = classLoader.getResource("h2.sql");
|
||||
URL resourceUrl = classLoader.getResource(SQL_FOLDER + "h2.sql");
|
||||
File cdmDataScript = null;
|
||||
javax.sql.DataSource dataSource = null;
|
||||
if (resourceUrl != null) {
|
||||
|
||||
@ -24,6 +24,8 @@ import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.common.Device;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
||||
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
||||
@ -52,6 +54,7 @@ public class HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest {
|
||||
private HTTPDeviceTypeManagerService httpDeviceTypeManagerService;
|
||||
private DeviceTypeGeneratorServiceImpl deviceTypeGeneratorService;
|
||||
private String androidSenseDeviceType = "androidsense";
|
||||
private DeviceManagementService generatedDeviceManagementService;
|
||||
|
||||
@BeforeTest
|
||||
public void setup() throws RegistryException, IOException, SAXException, ParserConfigurationException,
|
||||
@ -83,12 +86,37 @@ public class HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest {
|
||||
@Test(description = "This test case tests the populate device management service method")
|
||||
public void testPopulateDeviceManagementService() {
|
||||
String sampleDeviceType = "sample";
|
||||
DeviceManagementService deviceManagementService = deviceTypeGeneratorService
|
||||
generatedDeviceManagementService = deviceTypeGeneratorService
|
||||
.populateDeviceManagementService(sampleDeviceType, deviceTypeMetaDefinition);
|
||||
Assert.assertEquals(deviceManagementService.getType(), sampleDeviceType,
|
||||
Assert.assertEquals(generatedDeviceManagementService.getType(), sampleDeviceType,
|
||||
"DeviceTypeGeneration for the " + "sample device type failed");
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the get configuration of the populated device management service though"
|
||||
+ " DeviceTypeGeneratorService", dependsOnMethods = {"testPopulateDeviceManagementService"})
|
||||
public void testGetConfiguration() throws DeviceManagementException, ClassNotFoundException, JAXBException {
|
||||
PlatformConfiguration platformConfiguration = generatedDeviceManagementService.getDeviceManager()
|
||||
.getConfiguration();
|
||||
Assert.assertNotNull(platformConfiguration,
|
||||
"Default platform configuration is not added to sample device " + "type from the file system");
|
||||
|
||||
List<ConfigurationEntry> configurationEntries = platformConfiguration.getConfiguration();
|
||||
Assert.assertNotNull(configurationEntries,
|
||||
"Platform Configuration entries are not parsed and saved " + "correctly for device type sample");
|
||||
Assert.assertEquals(configurationEntries.size(), 1,
|
||||
"Platform configuration is not saved correctly for " + "device type sample");
|
||||
|
||||
ConfigurationEntry configurationEntry = configurationEntries.get(0);
|
||||
|
||||
Assert.assertEquals(configurationEntry.getName(), "test",
|
||||
"Platform Configuration for device type " + "sample is not saved correctly");
|
||||
|
||||
String contentType = configurationEntry.getContentType();
|
||||
Assert.assertEquals(contentType, "String",
|
||||
"Content type added in default platform configuration is different from the retrieved value");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test(description = "This test case tests the negative scenarios when saving the platform configurations",
|
||||
expectedExceptions = {DeviceManagementException.class})
|
||||
@ -126,7 +154,7 @@ public class HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest {
|
||||
throws SAXException, JAXBException, ParserConfigurationException, DeviceTypeConfigurationException,
|
||||
IOException {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
URL resourceUrl = classLoader.getResource("android_sense.xml");
|
||||
URL resourceUrl = classLoader.getResource(Utils.DEVICE_TYPE_FOLDER + "android_sense.xml");
|
||||
File androidSenseConfiguration = null;
|
||||
|
||||
if (resourceUrl != null) {
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* 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.device.type.template.dao;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Table;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.exception.DeviceTypeDeployerPayloadException;
|
||||
|
||||
/**
|
||||
* This class tests the negative scenarios related with {@link DeviceDAODefinition}
|
||||
*/
|
||||
public class DeviceDAODefinitionNegativeTest {
|
||||
private final String DEVICE_TABLE_NAME = "DEVICE_TABLE";
|
||||
|
||||
@Test(description = "This test case tests the behavior of the DeviceDAODefinition when the table is null",
|
||||
expectedExceptions = { DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Table is null. Cannot create DeviceDAODefinition")
|
||||
public void testWhenTableIsNull() {
|
||||
new DeviceDAODefinition(null);
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behavior of the DeviceDAODefinition when the table name is null",
|
||||
expectedExceptions = { DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Missing deviceTableName")
|
||||
public void testWhenTableNameIsNull() {
|
||||
new DeviceDAODefinition(new Table());
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behavior of the DeviceDAODefinition when the primary key is null",
|
||||
expectedExceptions = { DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Missing primaryKey for the table " + DEVICE_TABLE_NAME)
|
||||
public void testWhenPrimaryKeyIsEmpty() {
|
||||
Table deviceTable = new Table();
|
||||
deviceTable.setName(DEVICE_TABLE_NAME);
|
||||
deviceTable.setPrimaryKey("");
|
||||
new DeviceDAODefinition(deviceTable);
|
||||
}
|
||||
|
||||
@Test(description = "This test case tests the behavior of the DeviceDAODefinition when the attributes is null",
|
||||
expectedExceptions = { DeviceTypeDeployerPayloadException.class},
|
||||
expectedExceptionsMessageRegExp = "Table " + DEVICE_TABLE_NAME + " attributes are not specified. "
|
||||
+ "Cannot created DeviceDAODefinition")
|
||||
public void testWhenAttributesIsNull() {
|
||||
Table deviceTable = new Table();
|
||||
deviceTable.setName(DEVICE_TABLE_NAME);
|
||||
deviceTable.setPrimaryKey("primaryKey");
|
||||
new DeviceDAODefinition(deviceTable);
|
||||
}
|
||||
}
|
||||
@ -21,7 +21,6 @@ package org.wso2.carbon.device.mgt.extensions.utils;
|
||||
|
||||
import org.h2.jdbcx.JdbcDataSource;
|
||||
import org.w3c.dom.Document;
|
||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceDetails;
|
||||
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceTypeConfiguration;
|
||||
@ -56,16 +55,18 @@ import java.util.List;
|
||||
* This class handles the test utility tasks.
|
||||
*/
|
||||
public class Utils {
|
||||
public static final String DEVICE_TYPE_FOLDER = "device-types" + File.separator;
|
||||
|
||||
/**
|
||||
* To get the device type configuration based on the configuration file
|
||||
*
|
||||
* @param configurationFile Relevant configuration file of a device type
|
||||
* @return the DeviceTypeConfiguration object of the relevant Device Type
|
||||
* @throws DeviceTypeConfigurationException DeviceType Configuration Exception
|
||||
* @throws IOException IO Exception
|
||||
* @throws SAXException SAX Exception
|
||||
* @throws ParserConfigurationException Parser Configuration Exception
|
||||
* @throws JAXBException JAXB Exception
|
||||
* @throws IOException IO Exception
|
||||
* @throws SAXException SAX Exception
|
||||
* @throws ParserConfigurationException Parser Configuration Exception
|
||||
* @throws JAXBException JAXB Exception
|
||||
*/
|
||||
public static DeviceTypeConfiguration getDeviceTypeConfiguration(File configurationFile)
|
||||
throws DeviceTypeConfigurationException, IOException, SAXException, ParserConfigurationException,
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
|
||||
<PlatformConfiguration>
|
||||
<type>sample</type>
|
||||
<configuration>
|
||||
<name>test</name>
|
||||
<contentType>String</contentType>
|
||||
<value>test</value>
|
||||
</configuration>
|
||||
</PlatformConfiguration>
|
||||
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
<DeviceTypeConfiguration name="defective-devicetype">
|
||||
<DeviceDetails table-id="DEFECTIVE_DEVICE"/>
|
||||
|
||||
<Features>
|
||||
<Feature code="bulb">
|
||||
<Name>Control Bulb</Name>
|
||||
<Description>Control Bulb on Arduino Uno</Description>
|
||||
<Operation context="/arduino/device/{deviceId}/bulb" method="POST">
|
||||
<QueryParameters>
|
||||
<Parameter>state</Parameter>
|
||||
</QueryParameters>
|
||||
</Operation>
|
||||
</Feature>
|
||||
</Features>
|
||||
|
||||
<ProvisioningConfig>
|
||||
<SharedWithAllTenants>true</SharedWithAllTenants>
|
||||
</ProvisioningConfig>
|
||||
|
||||
<License>
|
||||
<Language>en_US</Language>
|
||||
<Version>1.0.0</Version>
|
||||
<Text>This is license text</Text>
|
||||
</License>
|
||||
|
||||
</DeviceTypeConfiguration>
|
||||
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
<DeviceTypeConfiguration name="defective-devicetype">
|
||||
<DeviceDetails table-id="DEFECTIVE_DEVICE"/>
|
||||
|
||||
<Features>
|
||||
<Feature code="bulb">
|
||||
<Name>Control Bulb</Name>
|
||||
<Description>Control Bulb on Arduino Uno</Description>
|
||||
<Operation context="/arduino/device/{deviceId}/bulb" method="POST">
|
||||
<QueryParameters>
|
||||
<Parameter>state</Parameter>
|
||||
</QueryParameters>
|
||||
</Operation>
|
||||
</Feature>
|
||||
</Features>
|
||||
|
||||
<ProvisioningConfig>
|
||||
<SharedWithAllTenants>true</SharedWithAllTenants>
|
||||
</ProvisioningConfig>
|
||||
|
||||
<License>
|
||||
<Language>en_US</Language>
|
||||
<Version>1.0.0</Version>
|
||||
<Text>This is license text</Text>
|
||||
</License>
|
||||
|
||||
<DataSource>
|
||||
<JndiConfig>
|
||||
<Name>jdbc/MobileAndroidDM_DS</Name>
|
||||
</JndiConfig>
|
||||
<TableConfig>
|
||||
<Table name="AD_DEVICE">
|
||||
</Table>
|
||||
</TableConfig>
|
||||
</DataSource>
|
||||
|
||||
</DeviceTypeConfiguration>
|
||||
@ -27,6 +27,8 @@
|
||||
<class name="org.wso2.carbon.device.mgt.extensions.device.type.template.DeviceTypeManagerServiceTest"/>
|
||||
<class name="org.wso2.carbon.device.mgt.extensions.device.type.template.DeviceTypeManagerTest"/>
|
||||
<class name="org.wso2.carbon.device.mgt.extensions.device.type.template.HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest"/>
|
||||
<class name="org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceDAODefinitionNegativeTest"/>
|
||||
<class name="org.wso2.carbon.device.mgt.extensions.device.type.template.DeviceTypeManagerNegativeTest" />
|
||||
</classes>
|
||||
</test>
|
||||
</suite>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user