forked from community/device-mgt-core
parent
26022daf03
commit
62d30cbf84
@ -1,183 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2016, 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.core.search;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
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.search.Condition;
|
|
||||||
import org.wso2.carbon.device.mgt.common.search.SearchContext;
|
|
||||||
import org.wso2.carbon.device.mgt.core.common.BaseDeviceManagementTest;
|
|
||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
|
||||||
import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService;
|
|
||||||
import org.wso2.carbon.device.mgt.core.search.mgt.impl.SearchManagerServiceImpl;
|
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class SearchDevice extends BaseDeviceManagementTest {
|
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(SearchDevice.class);
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
@Override
|
|
||||||
public void init() throws Exception {
|
|
||||||
DeviceManagementProviderService deviceManagementProviderService = new DeviceManagementProviderServiceImpl();
|
|
||||||
DeviceManagementDataHolder.getInstance().setDeviceManagementProvider(deviceManagementProviderService);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void searchDeviceDetails() throws Exception {
|
|
||||||
|
|
||||||
SearchContext context = new SearchContext();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
|
|
||||||
|
|
||||||
Condition cond = new Condition();
|
|
||||||
cond.setKey("BATTERY_VOLTAGE");
|
|
||||||
cond.setOperator("=");
|
|
||||||
cond.setValue("40");
|
|
||||||
cond.setState(Condition.State.AND);
|
|
||||||
conditions.add(cond);
|
|
||||||
|
|
||||||
// Condition cond2 = new Condition();
|
|
||||||
// cond2.setKey("CPU_USAGE");
|
|
||||||
// cond2.setOperator(">");
|
|
||||||
// cond2.setValue("40");
|
|
||||||
// cond2.setState(Condition.State.OR);
|
|
||||||
// conditions.add(cond2);
|
|
||||||
//
|
|
||||||
// Condition cond3 = new Condition();
|
|
||||||
// cond3.setKey("LOCATION");
|
|
||||||
// cond3.setOperator("=");
|
|
||||||
// cond3.setValue("Colombo");
|
|
||||||
// cond3.setState(Condition.State.AND);
|
|
||||||
// conditions.add(cond3);
|
|
||||||
|
|
||||||
context.setConditions(conditions);
|
|
||||||
|
|
||||||
SearchManagerService service = new SearchManagerServiceImpl();
|
|
||||||
List<Device> devices = service.search(context);
|
|
||||||
|
|
||||||
Gson gson = new Gson();
|
|
||||||
String bbbb = gson.toJson(devices);
|
|
||||||
log.info(bbbb);
|
|
||||||
|
|
||||||
|
|
||||||
for (Device device : devices) {
|
|
||||||
log.debug(device.getDescription());
|
|
||||||
log.debug(device.getDeviceIdentifier());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void doValidLocationSearch() throws Exception {
|
|
||||||
|
|
||||||
SearchContext context = new SearchContext();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
|
|
||||||
Condition cond = new Condition();
|
|
||||||
cond.setKey("LOCATION");
|
|
||||||
cond.setOperator("=");
|
|
||||||
cond.setValue("Karan");
|
|
||||||
cond.setState(Condition.State.AND);
|
|
||||||
conditions.add(cond);
|
|
||||||
|
|
||||||
context.setConditions(conditions);
|
|
||||||
|
|
||||||
SearchManagerService service = new SearchManagerServiceImpl();
|
|
||||||
List<Device> devices = service.search(context);
|
|
||||||
|
|
||||||
Gson gson = new Gson();
|
|
||||||
String bbbb = gson.toJson(devices);
|
|
||||||
log.info("Valid Search " + bbbb);
|
|
||||||
|
|
||||||
|
|
||||||
for (Device device : devices) {
|
|
||||||
log.debug(device.getDescription());
|
|
||||||
log.debug(device.getDeviceIdentifier());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void doInvalidLocationSearch() throws Exception {
|
|
||||||
|
|
||||||
SearchContext context = new SearchContext();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
|
|
||||||
Condition cond = new Condition();
|
|
||||||
cond.setKey("LOCATION");
|
|
||||||
cond.setOperator("=");
|
|
||||||
cond.setValue("Colombo");
|
|
||||||
cond.setState(Condition.State.AND);
|
|
||||||
conditions.add(cond);
|
|
||||||
|
|
||||||
context.setConditions(conditions);
|
|
||||||
|
|
||||||
SearchManagerService service = new SearchManagerServiceImpl();
|
|
||||||
List<Device> devices = service.search(context);
|
|
||||||
|
|
||||||
Gson gson = new Gson();
|
|
||||||
String bbbb = gson.toJson(devices);
|
|
||||||
log.info("Invalid Search " + bbbb);
|
|
||||||
|
|
||||||
|
|
||||||
for (Device device : devices) {
|
|
||||||
log.debug(device.getDescription());
|
|
||||||
log.debug(device.getDeviceIdentifier());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void doStringSearch() throws Exception {
|
|
||||||
|
|
||||||
SearchContext context = new SearchContext();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
|
|
||||||
Condition cond = new Condition();
|
|
||||||
cond.setKey("deviceModel");
|
|
||||||
cond.setOperator("=");
|
|
||||||
cond.setValue("SM-T520");
|
|
||||||
cond.setState(Condition.State.AND);
|
|
||||||
conditions.add(cond);
|
|
||||||
|
|
||||||
context.setConditions(conditions);
|
|
||||||
|
|
||||||
SearchManagerService service = new SearchManagerServiceImpl();
|
|
||||||
List<Device> devices = service.search(context);
|
|
||||||
|
|
||||||
Gson gson = new Gson();
|
|
||||||
String bbbb = gson.toJson(devices);
|
|
||||||
log.info("Invalid Search " + bbbb);
|
|
||||||
|
|
||||||
|
|
||||||
for (Device device : devices) {
|
|
||||||
log.debug(device.getDescription());
|
|
||||||
log.debug(device.getDeviceIdentifier());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,293 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, 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.core.search;
|
||||||
|
|
||||||
|
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.search.Condition;
|
||||||
|
import org.wso2.carbon.device.mgt.common.search.SearchContext;
|
||||||
|
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.internal.DeviceManagementDataHolder;
|
||||||
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
||||||
|
import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService;
|
||||||
|
import org.wso2.carbon.device.mgt.core.search.mgt.SearchMgtException;
|
||||||
|
import org.wso2.carbon.device.mgt.core.search.mgt.impl.SearchManagerServiceImpl;
|
||||||
|
import org.wso2.carbon.device.mgt.core.search.util.Utils;
|
||||||
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||||
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl;
|
||||||
|
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SearchManagementServiceTest extends BaseDeviceManagementTest {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(SearchManagementServiceTest.class);
|
||||||
|
private static List<DeviceIdentifier> deviceIdentifiers = new ArrayList<>();
|
||||||
|
private static String DEVICE_ID_PREFIX = "SEARCH-DEVICE-ID-";
|
||||||
|
private static String DEVICE_TYPE = "SEARCH_TYPE";
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() throws Exception {
|
||||||
|
DeviceManagementDataHolder.getInstance().getDeviceAccessAuthorizationService();
|
||||||
|
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
deviceIdentifiers.add(new DeviceIdentifier(DEVICE_ID_PREFIX + i, DEVICE_TYPE));
|
||||||
|
}
|
||||||
|
DeviceManagementProviderService deviceMgtService = new DeviceManagementProviderServiceImpl();
|
||||||
|
DeviceManagementServiceComponent.notifyStartupListeners();
|
||||||
|
DeviceManagementDataHolder.getInstance().setDeviceManagementProvider(deviceMgtService);
|
||||||
|
deviceMgtService.registerDeviceType(new TestDeviceManagementService(DEVICE_TYPE,
|
||||||
|
MultitenantConstants.SUPER_TENANT_DOMAIN_NAME));
|
||||||
|
|
||||||
|
List<Device> devices = TestDataHolder.generateDummyDeviceData(deviceIdentifiers);
|
||||||
|
for (Device device : devices) {
|
||||||
|
device.setDeviceInfo(Utils.getDeviceInfo());
|
||||||
|
deviceMgtService.enrollDevice(device);
|
||||||
|
}
|
||||||
|
List<Device> returnedDevices = deviceMgtService.getAllDevices(DEVICE_TYPE, true);
|
||||||
|
for (Device device : returnedDevices) {
|
||||||
|
if (!device.getDeviceIdentifier().startsWith(DEVICE_ID_PREFIX)) {
|
||||||
|
throw new Exception("Incorrect device with ID - " + device.getDeviceIdentifier() + " returned!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Search for device details.")
|
||||||
|
public void searchDeviceDetails() throws Exception {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("batteryVoltage");
|
||||||
|
cond.setOperator("=");
|
||||||
|
cond.setValue("40");
|
||||||
|
cond.setState(Condition.State.OR);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> devices = service.search(context);
|
||||||
|
Assert.assertTrue(devices != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Search devices by location")
|
||||||
|
public void doValidLocationSearch() throws Exception {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("LOCATION");
|
||||||
|
cond.setOperator("=");
|
||||||
|
cond.setValue("Karandeniya");
|
||||||
|
cond.setState(Condition.State.AND);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> devices = service.search(context);
|
||||||
|
Assert.assertTrue(devices != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Search devices by location.")
|
||||||
|
public void doInvalidLocationSearch() throws Exception {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("LOCATION");
|
||||||
|
cond.setOperator("=");
|
||||||
|
cond.setValue("Colombo");
|
||||||
|
cond.setState(Condition.State.AND);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> devices = service.search(context);
|
||||||
|
Assert.assertTrue(devices.size() == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStringSearch() throws Exception {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("deviceModel");
|
||||||
|
cond.setOperator("=");
|
||||||
|
cond.setValue("SM-T520");
|
||||||
|
cond.setState(Condition.State.AND);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> devices = service.search(context);
|
||||||
|
|
||||||
|
Assert.assertTrue(devices != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expectedExceptions = {SearchMgtException.class})
|
||||||
|
public void testInvalidOperator() throws SearchMgtException {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("deviceModel");
|
||||||
|
cond.setOperator("=/");
|
||||||
|
cond.setValue("SM-T520");
|
||||||
|
cond.setState(Condition.State.OR);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> devices = service.search(context);
|
||||||
|
|
||||||
|
Assert.assertTrue(devices != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Test for search updated devices in given time.")
|
||||||
|
public void testGetUpdatedDevices() throws SearchMgtException {
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> updatedDevices = service.getUpdated(Calendar.getInstance().getTimeInMillis());
|
||||||
|
Assert.assertEquals(updatedDevices.size(), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expectedExceptions = {SearchMgtException.class}, description = "Test for invalid number")
|
||||||
|
public void testInvalidNumber() throws SearchMgtException {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("batteryLevel");
|
||||||
|
cond.setOperator("=");
|
||||||
|
cond.setValue("bbb");
|
||||||
|
cond.setState(Condition.State.OR);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
service.search(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Test multiple search conditions")
|
||||||
|
public void testMultipleConditions() throws SearchMgtException {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("batteryLevel");
|
||||||
|
cond.setOperator("%");
|
||||||
|
cond.setValue("40");
|
||||||
|
cond.setState(Condition.State.OR);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
Condition cond2 = new Condition();
|
||||||
|
cond2.setKey("availableTotalMemory");
|
||||||
|
cond2.setOperator("=");
|
||||||
|
cond2.setValue("40.0");
|
||||||
|
cond2.setState(Condition.State.OR);
|
||||||
|
conditions.add(cond2);
|
||||||
|
|
||||||
|
Condition cond3 = new Condition();
|
||||||
|
cond3.setKey("LOCATION");
|
||||||
|
cond3.setOperator("=");
|
||||||
|
cond3.setValue("Karandeniya");
|
||||||
|
cond3.setState(Condition.State.OR);
|
||||||
|
conditions.add(cond3);
|
||||||
|
|
||||||
|
Condition cond4 = new Condition();
|
||||||
|
cond4.setKey("deviceModel");
|
||||||
|
cond4.setOperator("%");
|
||||||
|
cond4.setValue("SM-T520");
|
||||||
|
cond4.setState(Condition.State.AND);
|
||||||
|
conditions.add(cond4);
|
||||||
|
|
||||||
|
Condition cond5 = new Condition();
|
||||||
|
cond5.setKey("vendor");
|
||||||
|
cond5.setOperator("%");
|
||||||
|
cond5.setValue("Samsung");
|
||||||
|
cond5.setState(Condition.State.AND);
|
||||||
|
conditions.add(cond5);
|
||||||
|
|
||||||
|
Condition cond6 = new Condition();
|
||||||
|
cond6.setKey("osVersion");
|
||||||
|
cond6.setOperator("%");
|
||||||
|
cond6.setValue("Marshmellow");
|
||||||
|
cond6.setState(Condition.State.OR);
|
||||||
|
conditions.add(cond6);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> devices = service.search(context);
|
||||||
|
Assert.assertTrue(devices != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Test with wildcard operator")
|
||||||
|
public void testWithWildcardOperator() throws SearchMgtException {
|
||||||
|
SearchContext context = new SearchContext();
|
||||||
|
List<Condition> conditions = new ArrayList<>();
|
||||||
|
|
||||||
|
Condition cond = new Condition();
|
||||||
|
cond.setKey("batteryLevel");
|
||||||
|
cond.setOperator("=");
|
||||||
|
cond.setValue("40");
|
||||||
|
cond.setState(Condition.State.AND);
|
||||||
|
conditions.add(cond);
|
||||||
|
|
||||||
|
Condition condition2 = new Condition();
|
||||||
|
condition2.setKey("LOCATION");
|
||||||
|
condition2.setOperator("%");
|
||||||
|
condition2.setValue("Karandeniya");
|
||||||
|
condition2.setState(Condition.State.OR);
|
||||||
|
|
||||||
|
Condition condition3 = new Condition();
|
||||||
|
condition3.setKey("internalAvailableMemory");
|
||||||
|
condition3.setOperator("!=");
|
||||||
|
condition3.setValue("23.2");
|
||||||
|
condition2.setState(Condition.State.AND);
|
||||||
|
|
||||||
|
Condition condition4 = new Condition();
|
||||||
|
condition4.setKey("connectionType");
|
||||||
|
condition4.setOperator("%");
|
||||||
|
condition4.setValue("DIALOG");
|
||||||
|
condition4.setState(Condition.State.AND);
|
||||||
|
|
||||||
|
conditions.add(condition2);
|
||||||
|
|
||||||
|
context.setConditions(conditions);
|
||||||
|
|
||||||
|
SearchManagerService service = new SearchManagerServiceImpl();
|
||||||
|
List<Device> devices = service.search(context);
|
||||||
|
Assert.assertTrue(devices != null);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue