Added tests for predication queries
This commit is contained in:
parent
02f928b918
commit
112b92503e
@ -925,7 +925,9 @@ public abstract class BaseEntityServiceTest extends AbstractServiceTest {
|
|||||||
new EntityKey(EntityKeyType.ENTITY_FIELD, "createdTime"), EntityDataSortOrder.Direction.DESC
|
new EntityKey(EntityKeyType.ENTITY_FIELD, "createdTime"), EntityDataSortOrder.Direction.DESC
|
||||||
);
|
);
|
||||||
|
|
||||||
List<EntityKey> entityFields = Arrays.asList(new EntityKey(EntityKeyType.ENTITY_FIELD, "name"), new EntityKey(EntityKeyType.ENTITY_FIELD, "deviceType"));
|
List<EntityKey> entityFields = Arrays.asList(new EntityKey(EntityKeyType.ENTITY_FIELD, "name"),
|
||||||
|
new EntityKey(EntityKeyType.ENTITY_FIELD, "entityType"));
|
||||||
|
|
||||||
List<EntityKey> latestValues = Collections.singletonList(new EntityKey(EntityKeyType.CLIENT_ATTRIBUTE, "attributeString"));
|
List<EntityKey> latestValues = Collections.singletonList(new EntityKey(EntityKeyType.CLIENT_ATTRIBUTE, "attributeString"));
|
||||||
|
|
||||||
List<KeyFilter> keyFiltersEqualString = createStringKeyFilters("attributeString", EntityKeyType.CLIENT_ATTRIBUTE, StringFilterPredicate.StringOperation.EQUAL, "equal");
|
List<KeyFilter> keyFiltersEqualString = createStringKeyFilters("attributeString", EntityKeyType.CLIENT_ATTRIBUTE, StringFilterPredicate.StringOperation.EQUAL, "equal");
|
||||||
@ -940,7 +942,7 @@ public abstract class BaseEntityServiceTest extends AbstractServiceTest {
|
|||||||
|
|
||||||
List<KeyFilter> keyFiltersNotContainsString = createStringKeyFilters("attributeString", EntityKeyType.CLIENT_ATTRIBUTE, StringFilterPredicate.StringOperation.NOT_CONTAINS, "NOT_CONTAINS");
|
List<KeyFilter> keyFiltersNotContainsString = createStringKeyFilters("attributeString", EntityKeyType.CLIENT_ATTRIBUTE, StringFilterPredicate.StringOperation.NOT_CONTAINS, "NOT_CONTAINS");
|
||||||
|
|
||||||
List<KeyFilter> deviceTypeFilters = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.EQUAL, "EQUAL");
|
List<KeyFilter> deviceTypeFilters = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.NOT_EQUAL, "NOT_EQUAL");
|
||||||
|
|
||||||
// Equal Operation
|
// Equal Operation
|
||||||
|
|
||||||
@ -1032,7 +1034,124 @@ public abstract class BaseEntityServiceTest extends AbstractServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBuildSimplePredicateQueryOperations() throws JsonMappingException, JsonProcessingException, ExecutionException, InterruptedException{
|
public void testBuildStringPredicateQueryOperationsForEntityType() throws ExecutionException, InterruptedException{
|
||||||
|
|
||||||
|
List<Device> devices = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
Device device = new Device();
|
||||||
|
device.setTenantId(tenantId);
|
||||||
|
device.setName("Device" + i);
|
||||||
|
device.setType("default");
|
||||||
|
device.setLabel("testLabel" + (int) (Math.random() * 1000));
|
||||||
|
devices.add(deviceService.saveDevice(device));
|
||||||
|
//TO make sure devices have different created time
|
||||||
|
Thread.sleep(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
DeviceTypeFilter filter = new DeviceTypeFilter();
|
||||||
|
filter.setDeviceType("default");
|
||||||
|
filter.setDeviceNameFilter("");
|
||||||
|
|
||||||
|
EntityDataSortOrder sortOrder = new EntityDataSortOrder(
|
||||||
|
new EntityKey(EntityKeyType.ENTITY_FIELD, "createdTime"), EntityDataSortOrder.Direction.DESC
|
||||||
|
);
|
||||||
|
|
||||||
|
List<EntityKey> entityFields = Arrays.asList(new EntityKey(EntityKeyType.ENTITY_FIELD, "name"),
|
||||||
|
new EntityKey(EntityKeyType.ENTITY_FIELD, "entityType"));
|
||||||
|
|
||||||
|
List<KeyFilter> keyFiltersEqualString = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.EQUAL, "device");
|
||||||
|
List<KeyFilter> keyFiltersNotEqualString = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.NOT_EQUAL, "asset");
|
||||||
|
List<KeyFilter> keyFiltersStartsWithString = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.STARTS_WITH, "dev");
|
||||||
|
List<KeyFilter> keyFiltersEndsWithString = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.ENDS_WITH, "ice");
|
||||||
|
List<KeyFilter> keyFiltersContainsString = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.CONTAINS, "vic");
|
||||||
|
List<KeyFilter> keyFiltersNotContainsString = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.NOT_CONTAINS, "dolphin");
|
||||||
|
|
||||||
|
// Equal Operation
|
||||||
|
|
||||||
|
EntityDataPageLink pageLink = new EntityDataPageLink(100, 0, null, sortOrder);
|
||||||
|
EntityDataQuery query = new EntityDataQuery(filter, pageLink, entityFields, null, keyFiltersEqualString);
|
||||||
|
PageData<EntityData> data = entityService.findEntityDataByQuery(tenantId, new CustomerId(CustomerId.NULL_UUID), query);
|
||||||
|
List<EntityData> loadedEntities = getLoadedEntities(data, query);
|
||||||
|
Assert.assertEquals(devices.size(), loadedEntities.size());
|
||||||
|
|
||||||
|
List<String> loadedStrings = loadedEntities.stream().map(entityData ->
|
||||||
|
entityData.getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<String> devicesNames = devices.stream().map(Device::getName).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Assert.assertTrue(listEqualWithoutOrder(devicesNames, loadedStrings));
|
||||||
|
|
||||||
|
// Not equal Operation
|
||||||
|
|
||||||
|
pageLink = new EntityDataPageLink(100, 0, null, sortOrder);
|
||||||
|
query = new EntityDataQuery(filter, pageLink, entityFields, null, keyFiltersNotEqualString);
|
||||||
|
data = entityService.findEntityDataByQuery(tenantId, new CustomerId(CustomerId.NULL_UUID), query);
|
||||||
|
loadedEntities = getLoadedEntities(data, query);
|
||||||
|
Assert.assertEquals(devices.size(), loadedEntities.size());
|
||||||
|
|
||||||
|
loadedStrings = loadedEntities.stream().map(entityData ->
|
||||||
|
entityData.getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Assert.assertTrue(listEqualWithoutOrder(devicesNames, loadedStrings));
|
||||||
|
|
||||||
|
// Starts with Operation
|
||||||
|
|
||||||
|
pageLink = new EntityDataPageLink(100, 0, null, sortOrder);
|
||||||
|
query = new EntityDataQuery(filter, pageLink, entityFields, null, keyFiltersStartsWithString);
|
||||||
|
data = entityService.findEntityDataByQuery(tenantId, new CustomerId(CustomerId.NULL_UUID), query);
|
||||||
|
loadedEntities = getLoadedEntities(data, query);
|
||||||
|
Assert.assertEquals(devices.size(), loadedEntities.size());
|
||||||
|
|
||||||
|
loadedStrings = loadedEntities.stream().map(entityData ->
|
||||||
|
entityData.getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Assert.assertTrue(listEqualWithoutOrder(devicesNames, loadedStrings));
|
||||||
|
|
||||||
|
// Ends with Operation
|
||||||
|
|
||||||
|
pageLink = new EntityDataPageLink(100, 0, null, sortOrder);
|
||||||
|
query = new EntityDataQuery(filter, pageLink, entityFields, null, keyFiltersEndsWithString);
|
||||||
|
data = entityService.findEntityDataByQuery(tenantId, new CustomerId(CustomerId.NULL_UUID), query);
|
||||||
|
loadedEntities = getLoadedEntities(data, query);
|
||||||
|
Assert.assertEquals(devices.size(), loadedEntities.size());
|
||||||
|
|
||||||
|
loadedStrings = loadedEntities.stream().map(entityData ->
|
||||||
|
entityData.getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Assert.assertTrue(listEqualWithoutOrder(devicesNames, loadedStrings));
|
||||||
|
|
||||||
|
// Contains Operation
|
||||||
|
|
||||||
|
pageLink = new EntityDataPageLink(100, 0, null, sortOrder);
|
||||||
|
query = new EntityDataQuery(filter, pageLink, entityFields, null, keyFiltersContainsString);
|
||||||
|
data = entityService.findEntityDataByQuery(tenantId, new CustomerId(CustomerId.NULL_UUID), query);
|
||||||
|
loadedEntities = getLoadedEntities(data, query);
|
||||||
|
Assert.assertEquals(devices.size(), loadedEntities.size());
|
||||||
|
|
||||||
|
loadedStrings = loadedEntities.stream().map(entityData ->
|
||||||
|
entityData.getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Assert.assertTrue(listEqualWithoutOrder(devicesNames, loadedStrings));
|
||||||
|
|
||||||
|
// Not contains Operation
|
||||||
|
|
||||||
|
pageLink = new EntityDataPageLink(100, 0, null, sortOrder);
|
||||||
|
query = new EntityDataQuery(filter, pageLink, entityFields, null, keyFiltersNotContainsString);
|
||||||
|
data = entityService.findEntityDataByQuery(tenantId, new CustomerId(CustomerId.NULL_UUID), query);
|
||||||
|
loadedEntities = getLoadedEntities(data, query);
|
||||||
|
Assert.assertEquals(devices.size(), loadedEntities.size());
|
||||||
|
|
||||||
|
loadedStrings = loadedEntities.stream().map(entityData ->
|
||||||
|
entityData.getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Assert.assertTrue(listEqualWithoutOrder(devicesNames, loadedStrings));
|
||||||
|
|
||||||
|
deviceService.deleteDevicesByTenantId(tenantId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBuildSimplePredicateQueryOperations() throws InterruptedException{
|
||||||
|
|
||||||
List<Device> devices = new ArrayList<>();
|
List<Device> devices = new ArrayList<>();
|
||||||
|
|
||||||
@ -1053,7 +1172,7 @@ public abstract class BaseEntityServiceTest extends AbstractServiceTest {
|
|||||||
|
|
||||||
EntityDataSortOrder sortOrder = new EntityDataSortOrder(new EntityKey(EntityKeyType.ENTITY_FIELD, "name"), EntityDataSortOrder.Direction.DESC);
|
EntityDataSortOrder sortOrder = new EntityDataSortOrder(new EntityKey(EntityKeyType.ENTITY_FIELD, "name"), EntityDataSortOrder.Direction.DESC);
|
||||||
|
|
||||||
List<KeyFilter> deviceTypeFilters = createStringKeyFilters("entityType", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.EQUAL, "EQUAL");
|
List<KeyFilter> deviceTypeFilters = createStringKeyFilters("type", EntityKeyType.ENTITY_FIELD, StringFilterPredicate.StringOperation.EQUAL, "default");
|
||||||
|
|
||||||
KeyFilter createdTimeFilter = createNumericKeyFilter("createdTime", EntityKeyType.ENTITY_FIELD, NumericFilterPredicate.NumericOperation.GREATER, 1L);
|
KeyFilter createdTimeFilter = createNumericKeyFilter("createdTime", EntityKeyType.ENTITY_FIELD, NumericFilterPredicate.NumericOperation.GREATER, 1L);
|
||||||
List<KeyFilter> createdTimeFilters = Collections.singletonList(createdTimeFilter);
|
List<KeyFilter> createdTimeFilters = Collections.singletonList(createdTimeFilter);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user