commit
bc22647a04
@ -1,94 +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.dao;
|
||||
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeatureProperty;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This class represents the key operations associated with persisting mobile feature property
|
||||
* related information.
|
||||
*/
|
||||
public interface MobileFeaturePropertyDAO {
|
||||
|
||||
/**
|
||||
* Add a new MobileFeatureProperty to MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureProperty MobileFeatureProperty object that holds data related to the feature
|
||||
* property to be inserted.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean addMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Updates a MobileFeatureProperty in the MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureProperty MobileFeatureProperty object that holds data has to be updated.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean updateMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Deletes a given MobileFeatureProperty from MobileFeatureProperty table.
|
||||
*
|
||||
* @param property Property of the MobileFeatureProperty to be deleted.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean deleteMobileFeatureProperty(String property) throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Deletes MobileFeatureProperties of a given feature from MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureId Feature-id of the MobileFeature corresponding properties should be deleted.
|
||||
* @return The status of the operation.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
boolean deleteMobileFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Retrieves a given MobileFeatureProperty from MobileFeatureProperty table.
|
||||
*
|
||||
* @param property Property of the feature property to be retrieved.
|
||||
* @return MobileFeatureProperty object that holds data of the feature property represented by
|
||||
* property.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
MobileFeatureProperty getMobileFeatureProperty(String property)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Retrieves a list of MobileFeatureProperties corresponds to a given feature id from
|
||||
* MobileFeatureProperty table.
|
||||
*
|
||||
* @param mblFeatureId feature id of the MobileFeatureProperties to be retrieved.
|
||||
* @return List of MobileFeatureProperty objects that holds data of the MobileFeatureProperties
|
||||
* represented by featureId.
|
||||
* @throws MobileDeviceManagementDAOException
|
||||
*/
|
||||
List<MobileFeatureProperty> getFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException;
|
||||
|
||||
}
|
@ -1,250 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2014, 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.dao.impl;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileFeaturePropertyDAO;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeatureProperty;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implementation of MobileFeaturePropertyDAO.
|
||||
*/
|
||||
public class MobileFeaturePropertyDAOImpl implements MobileFeaturePropertyDAO {
|
||||
|
||||
private DataSource dataSource;
|
||||
private static final Log log = LogFactory.getLog(MobileFeaturePropertyDAOImpl.class);
|
||||
|
||||
public MobileFeaturePropertyDAOImpl(DataSource dataSource) {
|
||||
this.dataSource = dataSource;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String createDBQuery =
|
||||
"INSERT INTO AD_FEATURE_PROPERTY(PROPERTY, FEATURE_ID) VALUES (?, ?)";
|
||||
|
||||
stmt = conn.prepareStatement(createDBQuery);
|
||||
stmt.setString(1, mblFeatureProperty.getProperty());
|
||||
stmt.setInt(2, mblFeatureProperty.getFeatureID());
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Added MobileFeatureProperty " + mblFeatureProperty.getProperty() +
|
||||
" to the MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while adding property id - '" +
|
||||
mblFeatureProperty.getFeatureID() + "'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateMobileFeatureProperty(MobileFeatureProperty mblFeatureProperty)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String updateDBQuery =
|
||||
"UPDATE AD_FEATURE_PROPERTY SET FEATURE_ID = ? WHERE PROPERTY = ?";
|
||||
stmt = conn.prepareStatement(updateDBQuery);
|
||||
stmt.setInt(1, mblFeatureProperty.getFeatureID());
|
||||
stmt.setString(2, mblFeatureProperty.getProperty());
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Updated MobileFeatureProperty " + mblFeatureProperty.getProperty());
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while updating the feature property with property - '" +
|
||||
mblFeatureProperty.getProperty() + "'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteMobileFeatureProperty(String property)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String deleteDBQuery =
|
||||
"DELETE FROM AD_FEATURE_PROPERTY WHERE PROPERTY = ?";
|
||||
stmt = conn.prepareStatement(deleteDBQuery);
|
||||
stmt.setString(1, property);
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Deleted MobileFeatureProperty " + property + " from MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while deleting feature property with property - " +
|
||||
property;
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteMobileFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String deleteDBQuery =
|
||||
"DELETE FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
stmt = conn.prepareStatement(deleteDBQuery);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Deleted all MobileFeatureProperties of FeatureId " + mblFeatureId +
|
||||
" from MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while deleting feature properties of feature - " +
|
||||
mblFeatureId;
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MobileFeatureProperty getMobileFeatureProperty(String property)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
MobileFeatureProperty mobileFeatureProperty = null;
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String selectDBQuery =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE PROPERTY = ?";
|
||||
stmt = conn.prepareStatement(selectDBQuery);
|
||||
stmt.setString(1, property);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setProperty(resultSet.getString(1));
|
||||
mobileFeatureProperty.setFeatureID(resultSet.getInt(2));
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Fetched MobileFeatureProperty " + mobileFeatureProperty.getProperty() +
|
||||
" from MDM database.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while fetching property - '" +
|
||||
property + "'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
return mobileFeatureProperty;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MobileFeatureProperty> getFeaturePropertiesOfFeature(Integer mblFeatureId)
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
MobileFeatureProperty mobileFeatureProperty;
|
||||
List<MobileFeatureProperty> FeatureProperties = new ArrayList<MobileFeatureProperty>();
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
String selectDBQuery =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
stmt = conn.prepareStatement(selectDBQuery);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
while (resultSet.next()) {
|
||||
mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setProperty(resultSet.getString(1));
|
||||
mobileFeatureProperty.setFeatureID(resultSet.getInt(2));
|
||||
FeatureProperties.add(mobileFeatureProperty);
|
||||
}
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Fetched all MobileFeatureProperties of featureId " + mblFeatureId +
|
||||
" from MDM database.");
|
||||
}
|
||||
return FeatureProperties;
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while fetching all feature property.'";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
}
|
||||
|
||||
private Connection getConnection() throws MobileDeviceManagementDAOException {
|
||||
try {
|
||||
return dataSource.getConnection();
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while obtaining a connection from the mobile device " +
|
||||
"management metadata repository datasource.";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* 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.windows.dao;
|
||||
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
|
||||
/**
|
||||
* Implement Exception class for Windows Device Features.
|
||||
*/
|
||||
public class WindowsFeatureManagementDAOException extends MobileDeviceManagementDAOException {
|
||||
|
||||
private String message;
|
||||
private static final long serialVersionUID = 2021891706072918865L;
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified detail message and
|
||||
* nested exception.
|
||||
*
|
||||
* @param message error message
|
||||
* @param nestedException exception
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(String message, Exception nestedException) {
|
||||
super(message, nestedException);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified detail message
|
||||
* and cause.
|
||||
*
|
||||
* @param message the detail message.
|
||||
* @param cause the cause of this exception.
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
setErrorMessage(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified detail message.
|
||||
*
|
||||
* @param message the detail message.
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(String message) {
|
||||
super(message);
|
||||
setErrorMessage(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new MobileDeviceManagementDAOException with the specified and cause.
|
||||
*
|
||||
* @param cause the cause of this exception.
|
||||
*/
|
||||
public WindowsFeatureManagementDAOException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setErrorMessage(String errorMessage) {
|
||||
this.message = errorMessage;
|
||||
}
|
||||
}
|
@ -0,0 +1,272 @@
|
||||
/*
|
||||
* 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.windows.dao.impl;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileDeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.MobileFeatureDAO;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.util.MobileDeviceManagementDAOUtil;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.dao.WindowsDAOFactory;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.dao.WindowsFeatureManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.mobile.impl.windows.util.WindowsPluginConstants;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implement MobileFeatureDAO for Windows devices.
|
||||
*/
|
||||
public class WindowsFeatureDAOImpl implements MobileFeatureDAO {
|
||||
|
||||
private static final Log log = LogFactory.getLog(WindowsFeatureDAOImpl.class);
|
||||
|
||||
public WindowsFeatureDAOImpl() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "INSERT INTO WIN_FEATURE(CODE, NAME, DESCRIPTION) VALUES (?, ?, ?)";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, mobileFeature.getCode());
|
||||
stmt.setString(2, mobileFeature.getName());
|
||||
stmt.setString(3, mobileFeature.getDescription());
|
||||
stmt.executeUpdate();
|
||||
status = true;
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while adding windows feature '" +
|
||||
mobileFeature.getName() + "' into the metadata repository", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addFeatures(List<MobileFeature> mobileFeatures) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
stmt = conn.prepareStatement("INSERT INTO WIN_FEATURE(CODE, NAME, DESCRIPTION) VALUES (?, ?, ?)");
|
||||
for (MobileFeature mobileFeature : mobileFeatures) {
|
||||
stmt.setString(1, mobileFeature.getCode());
|
||||
stmt.setString(2, mobileFeature.getName());
|
||||
stmt.setString(3, mobileFeature.getDescription());
|
||||
stmt.addBatch();
|
||||
}
|
||||
stmt.executeBatch();
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while adding windows features into the metadata repository", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateFeature(MobileFeature mobileFeature) throws MobileDeviceManagementDAOException {
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String updateDBQuery =
|
||||
"UPDATE WIN_FEATURE SET NAME = ?, DESCRIPTION = ?" +
|
||||
"WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(updateDBQuery);
|
||||
stmt.setString(1, mobileFeature.getName());
|
||||
stmt.setString(2, mobileFeature.getDescription());
|
||||
stmt.setString(3, mobileFeature.getCode());
|
||||
int rows = stmt.executeUpdate();
|
||||
if (rows > 0) {
|
||||
status = true;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Windows Feature " + mobileFeature.getCode() + " data has been " +
|
||||
"modified.");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException("Error occurred while updating the Windows Feature '" +
|
||||
mobileFeature.getCode() + "' to the Windows db.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteFeatureById(int mblFeatureId) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "DELETE FROM WIN_FEATURE WHERE FEATURE_ID = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
stmt.execute();
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while deleting windows feature '" +
|
||||
mblFeatureId + "' from Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteFeatureByCode(String mblFeatureCode) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
boolean status = false;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "DELETE FROM WIN_FEATURE WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, mblFeatureCode);
|
||||
stmt.execute();
|
||||
status = true;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while deleting windows feature '" +
|
||||
mblFeatureCode + "' from Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MobileFeature getFeatureById(int mblFeatureId) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM WIN_FEATURE WHERE ID = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
rs = stmt.executeQuery();
|
||||
MobileFeature mobileFeature = null;
|
||||
if (rs.next()) {
|
||||
mobileFeature = new MobileFeature();
|
||||
mobileFeature.setId(rs.getInt(WindowsPluginConstants.WINDOWS_FEATURE_ID));
|
||||
mobileFeature.setCode(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_CODE));
|
||||
mobileFeature.setName(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_NAME));
|
||||
mobileFeature.setDescription(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_DESCRIPTION));
|
||||
mobileFeature.setDeviceType(
|
||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||
}
|
||||
return mobileFeature;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while retrieving windows feature '" +
|
||||
mblFeatureId + "' from the Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MobileFeature getFeatureByCode(String mblFeatureCode) throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
Connection conn;
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM WIN_FEATURE WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, mblFeatureCode);
|
||||
rs = stmt.executeQuery();
|
||||
MobileFeature mobileFeature = null;
|
||||
if (rs.next()) {
|
||||
mobileFeature = new MobileFeature();
|
||||
mobileFeature.setId(rs.getInt(WindowsPluginConstants.WINDOWS_FEATURE_ID));
|
||||
mobileFeature.setCode(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_CODE));
|
||||
mobileFeature.setName(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_NAME));
|
||||
mobileFeature.setDescription(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_DESCRIPTION));
|
||||
mobileFeature.setDeviceType(
|
||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||
}
|
||||
return mobileFeature;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException(
|
||||
"Error occurred while retrieving windows feature '" +
|
||||
mblFeatureCode + "' from the Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MobileFeature> getFeatureByDeviceType(String deviceType) throws MobileDeviceManagementDAOException {
|
||||
return this.getAllFeatures();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MobileFeature> getAllFeatures() throws MobileDeviceManagementDAOException {
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
Connection conn;
|
||||
List<MobileFeature> features = new ArrayList<>();
|
||||
try {
|
||||
conn = WindowsDAOFactory.getConnection();
|
||||
String sql = "SELECT FEATURE_ID, CODE, NAME, DESCRIPTION FROM WIN_FEATURE";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
rs = stmt.executeQuery();
|
||||
MobileFeature mobileFeature;
|
||||
while (rs.next()) {
|
||||
mobileFeature = new MobileFeature();
|
||||
mobileFeature.setId(rs.getInt(WindowsPluginConstants.WINDOWS_FEATURE_ID));
|
||||
mobileFeature.setCode(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_CODE));
|
||||
mobileFeature.setName(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_NAME));
|
||||
mobileFeature.setDescription(rs.getString(WindowsPluginConstants.WINDOWS_FEATURE_DESCRIPTION));
|
||||
mobileFeature.setDeviceType(
|
||||
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
|
||||
features.add(mobileFeature);
|
||||
}
|
||||
return features;
|
||||
} catch (SQLException e) {
|
||||
throw new WindowsFeatureManagementDAOException("Error occurred while retrieving all " +
|
||||
"windows features from the Windows database.", e);
|
||||
} finally {
|
||||
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,260 +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;
|
||||
|
||||
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.MobileFeatureDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
|
||||
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.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class for holding unit-tests related to MobileFeatureDAO class.
|
||||
*
|
||||
*/
|
||||
public class MobileFeatureDAOTestSuite {
|
||||
|
||||
private static final Log log = LogFactory.getLog(MobileFeatureDAOTestSuite.class);
|
||||
public static final String MBL_FEATURE_NAME = "Camera";
|
||||
private static final String MBL_FEATURE_CODE = "500A";
|
||||
public static final String MBL_FEATURE_DESCRIPTION = "Camera enable or disable";
|
||||
public static final String MBL_FEATURE_DEVICE_TYPE = "Android";
|
||||
public static final String MBL_FEATURE_UPDATED_CODE = "501B";
|
||||
private TestDBConfiguration testDBConfiguration;
|
||||
private MobileFeatureDAOImpl mblFeatureDAO;
|
||||
private int mblFeatureId;
|
||||
|
||||
@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);
|
||||
mblFeatureDAO = new MobileFeatureDAOImpl(testDataSource);
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMobileFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
MobileFeature testMblFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setDeviceType(MBL_FEATURE_DEVICE_TYPE);
|
||||
mblFeatureDAO.addFeature(mobileFeature);
|
||||
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT ID, CODE, NAME, DESCRIPTION, DEVICE_TYPE FROM AD_FEATURE WHERE CODE = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setString(1, MBL_FEATURE_CODE);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
testMblFeature.setId(resultSet.getInt(1));
|
||||
testMblFeature.setCode(resultSet.getString(2));
|
||||
testMblFeature.setName(resultSet.getString(3));
|
||||
testMblFeature.setDescription(resultSet.getString(4));
|
||||
testMblFeature.setDeviceType(resultSet.getString(5));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
mblFeatureId = testMblFeature.getId();
|
||||
Assert.assertTrue(mblFeatureId > 0, "MobileFeature has added ");
|
||||
Assert.assertEquals(MBL_FEATURE_CODE, testMblFeature.getCode(),
|
||||
"MobileFeature code has persisted ");
|
||||
Assert.assertEquals(MBL_FEATURE_NAME, testMblFeature.getName(),
|
||||
"MobileFeature name has persisted ");
|
||||
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, testMblFeature.getDescription(),
|
||||
"MobileFeature description has persisted ");
|
||||
Assert.assertEquals(MBL_FEATURE_DEVICE_TYPE, testMblFeature.getDeviceType(),
|
||||
"MobileFeature device-type has persisted ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest" })
|
||||
public void getMobileFeatureByCodeTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
MobileFeature mobileFeature = mblFeatureDAO.getFeatureByCode(MBL_FEATURE_CODE);
|
||||
Assert.assertEquals(MBL_FEATURE_CODE, mobileFeature.getCode(),
|
||||
"MobileFeature code has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_NAME, mobileFeature.getName(),
|
||||
"MobileFeature name has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, mobileFeature.getDescription(),
|
||||
"MobileFeature description has retrieved ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest" })
|
||||
public void getMobileFeatureByIdTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
MobileFeature mobileFeature = mblFeatureDAO.getFeatureById(mblFeatureId);
|
||||
Assert.assertEquals(MBL_FEATURE_CODE, mobileFeature.getCode(),
|
||||
"MobileFeature code has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_NAME, mobileFeature.getName(),
|
||||
"MobileFeature name has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_DESCRIPTION, mobileFeature.getDescription(),
|
||||
"MobileFeature description has retrieved ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest" })
|
||||
public void getAllMobileFeaturesTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
List<MobileFeature> mobileFeatures = mblFeatureDAO.getAllFeatures();
|
||||
Assert.assertNotNull(mobileFeatures, "MobileFeature list is not null");
|
||||
Assert.assertTrue(mobileFeatures.size() > 0, "MobileFeature list has 1 MobileFeature");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest", "getMobileFeatureByCodeTest",
|
||||
"getMobileFeatureByIdTest", "getAllMobileFeaturesTest" })
|
||||
public void updateMobileFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
MobileFeature testMblFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_UPDATED_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setId(mblFeatureId);
|
||||
boolean updated = mblFeatureDAO.updateFeature(mobileFeature);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT ID, CODE, NAME, DESCRIPTION FROM AD_FEATURE WHERE CODE = ?";
|
||||
stmt = conn.prepareStatement(query);
|
||||
stmt.setString(1, MBL_FEATURE_UPDATED_CODE);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
testMblFeature.setId(resultSet.getInt(1));
|
||||
testMblFeature.setCode(resultSet.getString(2));
|
||||
testMblFeature.setName(resultSet.getString(3));
|
||||
testMblFeature.setDescription(resultSet.getString(4));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in updating Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
Assert.assertTrue(updated, "MobileFeature has updated");
|
||||
Assert.assertEquals(MBL_FEATURE_UPDATED_CODE, testMblFeature.getCode(),
|
||||
"MobileFeature data has updated ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest", "getMobileFeatureByCodeTest",
|
||||
"getMobileFeatureByIdTest", "getAllMobileFeaturesTest",
|
||||
"updateMobileFeatureTest" })
|
||||
public void deleteMobileFeatureByIdTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
|
||||
boolean status = mblFeatureDAO.deleteFeatureById(mblFeatureId);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query = "SELECT ID, CODE FROM AD_FEATURE WHERE ID = ?";
|
||||
stmt = conn.prepareStatement(query);
|
||||
stmt.setInt(1, mblFeatureId);
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
status = false;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in deleting Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, stmt, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileFeature has deleted ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeatureTest", "getMobileFeatureByCodeTest",
|
||||
"getMobileFeatureByIdTest", "getAllMobileFeaturesTest",
|
||||
"updateMobileFeatureTest", "deleteMobileFeatureByIdTest" })
|
||||
public void deleteMobileFeatureByCodeTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setDeviceType(MBL_FEATURE_DEVICE_TYPE);
|
||||
mblFeatureDAO.addFeature(mobileFeature);
|
||||
boolean status = mblFeatureDAO.deleteFeatureByCode(MBL_FEATURE_CODE);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query = "SELECT ID, CODE FROM AD_FEATURE WHERE CODE = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setString(1, MBL_FEATURE_CODE);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
status = false;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in deleting Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status, "MobileFeature has deleted ");
|
||||
}
|
||||
}
|
@ -1,241 +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;
|
||||
|
||||
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.MobileFeatureDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dao.impl.MobileFeaturePropertyDAOImpl;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeature;
|
||||
import org.wso2.carbon.device.mgt.mobile.dto.MobileFeatureProperty;
|
||||
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 MobileFeaturePropertyDAO class.
|
||||
*
|
||||
*/
|
||||
public class MobileFeaturePropertyDAOTestSuite {
|
||||
|
||||
private static final Log log = LogFactory.getLog(MobileFeaturePropertyDAOTestSuite.class);
|
||||
public static final String MBL_FEATURE_NAME = "WIFI";
|
||||
private static final String MBL_FEATURE_CODE = "500A";
|
||||
public static final String MBL_FEATURE_DESCRIPTION = "Wifi config";
|
||||
public static final String MBL_FEATURE_DEVICE_TYPE = "Android";
|
||||
public static final String MBL_FEATURE_PROP_1 = "SSID";
|
||||
public static final String MBL_FEATURE_PROP_2 = "PASSWORD";
|
||||
private TestDBConfiguration testDBConfiguration;
|
||||
private MobileFeatureDAOImpl mblFeatureDAO;
|
||||
private MobileFeaturePropertyDAOImpl mobileFeaturePropertyDAO;
|
||||
private int mblFeatureId;
|
||||
|
||||
@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);
|
||||
mblFeatureDAO = new MobileFeatureDAOImpl(testDataSource);
|
||||
mobileFeaturePropertyDAO = new MobileFeaturePropertyDAOImpl(testDataSource);
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMobileFeaturePropertyTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
List<MobileFeatureProperty> propertyList = new ArrayList<MobileFeatureProperty>();
|
||||
//Add a new MobileFeature to the database
|
||||
MobileFeature mobileFeature = new MobileFeature();
|
||||
mobileFeature.setCode(MBL_FEATURE_CODE);
|
||||
mobileFeature.setDescription(MBL_FEATURE_DESCRIPTION);
|
||||
mobileFeature.setName(MBL_FEATURE_NAME);
|
||||
mobileFeature.setDeviceType(MBL_FEATURE_DEVICE_TYPE);
|
||||
mblFeatureDAO.addFeature(mobileFeature);
|
||||
|
||||
MobileFeature persistMblFeature = mblFeatureDAO.getFeatureByCode(MBL_FEATURE_CODE);
|
||||
mblFeatureId = persistMblFeature.getId();
|
||||
//Add 1st property to the feature
|
||||
MobileFeatureProperty mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setFeatureID(mblFeatureId);
|
||||
mobileFeatureProperty.setProperty(MBL_FEATURE_PROP_1);
|
||||
boolean status1 = mobileFeaturePropertyDAO.addMobileFeatureProperty(mobileFeatureProperty);
|
||||
|
||||
//Add 2nd property to the feature
|
||||
mobileFeatureProperty.setProperty(MBL_FEATURE_PROP_2);
|
||||
boolean status2 = mobileFeaturePropertyDAO.addMobileFeatureProperty(mobileFeatureProperty);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT FEATURE_ID, PROPERTY FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setInt(1, mblFeatureId);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
|
||||
while (resultSet.next()) {
|
||||
mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setFeatureID(resultSet.getInt(1));
|
||||
mobileFeatureProperty.setProperty(resultSet.getString(2));
|
||||
propertyList.add(mobileFeatureProperty);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error in retrieving Mobile Feature data ";
|
||||
log.error(msg, e);
|
||||
throw new MobileDeviceManagementDAOException(msg, e);
|
||||
} finally {
|
||||
MobileDatabaseUtils.cleanupResources(conn, preparedStatement, null);
|
||||
}
|
||||
Assert.assertTrue(status1, "MobileFeatureProperty1 has added ");
|
||||
Assert.assertTrue(status2, "MobileFeatureProperty2 has added ");
|
||||
Assert.assertTrue(propertyList.size() == 2, "MobileFeatureProperties have retrieved ");
|
||||
|
||||
for (MobileFeatureProperty mblFeatureProperty : propertyList) {
|
||||
Assert.assertNotNull(mblFeatureProperty.getProperty(),
|
||||
"MobileFeatureProperty property has persisted ");
|
||||
Assert.assertNotNull(mblFeatureProperty.getFeatureID(),
|
||||
"MobileFeatureProperty feature-id has persisted ");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest" })
|
||||
public void getMobileFeaturePropertyTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
MobileFeatureProperty mobileFeatureProperty =
|
||||
mobileFeaturePropertyDAO.getMobileFeatureProperty(MBL_FEATURE_PROP_1);
|
||||
Assert.assertNotNull(mobileFeatureProperty, "MobileFeatureProperty has retrieved ");
|
||||
Assert.assertEquals(MBL_FEATURE_PROP_1, mobileFeatureProperty.getProperty(),
|
||||
"MobileFeatureProperty property has retrieved ");
|
||||
Assert.assertTrue(mblFeatureId == mobileFeatureProperty.getFeatureID(),
|
||||
"MobileFeatureProperty featureId has retrieved ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest" })
|
||||
public void getFeaturePropertyOfFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
List<MobileFeatureProperty> mobileFeatureProperties =
|
||||
mobileFeaturePropertyDAO.getFeaturePropertiesOfFeature(mblFeatureId);
|
||||
Assert.assertNotNull(mobileFeatureProperties, "MobileFeatureProperty list has retrieved ");
|
||||
Assert.assertTrue(mobileFeatureProperties.size() == 2,
|
||||
"MobileFeatureProperties have fetched ");
|
||||
for (MobileFeatureProperty mblFeatureProperty : mobileFeatureProperties) {
|
||||
Assert.assertNotNull(mblFeatureProperty.getProperty(),
|
||||
"MobileFeatureProperty property has fetched ");
|
||||
Assert.assertNotNull(mblFeatureProperty.getFeatureID(),
|
||||
"MobileFeatureProperty feature-id has fetched ");
|
||||
}
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest", "getMobileFeaturePropertyTest",
|
||||
"getFeaturePropertyOfFeatureTest" }, expectedExceptions = MobileDeviceManagementDAOException.class)
|
||||
public void updateMobileFeaturePropertyTest() throws MobileDeviceManagementDAOException {
|
||||
//Update 1st property to a non-exist feature
|
||||
MobileFeatureProperty mobileFeatureProperty = new MobileFeatureProperty();
|
||||
mobileFeatureProperty.setFeatureID(2);
|
||||
mobileFeatureProperty.setProperty(MBL_FEATURE_PROP_1);
|
||||
mobileFeaturePropertyDAO.updateMobileFeatureProperty(mobileFeatureProperty);
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest", "getMobileFeaturePropertyTest",
|
||||
"getFeaturePropertyOfFeatureTest" })
|
||||
public void deleteMobileFeaturePropertyTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
boolean status =
|
||||
mobileFeaturePropertyDAO.deleteMobileFeatureProperty(MBL_FEATURE_PROP_2);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE PROPERTY = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setString(1, MBL_FEATURE_PROP_2);
|
||||
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, "MobileFeatureProperty has deleted ");
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "addMobileFeaturePropertyTest", "getMobileFeaturePropertyTest",
|
||||
"getFeaturePropertyOfFeatureTest", "updateMobileFeaturePropertyTest",
|
||||
"deleteMobileFeaturePropertyTest" })
|
||||
public void deleteMobileFeaturePropertiesOfFeatureTest()
|
||||
throws MobileDeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement preparedStatement = null;
|
||||
boolean status =
|
||||
mobileFeaturePropertyDAO.deleteMobileFeaturePropertiesOfFeature(mblFeatureId);
|
||||
try {
|
||||
conn = DriverManager.getConnection(testDBConfiguration.getConnectionURL());
|
||||
String query =
|
||||
"SELECT PROPERTY, FEATURE_ID FROM AD_FEATURE_PROPERTY WHERE FEATURE_ID = ?";
|
||||
preparedStatement = conn.prepareStatement(query);
|
||||
preparedStatement.setInt(1, mblFeatureId);
|
||||
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, "MobileFeatureProperties has deleted ");
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue