Commit 384ce7424ca6c0a993d82b464e5568642d0f04ca

Authored by Valerii Sosliuk
Committed by Andrew Shvayka
1 parent 2dd2e6f6

Fix for query timeseries order by

... ... @@ -170,7 +170,7 @@ public class BaseTimeseriesService implements TimeseriesService {
170 170 } else {
171 171 endTs = query.getEndTs();
172 172 }
173   - return new BaseReadTsKvQuery(query.getKey(), startTs, endTs, query.getInterval(), query.getLimit(), query.getAggregation());
  173 + return new BaseReadTsKvQuery(query.getKey(), startTs, endTs, query.getInterval(), query.getLimit(), query.getAggregation(), query.getOrderBy());
174 174 }).collect(Collectors.toList());
175 175 }
176 176
... ...
... ... @@ -31,6 +31,7 @@ import org.thingsboard.server.common.data.kv.BooleanDataEntry;
31 31 import org.thingsboard.server.common.data.kv.DoubleDataEntry;
32 32 import org.thingsboard.server.common.data.kv.KvEntry;
33 33 import org.thingsboard.server.common.data.kv.LongDataEntry;
  34 +import org.thingsboard.server.common.data.kv.ReadTsKvQuery;
34 35 import org.thingsboard.server.common.data.kv.StringDataEntry;
35 36 import org.thingsboard.server.common.data.kv.TsKvEntry;
36 37 import org.thingsboard.server.common.data.objects.TelemetryEntityView;
... ... @@ -149,6 +150,58 @@ public abstract class BaseTimeseriesServiceTest extends AbstractServiceTest {
149 150 }
150 151
151 152 @Test
  153 + public void testFindByQueryAscOrder() throws Exception {
  154 + DeviceId deviceId = new DeviceId(UUIDs.timeBased());
  155 +
  156 + saveEntries(deviceId, TS - 2);
  157 + saveEntries(deviceId, TS - 1);
  158 + saveEntries(deviceId, TS);
  159 +
  160 + List<ReadTsKvQuery> queries = new ArrayList<>();
  161 + queries.add(new BaseReadTsKvQuery(STRING_KEY, TS - 3, TS, 0, 1000, Aggregation.NONE, "ASC"));
  162 +
  163 + List<TsKvEntry> entries = tsService.findAll(tenantId, deviceId, queries).get();
  164 + Assert.assertEquals(3, entries.size());
  165 + Assert.assertEquals(toTsEntry(TS - 2, stringKvEntry), entries.get(0));
  166 + Assert.assertEquals(toTsEntry(TS - 1, stringKvEntry), entries.get(1));
  167 + Assert.assertEquals(toTsEntry(TS, stringKvEntry), entries.get(2));
  168 +
  169 + EntityView entityView = saveAndCreateEntityView(deviceId, Arrays.asList(STRING_KEY));
  170 +
  171 + entries = tsService.findAll(tenantId, entityView.getId(), queries).get();
  172 + Assert.assertEquals(3, entries.size());
  173 + Assert.assertEquals(toTsEntry(TS - 2, stringKvEntry), entries.get(0));
  174 + Assert.assertEquals(toTsEntry(TS - 1, stringKvEntry), entries.get(1));
  175 + Assert.assertEquals(toTsEntry(TS, stringKvEntry), entries.get(2));
  176 + }
  177 +
  178 + @Test
  179 + public void testFindByQueryDescOrder() throws Exception {
  180 + DeviceId deviceId = new DeviceId(UUIDs.timeBased());
  181 +
  182 + saveEntries(deviceId, TS - 2);
  183 + saveEntries(deviceId, TS - 1);
  184 + saveEntries(deviceId, TS);
  185 +
  186 + List<ReadTsKvQuery> queries = new ArrayList<>();
  187 + queries.add(new BaseReadTsKvQuery(STRING_KEY, TS - 3, TS, 0, 1000, Aggregation.NONE, "DESC"));
  188 +
  189 + List<TsKvEntry> entries = tsService.findAll(tenantId, deviceId, queries).get();
  190 + Assert.assertEquals(3, entries.size());
  191 + Assert.assertEquals(toTsEntry(TS, stringKvEntry), entries.get(0));
  192 + Assert.assertEquals(toTsEntry(TS - 1, stringKvEntry), entries.get(1));
  193 + Assert.assertEquals(toTsEntry(TS - 2, stringKvEntry), entries.get(2));
  194 +
  195 + EntityView entityView = saveAndCreateEntityView(deviceId, Arrays.asList(STRING_KEY));
  196 +
  197 + entries = tsService.findAll(tenantId, entityView.getId(), queries).get();
  198 + Assert.assertEquals(3, entries.size());
  199 + Assert.assertEquals(toTsEntry(TS, stringKvEntry), entries.get(0));
  200 + Assert.assertEquals(toTsEntry(TS - 1, stringKvEntry), entries.get(1));
  201 + Assert.assertEquals(toTsEntry(TS - 2, stringKvEntry), entries.get(2));
  202 + }
  203 +
  204 + @Test
152 205 public void testDeleteDeviceTsDataWithoutOverwritingLatest() throws Exception {
153 206 DeviceId deviceId = new DeviceId(UUIDs.timeBased());
154 207
... ...