forked from community/device-mgt-plugins
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt-plugins
commit
0a78e46f21
@ -1,57 +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.mobile.impl;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
|
||||
public class TestUtils {
|
||||
|
||||
private static final Log log = LogFactory.getLog(TestUtils.class);
|
||||
|
||||
public static void cleanupResources(Connection conn, Statement stmt, ResultSet rs) {
|
||||
if (rs != null) {
|
||||
try {
|
||||
rs.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Error occurred while closing result set", e);
|
||||
}
|
||||
}
|
||||
if (stmt != null) {
|
||||
try {
|
||||
stmt.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Error occurred while closing prepared statement", e);
|
||||
}
|
||||
}
|
||||
if (conn != null) {
|
||||
try {
|
||||
conn.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Error occurred while closing database connection", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,22 +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.mobile.impl.dao;
|
||||
|
||||
public class MobileDeviceOperationDAOTestSuite {
|
||||
}
|
@ -0,0 +1,434 @@
|
||||
/*
|
||||
* 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.mobile.impl.dao;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.tomcat.jdbc.pool.DataSource;
|
||||
import org.apache.tomcat.jdbc.pool.PoolProperties;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Parameters;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileDeviceDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileDeviceOperationMappingDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileOperationDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileDevice;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileDeviceOperationMapping;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileOperation;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.DBTypes;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfiguration;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.dao.util.MobileDatabaseUtils;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class for holding unit-tests related to MobileDeviceOperationMappingDAO class.
|
||||
*
|
||||
*/
|
||||
public class MobileDeviceOperationMappingDAOTestSuite {
|
||||
|
||||
private static final Log log =
|
||||
LogFactory.getLog(MobileDeviceOperationMappingDAOTestSuite.class);
|
||||
public static final String TEST_MOBILE_DEVICE_ID = "ABCD";
|
||||
public static final String TEST_MOBILE_IMEI = "2412421412";
|
||||
public static final String TEST_MOBILE_IMSI = "325235235";
|
||||
public static final String TEST_MOBILE_MODEL = "S5";
|
||||
public static final String TEST_MOBILE_VENDOR = "samsung";
|
||||
public static final String TEST_MOBILE_REG_ID = "2414";
|
||||
public static final String TEST_MOBILE_OS_VERSION = "5.0.0";
|
||||
public static final String TEST_MOBILE_LATITUDE = "6.93N";
|
||||
public static final String TEST_MOBILE_LONGITUDE = "80.60E";
|
||||
public static final String TEST_MBL_OPR_FEATURE_CODE1 = "LOCK";
|
||||
public static final String TEST_MBL_OPR_FEATURE_CODE2 = "WIPE";
|
||||
public static final long TEST_MBL_OPR_CREATED_DATE = new java.util.Date().getTime();
|
||||
|
||||
private TestDBConfiguration testDBConfiguration;
|
||||
private MobileDeviceDAOImpl mblDeviceDAO;
|
||||
private MobileOperationDAOImpl mblOperationDAO;
|
||||
private MobileDeviceOperationMappingDAOImpl mblDeviceOperationMappingDAO;
|
||||
private int mblOperationId1;
|
||||
private int mblOperationId2;
|
||||
|
||||
@BeforeClass
|
||||
@Parameters("dbType")
|
||||
public void setUpDB(String dbTypeStr) throws Exception {
|
||||
|
||||
DBTypes dbType = DBTypes.valueOf(dbTypeStr);
|
||||
testDBConfiguration = MobileDatabaseUtils.getTestDBConfiguration(dbType);
|
||||
|
||||
switch (dbType) {
|
||||
case H2:
|
||||
MobileDatabaseUtils.createH2DB(testDBConfiguration);
|
||||
DataSource testDataSource = new org.apache.tomcat.jdbc.pool.DataSource();
|
||||
PoolProperties properties = new PoolProperties();
|
||||
properties.setUrl(testDBConfiguration.getConnectionURL());
|
||||
properties.setDriverClassName(testDBConfiguration.getDriverClassName());
|
||||
properties.setUsername(testDBConfiguration.getUsername());
|
||||
properties.setPassword(testDBConfiguration.getPassword());
|
||||
testDataSource.setPoolProperties(properties);
|
||||
mblDeviceDAO = new MobileDeviceDAOImpl(testDataSource);
|
||||
mblOperationDAO = new MobileOperationDAOImpl(testDataSource);
|
||||
mblDeviceOperationMappingDAO =
|
||||
new MobileDeviceOperationMappingDAOImpl(testDataSource);
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMobileDeviceOperationMappingTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
|
||||
List<MobileDeviceOperationMapping> mblOperations =
|
||||
new ArrayList<MobileDeviceOperationMapping>();
|
||||
MobileDeviceOperationMapping mblDvOperationMapping =
|
||||
new MobileDeviceOperationMapping();
|
||||
//Add a new Device to the database
|
||||
MobileDevice mobileDevice = new MobileDevice();
|
||||
mobileDevice.setMobileDeviceId(TEST_MOBILE_DEVICE_ID);
|
||||
mobileDevice.setImei(TEST_MOBILE_IMEI);
|
||||
mobileDevice.setImsi(TEST_MOBILE_IMSI);
|
||||
mobileDevice.setModel(TEST_MOBILE_MODEL);
|
||||
mobileDevice.setVendor(TEST_MOBILE_VENDOR);
|
||||
mobileDevice.setRegId(TEST_MOBILE_REG_ID);
|
||||
mobileDevice.setOsVersion(TEST_MOBILE_OS_VERSION);
|
||||
mobileDevice.setLatitude(TEST_MOBILE_LATITUDE);
|
||||
mobileDevice.setLongitude(TEST_MOBILE_LONGITUDE);
|
||||
mblDeviceDAO.addMobileDevice(mobileDevice);
|
||||
|
||||
//Add an Operation to the db
|
||||
MobileOperation mblOperation = new MobileOperation();
|
||||
mblOperation.setFeatureCode(TEST_MBL_OPR_FEATURE_CODE1);
|
||||
mblOperation.setCreatedDate(TEST_MBL_OPR_CREATED_DATE);
|
||||
mblOperationId1 = mblOperationDAO.addMobileOperation(mblOperation);
|
||||
|
||||
//Add a new Operation 2 to the db
|
||||
mblOperation.setFeatureCode(TEST_MBL_OPR_FEATURE_CODE2);
|
||||
mblOperation.setCreatedDate(TEST_MBL_OPR_CREATED_DATE);
|
||||
mblOperationId2 = mblOperationDAO.addMobileOperation(mblOperation);
|
||||
|
||||
//Add a device-operation mapping 1 to the table
|
||||
mblDvOperationMapping.setDeviceId(TEST_MOBILE_DEVICE_ID);
|
||||
mblDvOperationMapping.setOperationId(mblOperationId1);
|
||||
mblDvOperationMapping.setStatus(MobileDeviceOperationMapping.Status.NEW);
|
||||
boolean status1 =
|
||||
mblDeviceOperationMappingDAO.addMobileDeviceOperationMapping(mblDvOperationMapping);
|
||||
|
||||
//Add a device-operation mapping 2 to the table
|
||||
mblDvOperationMapping.setDeviceId(TEST_MOBILE_DEVICE_ID);
|
||||
mblDvOperationMapping.setOperationId(mblOperationId2);
|
||||
mblDvOperationMapping.setStatus(MobileDeviceOperationMapping.Status.NEW);
|
||||
boolean status2 =
|
||||
mblDeviceOperationMappingDAO.addMobileDeviceOperationMapping(mblDvOperationMapping);
|
||||
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String selectDBQuery =
|
||||
"SELECT DEVICE_ID, OPERATION_ID, SENT_DATE, RECEIVED_DATE, STATUS FROM " +
|
||||
"MBL_DEVICE_OPERATION_MAPPING WHERE DEVICE_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(selectDBQuery);
|
||||
preparedStatement.setString(1, TEST_MOBILE_DEVICE_ID);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
while (resultSet.next()) {
|
||||
mblDvOperationMapping = new MobileDeviceOperationMapping();
|
||||
mblDvOperationMapping.setDeviceId(resultSet.getString(1));
|
||||
mblDvOperationMapping.setOperationId(resultSet.getInt(2));
|
||||
mblDvOperationMapping.setSentDate(resultSet.getLong(3));
|
||||
mblDvOperationMapping.setReceivedDate(resultSet.getLong(4));
|
||||
mblDvOperationMapping.setStatus(resultSet.getString(5));
|
||||
mblOperations.add(mblDvOperationMapping);
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Operation Mappings data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status1, "MobileOperationMapping1 has added ");
|
||||
Assert.assertTrue(status2, "MobileOperationMapping2 has added ");
|
||||
Assert.assertTrue(mblOperations.size() == 2, "MobileOperationMappings have retrieved ");
|
||||
|
||||
for (MobileDeviceOperationMapping mapping : mblOperations) {
|
||||
Assert.assertEquals(TEST_MOBILE_DEVICE_ID, mapping.getDeviceId(),
|
||||
"MobileOperationMapping device id has persisted ");
|
||||
Assert.assertEquals(MobileDeviceOperationMapping.Status.NEW, mapping.getStatus(),
|
||||
"MobileOperationMapping status has persisted ");
|
||||
Assert.assertTrue(mapping.getOperationId() > 0,
|
||||
"MobileOperationMapping operation-id has persisted ");
|
||||
Assert.assertTrue(mapping.getSentDate() == 0,
|
||||
"MobileOperationMapping sent-date has fetched ");
|
||||
Assert.assertTrue(mapping.getReceivedDate() == 0,
|
||||
"MobileOperationMapping received-date has fetched ");
|
||||
}
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileDeviceOperationMappingTest" })
|
||||
public void getMobileDeviceOperationMappingTest() throws MobileDeviceManagementDAOException {
|
||||
MobileDeviceOperationMapping mblOperationMapping =
|
||||
mblDeviceOperationMappingDAO.getMobileDeviceOperationMapping(
|
||||
TEST_MOBILE_DEVICE_ID, mblOperationId1);
|
||||
Assert.assertNotNull(mblOperationMapping, "MobileOperationMapping 1 has fetched ");
|
||||
Assert.assertEquals(TEST_MOBILE_DEVICE_ID, mblOperationMapping.getDeviceId(),
|
||||
"MobileOperationMapping device id has fetched ");
|
||||
Assert.assertEquals(mblOperationId1, mblOperationMapping.getOperationId(),
|
||||
"MobileOperationMapping device id has fetched ");
|
||||
Assert.assertEquals(MobileDeviceOperationMapping.Status.NEW,
|
||||
mblOperationMapping.getStatus(),
|
||||
"MobileOperationMapping status has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getSentDate() == 0,
|
||||
"MobileOperationMapping sent-date has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getReceivedDate() == 0,
|
||||
"MobileOperationMapping received-date has fetched ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileDeviceOperationMappingTest" })
|
||||
public void getAllMobileDeviceOperationMappingsOfDeviceTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
List<MobileDeviceOperationMapping> mblOperationMappings =
|
||||
mblDeviceOperationMappingDAO.getAllMobileDeviceOperationMappingsOfDevice(
|
||||
TEST_MOBILE_DEVICE_ID);
|
||||
Assert.assertNotNull(mblOperationMappings, "MobileOperationMappings have fetched ");
|
||||
Assert.assertTrue(mblOperationMappings.size() == 2,
|
||||
"All MobileOperationMappings have fetched ");
|
||||
for (MobileDeviceOperationMapping mblOperationMapping : mblOperationMappings) {
|
||||
Assert.assertEquals(TEST_MOBILE_DEVICE_ID, mblOperationMapping.getDeviceId(),
|
||||
"MobileOperationMapping device id has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getOperationId() > 0,
|
||||
"MobileOperationMapping operation-id has fetched ");
|
||||
Assert.assertEquals(MobileDeviceOperationMapping.Status.NEW,
|
||||
mblOperationMapping.getStatus(),
|
||||
"MobileOperationMapping status has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getSentDate() == 0,
|
||||
"MobileOperationMapping sent-date has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getReceivedDate() == 0,
|
||||
"MobileOperationMapping received-date has fetched ");
|
||||
}
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileDeviceOperationMappingTest",
|
||||
"getAllMobileDeviceOperationMappingsOfDeviceTest" })
|
||||
public void updateMobileDeviceOperationMappingToInProgressTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
MobileDeviceOperationMapping mblOperationMapping = null;
|
||||
//Update device-operation to In-Progress state
|
||||
boolean status =
|
||||
mblDeviceOperationMappingDAO.updateMobileDeviceOperationMappingToInProgress(
|
||||
TEST_MOBILE_DEVICE_ID, mblOperationId1);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String selectDBQuery =
|
||||
"SELECT DEVICE_ID, OPERATION_ID, SENT_DATE, STATUS FROM " +
|
||||
"MBL_DEVICE_OPERATION_MAPPING WHERE DEVICE_ID = ? AND OPERATION_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(selectDBQuery);
|
||||
preparedStatement.setString(1, TEST_MOBILE_DEVICE_ID);
|
||||
preparedStatement.setInt(2, mblOperationId1);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
mblOperationMapping = new MobileDeviceOperationMapping();
|
||||
mblOperationMapping.setDeviceId(resultSet.getString(1));
|
||||
mblOperationMapping.setOperationId(resultSet.getInt(2));
|
||||
mblOperationMapping.setSentDate(resultSet.getLong(3));
|
||||
mblOperationMapping.setStatus(resultSet.getString(4));
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Operation Mappings data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileOperationMapping 1 has updated ");
|
||||
Assert.assertNotNull(mblOperationMapping, "MobileOperationMappings have fetched ");
|
||||
Assert.assertEquals(MobileDeviceOperationMapping.Status.INPROGRESS,
|
||||
mblOperationMapping.getStatus(),
|
||||
"MobileOperationMapping status has updated ");
|
||||
Assert.assertTrue(mblOperationMapping.getSentDate() > 0,
|
||||
"MobileOperationMapping sent-date has updated ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileDeviceOperationMappingTest",
|
||||
"getAllMobileDeviceOperationMappingsOfDeviceTest" })
|
||||
public void updateMobileDeviceOperationMappingToCompletedTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
MobileDeviceOperationMapping mblOperationMapping = null;
|
||||
//Update device-operation to Completed state
|
||||
boolean status =
|
||||
mblDeviceOperationMappingDAO.updateMobileDeviceOperationMappingToCompleted(
|
||||
TEST_MOBILE_DEVICE_ID, mblOperationId1);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String selectDBQuery =
|
||||
"SELECT DEVICE_ID, OPERATION_ID, RECEIVED_DATE, STATUS FROM " +
|
||||
"MBL_DEVICE_OPERATION_MAPPING WHERE DEVICE_ID = ? AND OPERATION_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(selectDBQuery);
|
||||
preparedStatement.setString(1, TEST_MOBILE_DEVICE_ID);
|
||||
preparedStatement.setInt(2, mblOperationId1);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
mblOperationMapping = new MobileDeviceOperationMapping();
|
||||
mblOperationMapping.setDeviceId(resultSet.getString(1));
|
||||
mblOperationMapping.setOperationId(resultSet.getInt(2));
|
||||
mblOperationMapping.setReceivedDate(resultSet.getLong(3));
|
||||
mblOperationMapping.setStatus(resultSet.getString(4));
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Operation Mappings data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileOperationMapping 1 has updated ");
|
||||
Assert.assertNotNull(mblOperationMapping, "MobileOperationMappings have fetched ");
|
||||
Assert.assertEquals(MobileDeviceOperationMapping.Status.COMPLETED,
|
||||
mblOperationMapping.getStatus(),
|
||||
"MobileOperationMapping status has updated ");
|
||||
Assert.assertTrue(mblOperationMapping.getReceivedDate() > 0,
|
||||
"MobileOperationMapping received-date has updated ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileDeviceOperationMappingTest",
|
||||
"getAllMobileDeviceOperationMappingsOfDeviceTest",
|
||||
"updateMobileDeviceOperationMappingToInProgressTest",
|
||||
"updateMobileDeviceOperationMappingToCompletedTest" })
|
||||
public void updateMobileDeviceOperationMappingTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
MobileDeviceOperationMapping mblOperationMapping = new MobileDeviceOperationMapping();
|
||||
long currentTime = new java.util.Date().getTime();
|
||||
//Update device-operation mapping 1
|
||||
mblOperationMapping.setDeviceId(TEST_MOBILE_DEVICE_ID);
|
||||
mblOperationMapping.setOperationId(mblOperationId1);
|
||||
mblOperationMapping.setStatus(MobileDeviceOperationMapping.Status.INPROGRESS);
|
||||
mblOperationMapping.setSentDate(currentTime);
|
||||
mblOperationMapping.setReceivedDate(currentTime);
|
||||
boolean status =
|
||||
mblDeviceOperationMappingDAO.updateMobileDeviceOperationMapping(
|
||||
mblOperationMapping);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String selectDBQuery =
|
||||
"SELECT DEVICE_ID, OPERATION_ID, RECEIVED_DATE, SENT_DATE, STATUS FROM " +
|
||||
"MBL_DEVICE_OPERATION_MAPPING WHERE DEVICE_ID = ? AND OPERATION_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(selectDBQuery);
|
||||
preparedStatement.setString(1, TEST_MOBILE_DEVICE_ID);
|
||||
preparedStatement.setInt(2, mblOperationId1);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
mblOperationMapping = new MobileDeviceOperationMapping();
|
||||
mblOperationMapping.setDeviceId(resultSet.getString(1));
|
||||
mblOperationMapping.setOperationId(resultSet.getInt(2));
|
||||
mblOperationMapping.setReceivedDate(resultSet.getLong(3));
|
||||
mblOperationMapping.setSentDate(resultSet.getLong(4));
|
||||
mblOperationMapping.setStatus(resultSet.getString(5));
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Operation Mappings data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileOperationMapping 1 has updated ");
|
||||
Assert.assertNotNull(mblOperationMapping, "MobileOperationMappings have fetched ");
|
||||
Assert.assertEquals(MobileDeviceOperationMapping.Status.INPROGRESS,
|
||||
mblOperationMapping.getStatus(),
|
||||
"MobileOperationMapping status has updated ");
|
||||
Assert.assertTrue(mblOperationMapping.getReceivedDate() == currentTime,
|
||||
"MobileOperationMapping received-date has updated ");
|
||||
Assert.assertTrue(mblOperationMapping.getSentDate() == currentTime,
|
||||
"MobileOperationMapping sent-date has updated ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileDeviceOperationMappingTest",
|
||||
"getAllMobileDeviceOperationMappingsOfDeviceTest",
|
||||
"updateMobileDeviceOperationMappingToInProgressTest" })
|
||||
public void getAllPendingOperationMappingsOfMobileDeviceTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
List<MobileDeviceOperationMapping> mblOperationMappings =
|
||||
mblDeviceOperationMappingDAO.getAllPendingOperationMappingsOfMobileDevice(
|
||||
TEST_MOBILE_DEVICE_ID);
|
||||
Assert.assertNotNull(mblOperationMappings, "Pending MobileOperationMappings have fetched ");
|
||||
Assert.assertTrue(mblOperationMappings.size() == 1,
|
||||
"All MobileOperationMappings have fetched ");
|
||||
for (MobileDeviceOperationMapping mblOperationMapping : mblOperationMappings) {
|
||||
Assert.assertEquals(TEST_MOBILE_DEVICE_ID, mblOperationMapping.getDeviceId(),
|
||||
"MobileOperationMapping device id has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getOperationId() == mblOperationId2,
|
||||
"MobileOperationMapping operation-id has fetched ");
|
||||
Assert.assertEquals(MobileDeviceOperationMapping.Status.NEW,
|
||||
mblOperationMapping.getStatus(),
|
||||
"MobileOperationMapping status has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getSentDate() == 0,
|
||||
"MobileOperationMapping sent-date has fetched ");
|
||||
Assert.assertTrue(mblOperationMapping.getReceivedDate() == 0,
|
||||
"MobileOperationMapping received-date has fetched ");
|
||||
}
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileDeviceOperationMappingTest",
|
||||
"getAllMobileDeviceOperationMappingsOfDeviceTest",
|
||||
"updateMobileDeviceOperationMappingToInProgressTest",
|
||||
"updateMobileDeviceOperationMappingToCompletedTest",
|
||||
"updateMobileDeviceOperationMappingTest" })
|
||||
public void deleteMobileDeviceOperationMappingTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
boolean status =
|
||||
mblDeviceOperationMappingDAO.deleteMobileDeviceOperationMapping(
|
||||
TEST_MOBILE_DEVICE_ID, mblOperationId1);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String selectDBQuery =
|
||||
"SELECT DEVICE_ID, OPERATION_ID, RECEIVED_DATE, SENT_DATE, STATUS FROM " +
|
||||
"MBL_DEVICE_OPERATION_MAPPING WHERE DEVICE_ID = ? AND OPERATION_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(selectDBQuery);
|
||||
preparedStatement.setString(1, TEST_MOBILE_DEVICE_ID);
|
||||
preparedStatement.setInt(2, mblOperationId1);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
status = false;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving MobileFeatureProperty data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileDeviceOperationMapping 1 has deleted ");
|
||||
}
|
||||
}
|
@ -0,0 +1,111 @@
|
||||
/*
|
||||
* 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.mobile.impl.dao.util;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.DBTypes;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfiguration;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.common.TestDBConfigurations;
|
||||
import org.wso2.carbon.device.mgt.mobile.util.MobileDeviceManagementUtil;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import java.io.File;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* This class provides the utility methods needed for DAO related test executions.
|
||||
*/
|
||||
public class MobileDatabaseUtils {
|
||||
|
||||
private static final Log log = LogFactory.getLog(MobileDatabaseUtils.class);
|
||||
public static final String TEST_RESOURCES_DB_CONFIG_FILE =
|
||||
"src/test/resources/testdbconfig.xml";
|
||||
|
||||
public static void cleanupResources(Connection conn, Statement stmt, ResultSet rs) {
|
||||
if (rs != null) {
|
||||
try {
|
||||
rs.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Error occurred while closing result set", e);
|
||||
}
|
||||
}
|
||||
if (stmt != null) {
|
||||
try {
|
||||
stmt.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Error occurred while closing prepared statement", e);
|
||||
}
|
||||
}
|
||||
if (conn != null) {
|
||||
try {
|
||||
conn.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Error occurred while closing database connection", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static TestDBConfiguration getTestDBConfiguration(DBTypes dbType) throws
|
||||
MobileDeviceManagementDAOException,
|
||||
DeviceManagementException {
|
||||
File deviceMgtConfig = new File(TEST_RESOURCES_DB_CONFIG_FILE);
|
||||
Document doc;
|
||||
TestDBConfiguration testDBConfiguration = null;
|
||||
TestDBConfigurations testDBConfigurations;
|
||||
|
||||
doc = MobileDeviceManagementUtil.convertToDocument(deviceMgtConfig);
|
||||
JAXBContext testDBContext;
|
||||
|
||||
try {
|
||||
testDBContext = JAXBContext.newInstance(TestDBConfigurations.class);
|
||||
Unmarshaller unmarshaller = testDBContext.createUnmarshaller();
|
||||
testDBConfigurations = (TestDBConfigurations) unmarshaller.unmarshal(doc);
|
||||
} catch (JAXBException e) {
|
||||
throw new MobileDeviceManagementDAOException("Error parsing test db configurations", e);
|
||||
}
|
||||
|
||||
for (TestDBConfiguration testDBConfiguration1 : testDBConfigurations.getDbTypesList()) {
|
||||
testDBConfiguration = testDBConfiguration1;
|
||||
if (testDBConfiguration.getType().equals(dbType.toString())) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return testDBConfiguration;
|
||||
}
|
||||
|
||||
public static void createH2DB(TestDBConfiguration testDBConf) throws Exception {
|
||||
Connection conn = null;
|
||||
Statement stmt = null;
|
||||
try {
|
||||
Class.forName(testDBConf.getDriverClassName());
|
||||
conn = DriverManager.getConnection(testDBConf.getConnectionURL());
|
||||
stmt = conn.createStatement();
|
||||
stmt.executeUpdate("RUNSCRIPT FROM './src/test/resources/sql/CreateH2TestDB.sql'");
|
||||
} finally {
|
||||
cleanupResources(conn, stmt, null);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue