mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merged
This commit is contained in:
commit
854b7dda8d
@ -41,11 +41,13 @@ import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||
import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations;
|
||||
import org.wso2.carbon.device.mgt.core.dao.*;
|
||||
import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener;
|
||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceException;
|
||||
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceStub;
|
||||
import org.wso2.carbon.identity.oauth.stub.dto.OAuthConsumerAppDTO;
|
||||
|
||||
import java.rmi.RemoteException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -61,6 +63,7 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
||||
private DeviceDAO deviceDAO;
|
||||
private ApplicationDAO applicationDAO;
|
||||
private ApplicationMappingDAO applicationMappingDAO;
|
||||
private boolean isTest;
|
||||
|
||||
private static final String GET_APP_LIST_URL = "store/apis/assets/mobileapp?domain=carbon.super&page=1";
|
||||
|
||||
@ -87,6 +90,14 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
||||
this.applicationMappingDAO = DeviceManagementDAOFactory.getApplicationMappingDAO();
|
||||
}
|
||||
|
||||
ApplicationManagerProviderServiceImpl(DeviceManagementPluginRepository pluginRepository, boolean testMode) {
|
||||
this.pluginRepository = pluginRepository;
|
||||
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
||||
this.applicationDAO = DeviceManagementDAOFactory.getApplicationDAO();
|
||||
this.applicationMappingDAO = DeviceManagementDAOFactory.getApplicationMappingDAO();
|
||||
isTest = testMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Application[] getApplications(String domain, int pageNumber, int size)
|
||||
throws ApplicationManagementException {
|
||||
@ -170,11 +181,33 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
||||
public void updateApplicationListInstalledInDevice(
|
||||
DeviceIdentifier deviceIdentifier, List<Application> applications) throws ApplicationManagementException {
|
||||
|
||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
int tenantId = getTenantId();
|
||||
|
||||
try {
|
||||
Device device = deviceDAO.getDevice(deviceIdentifier, tenantId);
|
||||
List<Integer> applicationIds = applicationDAO.addApplications(applications, tenantId);
|
||||
|
||||
List<Application> installedAppList = getApplicationListForDevice(deviceIdentifier);
|
||||
List<Application> appsToAdd = new ArrayList<Application>();
|
||||
List<Integer> appIdsToRemove = new ArrayList<Integer>();
|
||||
|
||||
for(Application installedApp:installedAppList){
|
||||
if (!applications.contains(installedApp)){
|
||||
appIdsToRemove.add(installedApp.getId());
|
||||
}
|
||||
}
|
||||
|
||||
for(Application application:applications){
|
||||
if (!installedAppList.contains(application)){
|
||||
appsToAdd.add(application);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
List<Integer> applicationIds = applicationDAO.addApplications(appsToAdd, tenantId);
|
||||
applicationMappingDAO.addApplicationMappings(device.getId(), applicationIds, tenantId);
|
||||
|
||||
applicationMappingDAO.removeApplicationMapping(device.getId(), appIdsToRemove,tenantId);
|
||||
|
||||
} catch (DeviceManagementDAOException deviceDaoEx) {
|
||||
String errorMsg = "Error occurred saving application list to the device";
|
||||
log.error(errorMsg + ":" + deviceIdentifier.toString());
|
||||
@ -182,12 +215,24 @@ public class ApplicationManagerProviderServiceImpl implements ApplicationManagem
|
||||
}
|
||||
}
|
||||
|
||||
private int getTenantId() {
|
||||
|
||||
int tenantId = 0;
|
||||
if (isTest){
|
||||
tenantId = DeviceManagerUtil.currentTenant.get();
|
||||
}else{
|
||||
tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
}
|
||||
|
||||
return tenantId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Application> getApplicationListForDevice(DeviceIdentifier deviceIdentifier)
|
||||
throws ApplicationManagementException {
|
||||
Device device = null;
|
||||
try {
|
||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
int tenantId = getTenantId();
|
||||
device = deviceDAO.getDevice(deviceIdentifier, tenantId);
|
||||
return applicationDAO.getInstalledApplications(device.getId());
|
||||
}catch (DeviceManagementDAOException deviceDaoEx) {
|
||||
|
||||
@ -28,7 +28,7 @@ public interface ApplicationDAO {
|
||||
|
||||
List<Integer> addApplications(List<Application> applications, int tenantId) throws DeviceManagementDAOException;
|
||||
|
||||
int removeApplication(String applicationName, int tenantId) throws DeviceManagementDAOException;
|
||||
List<Integer> removeApplications(List<Application> apps, int tenantId) throws DeviceManagementDAOException;
|
||||
|
||||
Application getApplication(String identifier, int tenantId) throws DeviceManagementDAOException;
|
||||
|
||||
|
||||
@ -26,8 +26,9 @@ public interface ApplicationMappingDAO {
|
||||
|
||||
int addApplicationMapping(int deviceId, int applicationId, int tenantId) throws DeviceManagementDAOException;
|
||||
|
||||
List<Integer> addApplicationMappings(int deviceId, List<Integer> applicationIds,
|
||||
int tenantId) throws DeviceManagementDAOException;
|
||||
List<Integer> addApplicationMappings(int deviceId, List<Integer> applicationIds, int tenantId)
|
||||
throws DeviceManagementDAOException;
|
||||
|
||||
int removeApplicationMapping(int deviceId, int applicationId, int tenantId) throws DeviceManagementDAOException;
|
||||
void removeApplicationMapping(int deviceId, List<Integer> appIdList, int tenantId)
|
||||
throws DeviceManagementDAOException;
|
||||
}
|
||||
|
||||
@ -86,10 +86,11 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
||||
conn = this.getConnection();
|
||||
stmt = conn.prepareStatement("INSERT INTO DM_APPLICATION (NAME, PLATFORM, CATEGORY, " +
|
||||
"VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID,APP_PROPERTIES,APP_IDENTIFIER) " +
|
||||
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?,?)");
|
||||
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?,?)", Statement.RETURN_GENERATED_KEYS);
|
||||
|
||||
|
||||
for (Application application : applications) {
|
||||
|
||||
stmt.setString(1, application.getName());
|
||||
stmt.setString(2, application.getPlatform());
|
||||
stmt.setString(3, application.getCategory());
|
||||
@ -117,33 +118,38 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int removeApplication(String applicationName, int tenantId) throws DeviceManagementDAOException {
|
||||
public List<Integer> removeApplications(List<Application> apps, int tenantId) throws DeviceManagementDAOException {
|
||||
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
int applicationId = -1;
|
||||
List<Integer> applicationIds = new ArrayList<Integer>();
|
||||
|
||||
try {
|
||||
conn = this.getConnection();
|
||||
conn.setAutoCommit(false);
|
||||
stmt = conn.prepareStatement("DELETE DM_APPLICATION WHERE NAME = ? AND TENANT_ID = ?");
|
||||
stmt.setString(1, applicationName);
|
||||
stmt.setInt(2, tenantId);
|
||||
stmt.execute();
|
||||
conn.commit();
|
||||
stmt = conn.prepareStatement("DELETE DM_APPLICATION WHERE APP_IDENTIFIER = ? AND TENANT_ID = ?",
|
||||
Statement.RETURN_GENERATED_KEYS);
|
||||
|
||||
for(Application app:apps){
|
||||
stmt.setString(1, app.getApplicationIdentifier());
|
||||
stmt.setInt(2, tenantId);
|
||||
stmt.addBatch();
|
||||
}
|
||||
stmt.executeBatch();
|
||||
rs = stmt.getGeneratedKeys();
|
||||
if (rs.next()) {
|
||||
applicationId = rs.getInt(1);
|
||||
applicationIds.add(rs.getInt(1));
|
||||
}
|
||||
return applicationId;
|
||||
return applicationIds;
|
||||
} catch (SQLException e) {
|
||||
try {
|
||||
conn.rollback();
|
||||
} catch (SQLException e1) {
|
||||
log.warn("Error occurred while roll-backing the transaction", e);
|
||||
}
|
||||
throw new DeviceManagementDAOException("Error occurred while removing application '" +
|
||||
applicationName + "'", e);
|
||||
throw new DeviceManagementDAOException("Error occurred while removing bulk application list", e);
|
||||
} finally {
|
||||
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
||||
}
|
||||
|
||||
@ -102,8 +102,9 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int removeApplicationMapping(int deviceId, int applicationId,
|
||||
int tenantId) throws DeviceManagementDAOException {
|
||||
public void removeApplicationMapping(int deviceId, List<Integer> appIdList, int tenantId)
|
||||
throws DeviceManagementDAOException {
|
||||
|
||||
Connection conn;
|
||||
ResultSet rs;
|
||||
int mappingId = -1;
|
||||
@ -112,17 +113,15 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
||||
String sql = "DELETE DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ? AND " +
|
||||
"APPLICATION_ID = ? AND TENANT_ID = ?";
|
||||
PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
||||
stmt.setInt(1, deviceId);
|
||||
stmt.setInt(2, applicationId);
|
||||
stmt.setInt(3, tenantId);
|
||||
stmt.execute();
|
||||
|
||||
rs = stmt.getGeneratedKeys();
|
||||
if (rs.next()) {
|
||||
mappingId = rs.getInt(1);
|
||||
for(Integer appId:appIdList){
|
||||
stmt.setInt(1, deviceId);
|
||||
stmt.setInt(2, appId);
|
||||
stmt.setInt(3, tenantId);
|
||||
stmt.addBatch();
|
||||
}
|
||||
return mappingId;
|
||||
} catch (SQLException e) {
|
||||
stmt.executeBatch();
|
||||
} catch (SQLException e) {
|
||||
throw new DeviceManagementDAOException("Error occurred while adding device application mapping", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,6 +36,7 @@ import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
||||
import org.wso2.carbon.device.mgt.core.internal.EmailServiceDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener;
|
||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||
import org.wso2.carbon.user.api.UserStoreException;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -52,21 +53,37 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
private DeviceTypeDAO deviceTypeDAO;
|
||||
private EnrolmentDAO enrolmentDAO;
|
||||
private DeviceManagementPluginRepository pluginRepository;
|
||||
private boolean isTest = false;
|
||||
|
||||
private static Log log = LogFactory.getLog(DeviceManagementProviderServiceImpl.class);
|
||||
private int tenantId;
|
||||
|
||||
public DeviceManagementProviderServiceImpl() {
|
||||
|
||||
this.pluginRepository = new DeviceManagementPluginRepository();
|
||||
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
||||
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
|
||||
this.enrolmentDAO = DeviceManagementDAOFactory.getEnrollmentDAO();
|
||||
|
||||
initDataAccessObjects();
|
||||
/* Registering a listener to retrieve events when some device management service plugin is installed after
|
||||
* the component is done getting initialized */
|
||||
DeviceManagementServiceComponent.registerPluginInitializationListener(this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This constructor calls from unit tests
|
||||
* @param pluginRepo
|
||||
*/
|
||||
DeviceManagementProviderServiceImpl(DeviceManagementPluginRepository pluginRepo, boolean test){
|
||||
this.pluginRepository = pluginRepo;
|
||||
initDataAccessObjects();
|
||||
isTest = test;
|
||||
}
|
||||
|
||||
private void initDataAccessObjects() {
|
||||
this.deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
||||
this.deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
|
||||
this.enrolmentDAO = DeviceManagementDAOFactory.getEnrollmentDAO();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FeatureManager getFeatureManager() {
|
||||
return null;
|
||||
@ -81,6 +98,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
|
||||
@Override
|
||||
public boolean enrollDevice(Device device) throws DeviceManagementException {
|
||||
|
||||
DeviceManager dms =
|
||||
this.getPluginRepository().getDeviceManagementService(device.getType()).getDeviceManager();
|
||||
boolean status = dms.enrollDevice(device);
|
||||
@ -90,7 +108,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
} else {
|
||||
device.getEnrolmentInfo().setStatus(EnrolmentInfo.Status.ACTIVE);
|
||||
}
|
||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
int tenantId = getTenantId();
|
||||
|
||||
DeviceManagementDAOFactory.beginTransaction();
|
||||
|
||||
@ -575,9 +593,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
String[] users;
|
||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
try {
|
||||
users =
|
||||
DeviceManagementDataHolder.getInstance().getRealmService().getTenantUserRealm(
|
||||
tenantId).getUserStoreManager().getUserListOfRole(role);
|
||||
users = DeviceManagementDataHolder.getInstance().getRealmService().getTenantUserRealm(tenantId)
|
||||
.getUserStoreManager().getUserListOfRole(role);
|
||||
} catch (UserStoreException e) {
|
||||
throw new DeviceManagementException("Error occurred while obtaining the users, who are assigned " +
|
||||
"with the role '" + role + "'", e);
|
||||
@ -699,6 +716,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<Device> getDevicesByStatus(EnrolmentInfo.Status status) throws DeviceManagementException {
|
||||
List<Device> devices = new ArrayList<Device>();
|
||||
List<Device> allDevices;
|
||||
@ -735,4 +753,18 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
||||
return devices;
|
||||
}
|
||||
|
||||
|
||||
public int getTenantId() {
|
||||
|
||||
ThreadLocal<Integer> tenantId = new ThreadLocal<Integer>();
|
||||
int tenant = 0;
|
||||
|
||||
if (isTest){
|
||||
tenant = DeviceManagerUtil.currentTenant.get();
|
||||
}else{
|
||||
tenant = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
}
|
||||
return tenant;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -49,6 +49,7 @@ import java.util.*;
|
||||
public final class DeviceManagerUtil {
|
||||
|
||||
private static final Log log = LogFactory.getLog(DeviceManagerUtil.class);
|
||||
public static ThreadLocal<Integer> currentTenant = new ThreadLocal<Integer>();
|
||||
|
||||
enum HTTPMethod {
|
||||
GET, POST, DELETE, PUT, OPTIONS
|
||||
@ -215,4 +216,5 @@ public final class DeviceManagerUtil {
|
||||
return uriTemplates;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -23,6 +23,7 @@ import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManager;
|
||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||
|
||||
public class DeviceManagementRepositoryTests {
|
||||
|
||||
@ -35,27 +36,27 @@ public class DeviceManagementRepositoryTests {
|
||||
|
||||
@Test
|
||||
public void testAddDeviceManagementService() {
|
||||
DeviceManagementService sourceProvider = new TestDeviceManagementService();
|
||||
DeviceManagementService sourceProvider = new TestDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
try {
|
||||
this.getRepository().addDeviceManagementProvider(sourceProvider);
|
||||
} catch (DeviceManagementException e) {
|
||||
Assert.fail("Unexpected error occurred while invoking addDeviceManagementProvider functionality", e);
|
||||
}
|
||||
DeviceManagementService targetProvider =
|
||||
this.getRepository().getDeviceManagementService(TestDeviceManagementService.DEVICE_TYPE_TEST);
|
||||
this.getRepository().getDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
Assert.assertEquals(targetProvider.getType(), sourceProvider.getType());
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = "testAddDeviceManagementService")
|
||||
public void testRemoveDeviceManagementService() {
|
||||
DeviceManagementService sourceProvider = new TestDeviceManagementService();
|
||||
DeviceManagementService sourceProvider = new TestDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
try {
|
||||
this.getRepository().removeDeviceManagementProvider(sourceProvider);
|
||||
} catch (DeviceManagementException e) {
|
||||
Assert.fail("Unexpected error occurred while invoking removeDeviceManagementProvider functionality", e);
|
||||
}
|
||||
DeviceManagementService targetProvider =
|
||||
this.getRepository().getDeviceManagementService(TestDeviceManagementService.DEVICE_TYPE_TEST);
|
||||
this.getRepository().getDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
Assert.assertNull(targetProvider);
|
||||
}
|
||||
|
||||
|
||||
@ -21,58 +21,64 @@ import org.wso2.carbon.device.mgt.common.*;
|
||||
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
||||
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
||||
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
||||
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TestDeviceManagementService implements DeviceManagementService {
|
||||
|
||||
public static final String DEVICE_TYPE_TEST = "Test";
|
||||
|
||||
private String providerType;
|
||||
|
||||
public TestDeviceManagementService(String deviceType){
|
||||
providerType = deviceType;
|
||||
}
|
||||
@Override
|
||||
public String getType() {
|
||||
return TestDeviceManagementService.DEVICE_TYPE_TEST;
|
||||
return providerType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() throws DeviceManagementException {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeviceManager getDeviceManager() {
|
||||
return null;
|
||||
return new TestDeviceManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplicationManager getApplicationManager() {
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Application[] getApplications(String domain, int pageNumber,
|
||||
int size) throws ApplicationManagementException {
|
||||
return new Application[0];
|
||||
public Application[] getApplications(String domain, int pageNumber, int size)
|
||||
throws ApplicationManagementException {
|
||||
return new Application[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateApplicationStatus(DeviceIdentifier deviceId, Application application,
|
||||
String status) throws ApplicationManagementException {
|
||||
|
||||
public void updateApplicationStatus(DeviceIdentifier deviceId, Application application, String status)
|
||||
throws ApplicationManagementException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getApplicationStatus(DeviceIdentifier deviceId,
|
||||
Application application) throws ApplicationManagementException {
|
||||
return null;
|
||||
public String getApplicationStatus(DeviceIdentifier deviceId, Application application)
|
||||
throws ApplicationManagementException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void installApplication(Operation operation,
|
||||
List<DeviceIdentifier> deviceIdentifiers) throws ApplicationManagementException {
|
||||
|
||||
}
|
||||
public void installApplication(Operation operation, List<DeviceIdentifier> deviceIdentifiers)
|
||||
throws ApplicationManagementException {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
package org.wso2.carbon.device.mgt.core;
|
||||
|
||||
import org.wso2.carbon.device.mgt.common.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TestDeviceManager implements DeviceManager {
|
||||
|
||||
@Override
|
||||
public FeatureManager getFeatureManager() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean enrollDevice(Device device) throws DeviceManagementException {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean modifyEnrollment(Device device) throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setActive(DeviceIdentifier deviceId, boolean status) throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Device> getAllDevices() throws DeviceManagementException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateDeviceInfo(DeviceIdentifier deviceIdentifier, Device device)
|
||||
throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
|
||||
throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isClaimable(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setStatus(DeviceIdentifier deviceId, String currentOwner, EnrolmentInfo.Status status)
|
||||
throws DeviceManagementException {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,88 @@
|
||||
package org.wso2.carbon.device.mgt.core.app.mgt;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
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.app.mgt.Application;
|
||||
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
|
||||
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
|
||||
import org.wso2.carbon.device.mgt.core.TestDeviceManagementService;
|
||||
import org.wso2.carbon.device.mgt.core.api.mgt.ApplicationManagementProviderService;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagerProviderServiceImpl;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
|
||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ApplicationManagementProviderServiceTest {
|
||||
|
||||
private ApplicationManagementProviderService appMgtProvider;
|
||||
private static final Log log = LogFactory.getLog(ApplicationManagementProviderServiceTest.class);
|
||||
private DeviceManagementPluginRepository deviceManagementPluginRepository = null;
|
||||
|
||||
@BeforeClass
|
||||
public void init() {
|
||||
deviceManagementPluginRepository = new DeviceManagementPluginRepository();
|
||||
TestDeviceManagementService testDeviceManagementService = new TestDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
try {
|
||||
deviceManagementPluginRepository.addDeviceManagementProvider(testDeviceManagementService);
|
||||
} catch (DeviceManagementException e) {
|
||||
String msg = "Error occurred while initiate plugins '" + TestDataHolder.TEST_DEVICE_TYPE + "'";
|
||||
log.error(msg, e);
|
||||
Assert.fail(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateApplicationTest(){
|
||||
|
||||
List<Application> applications = new ArrayList<Application>();
|
||||
|
||||
Application application1 = TestDataHolder.generateApplicationDummyData("org.wso2.app1");
|
||||
Application application2 = TestDataHolder.generateApplicationDummyData("org.wso2.app2");
|
||||
Application application3 = TestDataHolder.generateApplicationDummyData("org.wso2.app3");
|
||||
|
||||
applications.add(application1);
|
||||
applications.add(application2);
|
||||
applications.add(application3);
|
||||
|
||||
Device device = TestDataHolder.initialTestDevice;
|
||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
||||
deviceIdentifier.setId(TestDataHolder.initialDeviceIdentifier);
|
||||
deviceIdentifier.setType(device.getType());
|
||||
|
||||
AppManagementConfig appManagementConfig = new AppManagementConfig();
|
||||
appMgtProvider = new ApplicationManagerProviderServiceImpl(deviceManagementPluginRepository, true);
|
||||
|
||||
try {
|
||||
appMgtProvider.updateApplicationListInstalledInDevice(deviceIdentifier, applications);
|
||||
} catch (ApplicationManagementException appMgtEx){
|
||||
String msg = "Error occurred while updating app list '" + TestDataHolder.TEST_DEVICE_TYPE + "'";
|
||||
log.error(msg, appMgtEx);
|
||||
Assert.fail(msg, appMgtEx);
|
||||
}
|
||||
|
||||
Application application4 = TestDataHolder.generateApplicationDummyData("org.wso2.app3");
|
||||
applications = new ArrayList<Application>();
|
||||
applications.add(application4);
|
||||
applications.add(application3);
|
||||
|
||||
try {
|
||||
appMgtProvider.updateApplicationListInstalledInDevice(deviceIdentifier, applications);
|
||||
List<Application> installedApps = appMgtProvider.getApplicationListForDevice(deviceIdentifier);
|
||||
Assert.assertEquals(installedApps.size(),2,"Num of installed applications should be two");
|
||||
} catch (ApplicationManagementException appMgtEx){
|
||||
String msg = "Error occurred while updating app list '" + TestDataHolder.TEST_DEVICE_TYPE + "'";
|
||||
log.error(msg, appMgtEx);
|
||||
Assert.fail(msg, appMgtEx);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -16,7 +16,7 @@
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
package org.wso2.carbon.device.mgt.core.dao;
|
||||
package org.wso2.carbon.device.mgt.core.common;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@ -28,7 +28,7 @@ import org.testng.annotations.BeforeSuite;
|
||||
import org.w3c.dom.Document;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.core.TestUtils;
|
||||
import org.wso2.carbon.device.mgt.core.common.DataSourceConfig;
|
||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
@ -41,10 +41,10 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
|
||||
public abstract class BaseDeviceManagementDAOTest {
|
||||
public abstract class BaseDeviceManagementTest {
|
||||
|
||||
private DataSource dataSource;
|
||||
private static final Log log = LogFactory.getLog(BaseDeviceManagementDAOTest.class);
|
||||
private static final Log log = LogFactory.getLog(BaseDeviceManagementTest.class);
|
||||
|
||||
@BeforeSuite
|
||||
public void setupDataSource() throws Exception {
|
||||
@ -101,6 +101,8 @@ public abstract class BaseDeviceManagementDAOTest {
|
||||
conn.setAutoCommit(false);
|
||||
|
||||
this.cleanupEnrolmentData(conn);
|
||||
this.cleanApplicationMappingData(conn);
|
||||
this.cleanApplicationData(conn);
|
||||
this.cleanupDeviceData(conn);
|
||||
this.cleanupDeviceTypeData(conn);
|
||||
|
||||
@ -127,6 +129,31 @@ public abstract class BaseDeviceManagementDAOTest {
|
||||
}
|
||||
}
|
||||
|
||||
private void cleanApplicationMappingData(Connection conn) throws SQLException{
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
stmt = conn.prepareStatement("DELETE FROM DM_DEVICE_APPLICATION_MAPPING");
|
||||
stmt.execute();
|
||||
} finally {
|
||||
if (stmt != null) {
|
||||
stmt.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void cleanApplicationData(Connection conn) throws SQLException{
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
stmt = conn.prepareStatement("DELETE FROM DM_APPLICATION");
|
||||
stmt.execute();
|
||||
} finally {
|
||||
if (stmt != null) {
|
||||
stmt.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void cleanupEnrolmentData(Connection conn) throws SQLException {
|
||||
PreparedStatement stmt = null;
|
||||
try {
|
||||
@ -0,0 +1,58 @@
|
||||
package org.wso2.carbon.device.mgt.core.common;
|
||||
|
||||
import org.wso2.carbon.device.mgt.common.Device;
|
||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
||||
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
||||
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Properties;
|
||||
|
||||
public class TestDataHolder {
|
||||
|
||||
public static Device initialTestDevice;
|
||||
public static DeviceType initialTestDeviceType;
|
||||
public static String TEST_DEVICE_TYPE = "Test";
|
||||
public static Integer SUPER_TENANT_ID = -1234;
|
||||
public static String initialDeviceIdentifier = "12345";
|
||||
|
||||
public static Device generateDummyDeviceData(String deviceType){
|
||||
|
||||
Device device = new Device();
|
||||
EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
|
||||
enrolmentInfo.setDateOfEnrolment(new Date().getTime());
|
||||
enrolmentInfo.setDateOfLastUpdate(new Date().getTime());
|
||||
enrolmentInfo.setOwner("admin");
|
||||
enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.BYOD);
|
||||
enrolmentInfo.setStatus(EnrolmentInfo.Status.CREATED);
|
||||
device.setEnrolmentInfo(enrolmentInfo);
|
||||
device.setDescription("Test Description");
|
||||
device.setDeviceIdentifier("12345");
|
||||
device.setType(deviceType);
|
||||
return device;
|
||||
}
|
||||
|
||||
public static DeviceType generateDeviceTypeData(String devTypeName){
|
||||
DeviceType deviceType = new DeviceType();
|
||||
deviceType.setName(devTypeName);
|
||||
return deviceType;
|
||||
}
|
||||
|
||||
public static Application generateApplicationDummyData(String appIdentifier){
|
||||
|
||||
Application application = new Application();
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty("test1","testVal");
|
||||
|
||||
application.setName("SimpleCalculator");
|
||||
application.setCategory("TestCategory");
|
||||
application.setApplicationIdentifier(appIdentifier);
|
||||
application.setType("TestType");
|
||||
application.setVersion("1.0.0");
|
||||
application.setImageUrl("http://test.org/image/");
|
||||
application.setLocationUrl("http://test.org/location/");
|
||||
application.setAppProperties(properties);
|
||||
|
||||
return application;
|
||||
}
|
||||
}
|
||||
@ -24,33 +24,25 @@ import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||
|
||||
import java.util.Properties;
|
||||
public class ApplicationPersistenceTests extends BaseDeviceManagementTest {
|
||||
|
||||
public class ApplicationPersistenceDAOTests extends BaseDeviceManagementDAOTest {
|
||||
|
||||
private static final Log log = LogFactory.getLog(ApplicationPersistenceDAOTests.class);
|
||||
private static final Log log = LogFactory.getLog(ApplicationPersistenceTests.class);
|
||||
private ApplicationDAO applicationDAO = DeviceManagementDAOFactory.getApplicationDAO();
|
||||
|
||||
@Test
|
||||
public void testAddApplication() {
|
||||
/* Initializing source application bean to be tested */
|
||||
Properties properties = new Properties();
|
||||
Application source = new Application();
|
||||
source.setName("SimpleCalculator");
|
||||
source.setCategory("TestCategory");
|
||||
source.setApplicationIdentifier("com.simple.calculator");
|
||||
source.setType("TestType");
|
||||
source.setVersion("1.0.0");
|
||||
source.setImageUrl("http://test.org/image/");
|
||||
source.setLocationUrl("http://test.org/location/");
|
||||
|
||||
/* Adding dummy application to the application store */
|
||||
String testAppIdentifier = "test sample1";
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
applicationDAO.addApplication(source, -1234);
|
||||
applicationDAO.addApplication(TestDataHolder.generateApplicationDummyData(testAppIdentifier), -1234);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
log.error("Error occurred while adding application '" + source.getName() + "'", e);
|
||||
log.error("Error occurred while adding application test sample1", e);
|
||||
} finally {
|
||||
try {
|
||||
DeviceManagementDAOFactory.closeConnection();
|
||||
@ -61,22 +53,22 @@ public class ApplicationPersistenceDAOTests extends BaseDeviceManagementDAOTest
|
||||
/* Retrieving the application by its name */
|
||||
Application target = null;
|
||||
try {
|
||||
target = this.getApplication(source.getApplicationIdentifier(), -1234);
|
||||
target = this.getApplication(testAppIdentifier, -1234);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while retrieving application info";
|
||||
log.error(msg, e);
|
||||
Assert.fail(msg, e);
|
||||
}
|
||||
|
||||
Assert.assertEquals(target.getApplicationIdentifier(), source.getApplicationIdentifier(), "Application added is not as same as " +
|
||||
Assert.assertEquals(target.getApplicationIdentifier(), testAppIdentifier, "Application added is not as same as " +
|
||||
"what's " +
|
||||
"retrieved");
|
||||
}
|
||||
|
||||
private Application getApplication(String packageName, int tenantId) throws DeviceManagementDAOException {
|
||||
private Application getApplication(String appIdentifier, int tenantId) throws DeviceManagementDAOException {
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
return applicationDAO.getApplication(packageName, tenantId);
|
||||
return applicationDAO.getApplication(appIdentifier, tenantId);
|
||||
} finally {
|
||||
try {
|
||||
DeviceManagementDAOFactory.closeConnection();
|
||||
@ -21,27 +21,24 @@ package org.wso2.carbon.device.mgt.core.dao;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
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.EnrolmentInfo;
|
||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo.OwnerShip;
|
||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo.Status;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.core.TestUtils;
|
||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.Date;
|
||||
|
||||
public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
public class DevicePersistTests extends BaseDeviceManagementTest {
|
||||
|
||||
DeviceDAO deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
|
||||
DeviceTypeDAO deviceTypeDAO = DeviceManagementDAOFactory.getDeviceTypeDAO();
|
||||
|
||||
private static final Log log = LogFactory.getLog(DeviceManagementDAOTests.class);
|
||||
private static final Log log = LogFactory.getLog(DevicePersistTests.class);
|
||||
|
||||
@BeforeClass
|
||||
@Override
|
||||
@ -51,7 +48,7 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
|
||||
@Test
|
||||
public void testAddDeviceTypeTest() {
|
||||
DeviceType deviceType = this.loadDummyDeviceType();
|
||||
DeviceType deviceType = TestDataHolder.generateDeviceTypeData(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
deviceTypeDAO.addDeviceType(deviceType);
|
||||
@ -67,31 +64,31 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
}
|
||||
}
|
||||
|
||||
int targetTypeId = -1;
|
||||
Integer targetTypeId = null;
|
||||
try {
|
||||
targetTypeId = this.getDeviceTypeId();
|
||||
targetTypeId = this.getDeviceTypeId(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while retrieving target device type id";
|
||||
log.error(msg, e);
|
||||
Assert.fail(msg, e);
|
||||
}
|
||||
|
||||
Assert.assertNotNull(targetTypeId, "Device Type Id is null");
|
||||
deviceType.setId(targetTypeId);
|
||||
TestDataHolder.initialTestDeviceType = deviceType;
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = {"testAddDeviceTypeTest"})
|
||||
public void testAddDeviceTest() {
|
||||
DeviceType deviceType = this.loadDummyDeviceType();
|
||||
deviceType.setId(1);
|
||||
|
||||
int tenantId = -1234;
|
||||
Device device = this.loadDummyDevice();
|
||||
int tenantId = TestDataHolder.SUPER_TENANT_ID;
|
||||
Device device = TestDataHolder.generateDummyDeviceData(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
int deviceId = deviceDAO.addDevice(deviceType.getId(), device, tenantId);
|
||||
int deviceId = deviceDAO.addDevice(TestDataHolder.initialTestDeviceType.getId(), device, tenantId);
|
||||
device.setId(deviceId);
|
||||
deviceDAO.addEnrollment(device, tenantId);
|
||||
TestDataHolder.initialTestDevice = device;
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while adding '" + device.getType() + "' device with the identifier '" +
|
||||
device.getDeviceIdentifier() + "'";
|
||||
@ -107,7 +104,8 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
|
||||
int targetId = -1;
|
||||
try {
|
||||
targetId = this.getDeviceId();
|
||||
targetId = this.getDeviceId(TestDataHolder.initialTestDevice.getDeviceIdentifier(),
|
||||
TestDataHolder.SUPER_TENANT_ID);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while retrieving device id";
|
||||
log.error(msg, e);
|
||||
@ -117,26 +115,7 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
device.getType() + "' carrying the identifier '" + device.getDeviceIdentifier() + "', is null");
|
||||
}
|
||||
|
||||
private void addDeviceEnrolment() {
|
||||
Device device = this.loadDummyDevice();
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
deviceDAO.addEnrollment(device, -1234);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while adding enrolment configuration upon '" + device.getType() +
|
||||
"' device with the identifier '" + device.getDeviceIdentifier() + "'";
|
||||
log.error(msg, e);
|
||||
Assert.fail(msg, e);
|
||||
} finally {
|
||||
try {
|
||||
DeviceManagementDAOFactory.closeConnection();
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
log.warn("Error occurred while closing the connection", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int getDeviceId() throws DeviceManagementDAOException {
|
||||
private int getDeviceId(String deviceIdentification, int tenantId) throws DeviceManagementDAOException {
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
ResultSet rs = null;
|
||||
@ -147,8 +126,8 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
conn = getDataSource().getConnection();
|
||||
String sql = "SELECT ID FROM DM_DEVICE WHERE DEVICE_IDENTIFICATION = ? AND TENANT_ID = ?";
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, "111");
|
||||
stmt.setInt(2, -1234);
|
||||
stmt.setString(1, deviceIdentification);
|
||||
stmt.setInt(2, tenantId);
|
||||
|
||||
rs = stmt.executeQuery();
|
||||
if (rs.next()) {
|
||||
@ -163,18 +142,17 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
}
|
||||
}
|
||||
|
||||
private int getDeviceTypeId() throws DeviceManagementDAOException {
|
||||
private int getDeviceTypeId(String deviceTypeName) throws DeviceManagementDAOException {
|
||||
int id = -1;
|
||||
Connection conn = null;
|
||||
PreparedStatement stmt = null;
|
||||
String sql = "SELECT ID, NAME FROM DM_DEVICE_TYPE WHERE NAME = ?";
|
||||
|
||||
DeviceType deviceType = this.loadDummyDeviceType();
|
||||
try {
|
||||
Assert.assertNotNull(getDataSource(), "Data Source is not initialized properly");
|
||||
conn = getDataSource().getConnection();
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setString(1, deviceType.getName());
|
||||
stmt.setString(1, deviceTypeName);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
if (rs.next()) {
|
||||
@ -191,11 +169,14 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
|
||||
@Test(dependsOnMethods = "testAddDeviceTest")
|
||||
public void testSetEnrolmentStatus() {
|
||||
Device device = this.loadDummyDevice();
|
||||
|
||||
Device device = TestDataHolder.initialTestDevice;
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
DeviceIdentifier deviceId = new DeviceIdentifier(device.getDeviceIdentifier(), device.getType());
|
||||
deviceDAO.setEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), Status.ACTIVE, -1234);
|
||||
deviceDAO.setEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), Status.ACTIVE,
|
||||
TestDataHolder.SUPER_TENANT_ID);
|
||||
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while setting enrolment status";
|
||||
log.error(msg, e);
|
||||
@ -209,24 +190,26 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
}
|
||||
Status target = null;
|
||||
try {
|
||||
target = this.getEnrolmentStatus();
|
||||
target = this.getEnrolmentStatus(device.getDeviceIdentifier(), device.getType(),
|
||||
TestDataHolder.SUPER_TENANT_ID);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while retrieving the target enrolment status";
|
||||
log.error(msg, e);
|
||||
Assert.fail(msg, e);
|
||||
}
|
||||
|
||||
Assert.assertNotNull(target, "Enrolment status retrieved for the device carrying its identifier as '" +
|
||||
device.getDeviceIdentifier() + "' is null");
|
||||
Assert.assertEquals(target, Status.ACTIVE, "Enrolment status retrieved is not as same as what's configured");
|
||||
}
|
||||
|
||||
private Status getEnrolmentStatus() throws DeviceManagementDAOException {
|
||||
Device device = this.loadDummyDevice();
|
||||
private Status getEnrolmentStatus(String identifier, String deviceType, int tenantId)
|
||||
throws DeviceManagementDAOException {
|
||||
|
||||
Device device = TestDataHolder.generateDummyDeviceData("ios");
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
DeviceIdentifier deviceId = new DeviceIdentifier(device.getDeviceIdentifier(), device.getType());
|
||||
return deviceDAO.getEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), -1234);
|
||||
DeviceIdentifier deviceId = new DeviceIdentifier(identifier, deviceType);
|
||||
return deviceDAO.getEnrolmentStatus(deviceId, device.getEnrolmentInfo().getOwner(), tenantId);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
throw new DeviceManagementDAOException("Error occurred while retrieving the current status of the " +
|
||||
"enrolment", e);
|
||||
@ -238,24 +221,4 @@ public class DeviceManagementDAOTests extends BaseDeviceManagementDAOTest {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Device loadDummyDevice() {
|
||||
Device device = new Device();
|
||||
EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
|
||||
enrolmentInfo.setDateOfEnrolment(new Date().getTime());
|
||||
enrolmentInfo.setDateOfLastUpdate(new Date().getTime());
|
||||
enrolmentInfo.setOwner("admin");
|
||||
enrolmentInfo.setOwnership(OwnerShip.BYOD);
|
||||
enrolmentInfo.setStatus(Status.CREATED);
|
||||
device.setEnrolmentInfo(enrolmentInfo);
|
||||
device.setDescription("Test Description");
|
||||
device.setDeviceIdentifier("1234");
|
||||
device.setType(this.loadDummyDeviceType().getName());
|
||||
return device;
|
||||
}
|
||||
|
||||
private DeviceType loadDummyDeviceType() {
|
||||
return new DeviceType("iOS");
|
||||
}
|
||||
|
||||
}
|
||||
@ -24,18 +24,17 @@ import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
||||
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||
|
||||
import java.util.Date;
|
||||
public class EnrolmentPersistenceTests extends BaseDeviceManagementTest {
|
||||
|
||||
public class EnrolmentPersistenceDAOTests extends BaseDeviceManagementDAOTest {
|
||||
|
||||
private static final Log log = LogFactory.getLog(EnrolmentPersistenceDAOTests.class);
|
||||
private static final Log log = LogFactory.getLog(EnrolmentPersistenceTests.class);
|
||||
private EnrolmentDAO enrolmentDAO = DeviceManagementDAOFactory.getEnrollmentDAO();
|
||||
|
||||
@Test
|
||||
public void testAddEnrolment() {
|
||||
int deviceId = 1234;
|
||||
int deviceId = TestDataHolder.initialTestDevice.getId();
|
||||
String owner = "admin";
|
||||
|
||||
/* Initializing source enrolment configuration bean to be tested */
|
||||
@ -46,7 +45,7 @@ public class EnrolmentPersistenceDAOTests extends BaseDeviceManagementDAOTest {
|
||||
/* Adding dummy enrolment configuration to the device management metadata store */
|
||||
try {
|
||||
DeviceManagementDAOFactory.openConnection();
|
||||
enrolmentDAO.addEnrollment(deviceId, source, -1234);
|
||||
enrolmentDAO.addEnrollment(deviceId, source, TestDataHolder.SUPER_TENANT_ID);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
log.error("Error occurred while adding enrollment", e);
|
||||
} finally {
|
||||
@ -59,7 +58,7 @@ public class EnrolmentPersistenceDAOTests extends BaseDeviceManagementDAOTest {
|
||||
/* Retrieving the enrolment associated with the given deviceId and owner */
|
||||
EnrolmentInfo target = null;
|
||||
try {
|
||||
target = this.getEnrolmentConfig(deviceId, owner, -1234);
|
||||
target = this.getEnrolmentConfig(deviceId, owner, TestDataHolder.SUPER_TENANT_ID);
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
String msg = "Error occurred while retrieving application info";
|
||||
log.error(msg, e);
|
||||
@ -0,0 +1,72 @@
|
||||
package org.wso2.carbon.device.mgt.core.service;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.context.CarbonContext;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.context.internal.CarbonContextDataHolder;
|
||||
import org.wso2.carbon.device.mgt.common.Device;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||
import org.wso2.carbon.device.mgt.core.DeviceManagementPluginRepository;
|
||||
import org.wso2.carbon.device.mgt.core.TestDeviceManagementService;
|
||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
||||
import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
|
||||
|
||||
public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTest {
|
||||
|
||||
private static final Log log = LogFactory.getLog(DeviceManagementProviderServiceTest.class);
|
||||
DeviceManagementProviderService deviceManagementProviderService = null;
|
||||
|
||||
|
||||
@BeforeClass
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
initDatSource();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnrollment() {
|
||||
|
||||
try {
|
||||
DeviceManagementPluginRepository deviceManagementPluginRepository = new DeviceManagementPluginRepository();
|
||||
TestDeviceManagementService testDeviceManagementService = new TestDeviceManagementService(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
deviceManagementPluginRepository.addDeviceManagementProvider(testDeviceManagementService);
|
||||
|
||||
deviceManagementProviderService = new DeviceManagementProviderServiceImpl(deviceManagementPluginRepository,
|
||||
true);
|
||||
DeviceManagerUtil.registerDeviceType(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
DeviceManagerUtil.currentTenant.set(TestDataHolder.SUPER_TENANT_ID);
|
||||
|
||||
Device device = TestDataHolder.generateDummyDeviceData(TestDataHolder.TEST_DEVICE_TYPE);
|
||||
boolean isEnrolled = deviceManagementProviderService.enrollDevice(device);
|
||||
|
||||
Assert.assertEquals(isEnrolled,true,"Enrolment fail");
|
||||
if (isEnrolled){
|
||||
TestDataHolder.initialTestDevice = device;
|
||||
}
|
||||
|
||||
} catch (DeviceManagementException e) {
|
||||
String msg = "Error occurred while adding device type '" + TestDataHolder.TEST_DEVICE_TYPE + "'";
|
||||
log.error(msg, e);
|
||||
Assert.fail(msg, e);
|
||||
} finally {
|
||||
try {
|
||||
DeviceManagementDAOFactory.closeConnection();
|
||||
} catch (DeviceManagementDAOException e) {
|
||||
log.warn("Error occurred while closing the connection", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void cleanResources(){
|
||||
}
|
||||
}
|
||||
@ -18,7 +18,7 @@
|
||||
-->
|
||||
|
||||
<DataSourceConfig>
|
||||
<Url>jdbc:h2:mem:cdm-test-db;DB_CLOSE_DELAY=-1</Url>
|
||||
<Url>jdbc:h2:mem:cdm-test-db;DB_CLOSE_ON_EXIT=FALSE;MVCC=true</Url>
|
||||
<DriverClassName>org.h2.Driver</DriverClassName>
|
||||
<User>wso2carbon</User>
|
||||
<Password>wso2carbon</Password>
|
||||
|
||||
@ -24,11 +24,17 @@
|
||||
|
||||
<test name="DAO Unit Tests" preserve-order="true">
|
||||
<classes>
|
||||
<class name="org.wso2.carbon.device.mgt.core.dao.BaseDeviceManagementDAOTest"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOTests"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.dao.DevicePersistTests"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.DeviceManagementRepositoryTests"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.DeviceManagementConfigTests"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.dao.ApplicationPersistenceDAOTests"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.dao.ApplicationPersistenceTests"/>
|
||||
</classes>
|
||||
</test>
|
||||
<test name="Service Unit Tests" preserve-order="true">
|
||||
<classes>
|
||||
<class name="org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceTest"/>
|
||||
<class name="org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderServiceTest"/>
|
||||
</classes>
|
||||
</test>
|
||||
</suite>
|
||||
@ -98,6 +98,4 @@ public class PolicyManagerUtil {
|
||||
}
|
||||
return tenantId;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -27,7 +27,6 @@ public class APIMapperContextListener implements LifecycleListener {
|
||||
@Override
|
||||
public void lifecycleEvent(LifecycleEvent lifecycleEvent) {
|
||||
if (Lifecycle.AFTER_INIT_EVENT.equals(lifecycleEvent.getType())) {
|
||||
System.out.println("Deployeddd");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user