added base tests for queue
This commit is contained in:
parent
4512185cad
commit
fd53d3aeb4
@ -142,6 +142,10 @@ public class TenantServiceImpl extends AbstractEntityService implements TenantSe
|
||||
if (tenant.getId() == null) {
|
||||
deviceProfileService.createDefaultDeviceProfile(savedTenant.getId());
|
||||
apiUsageStateService.createDefaultApiUsageState(savedTenant.getId(), null);
|
||||
TenantProfile tenantProfile = tenantProfileService.findTenantProfileById(TenantId.SYS_TENANT_ID, savedTenant.getTenantProfileId());
|
||||
if(tenantProfile.isIsolatedTbRuleEngine()) {
|
||||
queueService.createDefaultMainQueue(tenantProfile, savedTenant.getTenantId());
|
||||
}
|
||||
}
|
||||
return savedTenant;
|
||||
}
|
||||
|
||||
@ -57,6 +57,7 @@ import org.thingsboard.server.dao.entity.EntityService;
|
||||
import org.thingsboard.server.dao.entityview.EntityViewService;
|
||||
import org.thingsboard.server.dao.event.EventService;
|
||||
import org.thingsboard.server.dao.ota.OtaPackageService;
|
||||
import org.thingsboard.server.dao.queue.QueueService;
|
||||
import org.thingsboard.server.dao.relation.RelationService;
|
||||
import org.thingsboard.server.dao.resource.ResourceService;
|
||||
import org.thingsboard.server.dao.rule.RuleChainService;
|
||||
@ -163,6 +164,9 @@ public abstract class AbstractServiceTest {
|
||||
@Autowired
|
||||
protected OtaPackageService otaPackageService;
|
||||
|
||||
@Autowired
|
||||
protected QueueService queueService;
|
||||
|
||||
public class IdComparator<D extends HasId> implements Comparator<D> {
|
||||
@Override
|
||||
public int compare(D o1, D o2) {
|
||||
|
||||
@ -0,0 +1,491 @@
|
||||
/**
|
||||
* Copyright © 2016-2022 The Thingsboard Authors
|
||||
*
|
||||
* Licensed 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.thingsboard.server.dao.service;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.thingsboard.server.common.data.Tenant;
|
||||
import org.thingsboard.server.common.data.TenantProfile;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.id.TenantProfileId;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.common.data.queue.ProcessingStrategy;
|
||||
import org.thingsboard.server.common.data.queue.ProcessingStrategyType;
|
||||
import org.thingsboard.server.common.data.queue.Queue;
|
||||
import org.thingsboard.server.common.data.queue.SubmitStrategy;
|
||||
import org.thingsboard.server.common.data.queue.SubmitStrategyType;
|
||||
import org.thingsboard.server.dao.exception.DataValidationException;
|
||||
import org.thingsboard.server.dao.tenant.TenantServiceImpl;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class BaseQueueServiceTest extends AbstractServiceTest {
|
||||
|
||||
private IdComparator<Queue> idComparator = new IdComparator<>();
|
||||
|
||||
private TenantId tenantId;
|
||||
private TenantProfileId tenantProfileId;
|
||||
|
||||
@Before
|
||||
public void before() throws NoSuchFieldException, IllegalAccessException {
|
||||
Field zkEnabled = TenantServiceImpl.class.getDeclaredField("zkEnabled");
|
||||
zkEnabled.setAccessible(true);
|
||||
zkEnabled.set(tenantService, Boolean.TRUE);
|
||||
|
||||
TenantProfile tenantProfile = new TenantProfile();
|
||||
tenantProfile.setDefault(false);
|
||||
tenantProfile.setName("Isolated TB Rule Engine");
|
||||
tenantProfile.setDescription("Isolated TB Rule Engine tenant profile");
|
||||
tenantProfile.setIsolatedTbCore(false);
|
||||
tenantProfile.setIsolatedTbRuleEngine(true);
|
||||
tenantProfile.setMaxNumberOfQueues(10);
|
||||
tenantProfile.setMaxNumberOfPartitionsPerQueue(10);
|
||||
|
||||
TenantProfile savedTenantProfile = tenantProfileService.saveTenantProfile(TenantId.SYS_TENANT_ID, tenantProfile);
|
||||
Assert.assertNotNull(savedTenantProfile);
|
||||
tenantProfileId = savedTenantProfile.getId();
|
||||
|
||||
Tenant tenant = new Tenant();
|
||||
tenant.setTitle("My tenant");
|
||||
tenant.setTenantProfileId(tenantProfileId);
|
||||
Tenant savedTenant = tenantService.saveTenant(tenant);
|
||||
Assert.assertNotNull(savedTenant);
|
||||
tenantId = savedTenant.getId();
|
||||
}
|
||||
|
||||
@After
|
||||
public void after() {
|
||||
tenantService.deleteTenant(tenantId);
|
||||
tenantProfileService.deleteTenantProfile(TenantId.SYS_TENANT_ID, tenantProfileId);
|
||||
}
|
||||
|
||||
private ProcessingStrategy createTestProcessingStrategy() {
|
||||
ProcessingStrategy processingStrategy = new ProcessingStrategy();
|
||||
processingStrategy.setType(ProcessingStrategyType.SKIP_ALL_FAILURES);
|
||||
processingStrategy.setRetries(3);
|
||||
processingStrategy.setFailurePercentage(0);
|
||||
processingStrategy.setPauseBetweenRetries(3);
|
||||
processingStrategy.setMaxPauseBetweenRetries(3);
|
||||
return processingStrategy;
|
||||
}
|
||||
|
||||
private SubmitStrategy createTestSubmitStrategy() {
|
||||
SubmitStrategy submitStrategy = new SubmitStrategy();
|
||||
submitStrategy.setType(SubmitStrategyType.BURST);
|
||||
submitStrategy.setBatchSize(1000);
|
||||
return submitStrategy;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaveQueue() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
Queue savedQueue = queueService.saveQueue(queue);
|
||||
|
||||
Assert.assertNotNull(savedQueue);
|
||||
Assert.assertNotNull(savedQueue.getId());
|
||||
Assert.assertTrue(savedQueue.getCreatedTime() > 0);
|
||||
Assert.assertEquals(queue.getTenantId(), savedQueue.getTenantId());
|
||||
Assert.assertEquals(queue.getName(), queue.getName());
|
||||
|
||||
savedQueue.setPollInterval(100);
|
||||
|
||||
queueService.saveQueue(savedQueue);
|
||||
Queue foundQueue = queueService.findQueueById(tenantId, savedQueue.getId());
|
||||
Assert.assertEquals(foundQueue.getPollInterval(), savedQueue.getPollInterval());
|
||||
|
||||
queueService.deleteQueue(tenantId, foundQueue.getId());
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptyName() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptyTopic() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptyPoolInterval() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptyPartitions() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptyPackProcessingTimeout() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptySubmitStrategy() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptyProcessingStrategy() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptySubmitStrategyType() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.getSubmitStrategy().setType(null);
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptySubmitStrategyBatchSize() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.getSubmitStrategy().setType(SubmitStrategyType.BATCH);
|
||||
queue.getSubmitStrategy().setBatchSize(0);
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithEmptyProcessingStrategyType() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queue.getProcessingStrategy().setType(null);
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithNegativeProcessingStrategyRetries() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queue.getProcessingStrategy().setRetries(-1);
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithNegativeProcessingStrategyFailurePercentage() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queue.getProcessingStrategy().setFailurePercentage(-1);
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithNegativeProcessingStrategyPauseBetweenRetries() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queue.getProcessingStrategy().setPauseBetweenRetries(-1);
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithProcessingStrategyPauseBetweenRetriesBiggerThenMaxPauseBetweenRetries() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queue.getProcessingStrategy().setPauseBetweenRetries(100);
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithNotIsolatedTenant() {
|
||||
Tenant tenant = new Tenant();
|
||||
tenant.setTitle("Not isolated tenant");
|
||||
Tenant savedTenant = tenantService.saveTenant(tenant);
|
||||
Assert.assertNotNull(savedTenant);
|
||||
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(savedTenant.getId());
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
try {
|
||||
queueService.saveQueue(queue);
|
||||
} finally {
|
||||
tenantService.deleteTenant(savedTenant.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
public void testSaveQueueWithExceededLimitPerTenant() {
|
||||
for (int i = 1; i <= 10; i++) {
|
||||
//main queue created automatically
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test" + i);
|
||||
queue.setTopic("tb_rule_engine.test" + i);
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
queueService.saveQueue(queue);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateQueue() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
Queue savedQueue = queueService.saveQueue(queue);
|
||||
|
||||
Assert.assertNotNull(savedQueue);
|
||||
|
||||
queue.setPollInterval(1000);
|
||||
|
||||
queueService.saveQueue(savedQueue);
|
||||
|
||||
Queue foundQueue = queueService.findQueueById(tenantId, savedQueue.getId());
|
||||
|
||||
Assert.assertEquals(savedQueue, foundQueue);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindQueueById() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
Queue savedQueue = queueService.saveQueue(queue);
|
||||
Queue foundQueue = queueService.findQueueById(tenantId, savedQueue.getId());
|
||||
Assert.assertNotNull(foundQueue);
|
||||
Assert.assertEquals(savedQueue, foundQueue);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteQueue() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
Queue savedQueue = queueService.saveQueue(queue);
|
||||
Queue foundQueue = queueService.findQueueById(tenantId, savedQueue.getId());
|
||||
Assert.assertNotNull(foundQueue);
|
||||
queueService.deleteQueue(tenantId, savedQueue.getId());
|
||||
foundQueue = queueService.findQueueById(tenantId, savedQueue.getId());
|
||||
Assert.assertNull(foundQueue);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindQueueByTenantIdAndName() {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test");
|
||||
queue.setTopic("tb_rule_engine.test");
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
Queue savedQueue = queueService.saveQueue(queue);
|
||||
Queue foundQueue = queueService.findQueueByTenantIdAndName(tenantId, savedQueue.getName());
|
||||
|
||||
Assert.assertNotNull(foundQueue);
|
||||
Assert.assertEquals(savedQueue, foundQueue);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindQueuesByTenantId() {
|
||||
List<Queue> queues = new ArrayList<>();
|
||||
for (int i = 1; i < 10; i++) {
|
||||
Queue queue = new Queue();
|
||||
queue.setTenantId(tenantId);
|
||||
queue.setName("Test" + i);
|
||||
queue.setTopic("tb_rule_engine.test" + i);
|
||||
queue.setPollInterval(25);
|
||||
queue.setPartitions(1);
|
||||
queue.setPackProcessingTimeout(2000);
|
||||
queue.setSubmitStrategy(createTestSubmitStrategy());
|
||||
queue.setProcessingStrategy(createTestProcessingStrategy());
|
||||
|
||||
queues.add(queueService.saveQueue(queue));
|
||||
}
|
||||
|
||||
List<Queue> loadedQueues = new ArrayList<>();
|
||||
PageLink pageLink = new PageLink(3);
|
||||
PageData<Queue> pageData = null;
|
||||
do {
|
||||
pageData = queueService.findQueuesByTenantId(tenantId, pageLink);
|
||||
loadedQueues.addAll(pageData.getData());
|
||||
if (pageData.hasNext()) {
|
||||
pageLink = pageLink.nextPageLink();
|
||||
}
|
||||
} while (pageData.hasNext());
|
||||
|
||||
for (int i = 0; i < loadedQueues.size(); i++) {
|
||||
Queue queue = loadedQueues.get(i);
|
||||
if (queue.getName().equals("Main")) {
|
||||
loadedQueues.remove(queue);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Collections.sort(queues, idComparator);
|
||||
Collections.sort(loadedQueues, idComparator);
|
||||
|
||||
Assert.assertEquals(queues, loadedQueues);
|
||||
|
||||
queueService.deleteQueuesByTenantId(tenantId);
|
||||
|
||||
pageLink = new PageLink(33);
|
||||
pageData = queueService.findQueuesByTenantId(tenantId, pageLink);
|
||||
Assert.assertFalse(pageData.hasNext());
|
||||
Assert.assertTrue(pageData.getData().isEmpty());
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Copyright © 2016-2022 The Thingsboard Authors
|
||||
*
|
||||
* Licensed 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.thingsboard.server.dao.service.sql;
|
||||
|
||||
import org.thingsboard.server.dao.service.BaseQueueServiceTest;
|
||||
import org.thingsboard.server.dao.service.DaoSqlTest;
|
||||
|
||||
@DaoSqlTest
|
||||
public class QueueServiceSqlTest extends BaseQueueServiceTest {
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user