Save time series strategies: refactor boolean flags in TimeseriesSaveRequest.java to SaveActions nested record
This commit is contained in:
parent
f419a6e438
commit
39e47cd484
@ -348,9 +348,7 @@ public class DefaultTbEntityViewService extends AbstractTbEntityService implemen
|
||||
.tenantId(entityView.getTenantId())
|
||||
.entityId(entityId)
|
||||
.entries(latestValues)
|
||||
.saveTimeseries(false)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.LATEST_AND_WS)
|
||||
.callback(new FutureCallback<Void>() {
|
||||
@Override
|
||||
public void onSuccess(@Nullable Void tmp) {
|
||||
|
||||
@ -118,10 +118,10 @@ public class DefaultTelemetrySubscriptionService extends AbstractSubscriptionSer
|
||||
EntityId entityId = request.getEntityId();
|
||||
checkInternalEntity(entityId);
|
||||
boolean sysTenant = TenantId.SYS_TENANT_ID.equals(tenantId) || tenantId == null;
|
||||
if (sysTenant || !request.isSaveTimeseries() || apiUsageStateService.getApiUsageState(tenantId).isDbStorageEnabled()) {
|
||||
if (sysTenant || !request.getSaveActions().saveTimeseries() || apiUsageStateService.getApiUsageState(tenantId).isDbStorageEnabled()) {
|
||||
KvUtils.validate(request.getEntries(), valueNoXssValidation);
|
||||
ListenableFuture<Integer> future = saveTimeseriesInternal(request);
|
||||
if (request.isSaveTimeseries()) {
|
||||
if (request.getSaveActions().saveTimeseries()) {
|
||||
FutureCallback<Integer> callback = getApiUsageCallback(tenantId, request.getCustomerId(), sysTenant, request.getCallback());
|
||||
Futures.addCallback(future, callback, tsCallBackExecutor);
|
||||
}
|
||||
@ -134,22 +134,23 @@ public class DefaultTelemetrySubscriptionService extends AbstractSubscriptionSer
|
||||
public ListenableFuture<Integer> saveTimeseriesInternal(TimeseriesSaveRequest request) {
|
||||
TenantId tenantId = request.getTenantId();
|
||||
EntityId entityId = request.getEntityId();
|
||||
TimeseriesSaveRequest.SaveActions saveActions = request.getSaveActions();
|
||||
ListenableFuture<Integer> saveFuture;
|
||||
if (request.isSaveTimeseries() && request.isSaveLatest()) {
|
||||
if (saveActions.saveTimeseries() && saveActions.saveLatest()) {
|
||||
saveFuture = tsService.save(tenantId, entityId, request.getEntries(), request.getTtl());
|
||||
} else if (request.isSaveLatest()) {
|
||||
} else if (saveActions.saveLatest()) {
|
||||
saveFuture = Futures.transform(tsService.saveLatest(tenantId, entityId, request.getEntries()), result -> 0, MoreExecutors.directExecutor());
|
||||
} else if (request.isSaveTimeseries()) {
|
||||
} else if (saveActions.saveTimeseries()) {
|
||||
saveFuture = tsService.saveWithoutLatest(tenantId, entityId, request.getEntries(), request.getTtl());
|
||||
} else {
|
||||
saveFuture = Futures.immediateFuture(0);
|
||||
}
|
||||
|
||||
addMainCallback(saveFuture, request.getCallback());
|
||||
if (request.isSendWsUpdate()) {
|
||||
if (saveActions.sendWsUpdate()) {
|
||||
addWsCallback(saveFuture, success -> onTimeSeriesUpdate(tenantId, entityId, request.getEntries()));
|
||||
}
|
||||
if (request.isSaveLatest()) {
|
||||
if (saveActions.saveLatest()) {
|
||||
copyLatestToEntityViews(tenantId, entityId, request.getEntries());
|
||||
}
|
||||
return saveFuture;
|
||||
@ -236,9 +237,7 @@ public class DefaultTelemetrySubscriptionService extends AbstractSubscriptionSer
|
||||
.tenantId(tenantId)
|
||||
.entityId(entityView.getId())
|
||||
.entries(entityViewLatest)
|
||||
.saveTimeseries(false)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.LATEST_AND_WS)
|
||||
.callback(new FutureCallback<>() {
|
||||
@Override
|
||||
public void onSuccess(@Nullable Void tmp) {}
|
||||
|
||||
@ -93,9 +93,7 @@ class DefaultTbEntityViewServiceTest {
|
||||
.entityId(entityView.getId())
|
||||
.entries(latest)
|
||||
.ttl(0L)
|
||||
.saveTimeseries(false)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.LATEST_AND_WS)
|
||||
.build();
|
||||
|
||||
var actualCopyLatestRequest = captor.getValue();
|
||||
|
||||
@ -173,9 +173,7 @@ class DefaultTelemetrySubscriptionServiceTest {
|
||||
.entityId(entityId)
|
||||
.entries(sampleTelemetry)
|
||||
.ttl(sampleTtl)
|
||||
.saveTimeseries(true)
|
||||
.saveLatest(false)
|
||||
.sendWsUpdate(false)
|
||||
.saveActions(new TimeseriesSaveRequest.SaveActions(true, false, false))
|
||||
.callback(emptyCallback)
|
||||
.build();
|
||||
|
||||
@ -195,9 +193,7 @@ class DefaultTelemetrySubscriptionServiceTest {
|
||||
.entityId(entityId)
|
||||
.entries(sampleTelemetry)
|
||||
.ttl(sampleTtl)
|
||||
.saveTimeseries(false)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.LATEST_AND_WS)
|
||||
.callback(emptyCallback)
|
||||
.build();
|
||||
|
||||
@ -220,9 +216,7 @@ class DefaultTelemetrySubscriptionServiceTest {
|
||||
.entityId(entityId)
|
||||
.entries(sampleTelemetry)
|
||||
.ttl(sampleTtl)
|
||||
.saveTimeseries(true)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.SAVE_ALL)
|
||||
.future(future)
|
||||
.build();
|
||||
|
||||
@ -248,9 +242,7 @@ class DefaultTelemetrySubscriptionServiceTest {
|
||||
.entityId(entityId)
|
||||
.entries(sampleTelemetry)
|
||||
.ttl(sampleTtl)
|
||||
.saveTimeseries(false)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.LATEST_AND_WS)
|
||||
.future(future)
|
||||
.build();
|
||||
|
||||
@ -283,9 +275,7 @@ class DefaultTelemetrySubscriptionServiceTest {
|
||||
.entityId(entityId)
|
||||
.entries(sampleTelemetry)
|
||||
.ttl(sampleTtl)
|
||||
.saveTimeseries(false)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(false)
|
||||
.saveActions(new TimeseriesSaveRequest.SaveActions(false, true, false))
|
||||
.callback(emptyCallback)
|
||||
.build();
|
||||
|
||||
@ -312,9 +302,7 @@ class DefaultTelemetrySubscriptionServiceTest {
|
||||
.entityId(entityId)
|
||||
.entries(sampleTelemetry)
|
||||
.ttl(sampleTtl)
|
||||
.saveTimeseries(true)
|
||||
.saveLatest(false)
|
||||
.sendWsUpdate(false)
|
||||
.saveActions(new TimeseriesSaveRequest.SaveActions(true, false, false))
|
||||
.callback(emptyCallback)
|
||||
.build();
|
||||
|
||||
@ -340,9 +328,7 @@ class DefaultTelemetrySubscriptionServiceTest {
|
||||
.entityId(entityId)
|
||||
.entries(sampleTelemetry)
|
||||
.ttl(sampleTtl)
|
||||
.saveTimeseries(saveTimeseries)
|
||||
.saveLatest(saveLatest)
|
||||
.sendWsUpdate(sendWsUpdate)
|
||||
.saveActions(new TimeseriesSaveRequest.SaveActions(saveTimeseries, saveLatest, sendWsUpdate))
|
||||
.callback(emptyCallback)
|
||||
.build();
|
||||
|
||||
|
||||
@ -38,11 +38,18 @@ public class TimeseriesSaveRequest {
|
||||
private final EntityId entityId;
|
||||
private final List<TsKvEntry> entries;
|
||||
private final long ttl;
|
||||
private final boolean saveTimeseries;
|
||||
private final boolean saveLatest;
|
||||
private final boolean sendWsUpdate;
|
||||
private final SaveActions saveActions;
|
||||
private final FutureCallback<Void> callback;
|
||||
|
||||
public record SaveActions(boolean saveTimeseries, boolean saveLatest, boolean sendWsUpdate) {
|
||||
|
||||
public static final SaveActions SAVE_ALL = new SaveActions(true, true, true);
|
||||
public static final SaveActions WS_ONLY = new SaveActions(false, false, true);
|
||||
public static final SaveActions LATEST_AND_WS = new SaveActions(false, true, true);
|
||||
public static final SaveActions SKIP_ALL = new SaveActions(false, false, false);
|
||||
|
||||
}
|
||||
|
||||
public static Builder builder() {
|
||||
return new Builder();
|
||||
}
|
||||
@ -54,9 +61,7 @@ public class TimeseriesSaveRequest {
|
||||
private EntityId entityId;
|
||||
private List<TsKvEntry> entries;
|
||||
private long ttl;
|
||||
private boolean saveTimeseries = true;
|
||||
private boolean saveLatest = true;
|
||||
private boolean sendWsUpdate = true;
|
||||
private SaveActions saveActions = SaveActions.SAVE_ALL;
|
||||
private FutureCallback<Void> callback;
|
||||
|
||||
Builder() {}
|
||||
@ -94,18 +99,8 @@ public class TimeseriesSaveRequest {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder saveTimeseries(boolean saveTimeseries) {
|
||||
this.saveTimeseries = saveTimeseries;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder saveLatest(boolean saveLatest) {
|
||||
this.saveLatest = saveLatest;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder sendWsUpdate(boolean sendWsUpdate) {
|
||||
this.sendWsUpdate = sendWsUpdate;
|
||||
public Builder saveActions(SaveActions settings) {
|
||||
this.saveActions = settings;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -129,7 +124,7 @@ public class TimeseriesSaveRequest {
|
||||
}
|
||||
|
||||
public TimeseriesSaveRequest build() {
|
||||
return new TimeseriesSaveRequest(tenantId, customerId, entityId, entries, ttl, saveTimeseries, saveLatest, sendWsUpdate, callback);
|
||||
return new TimeseriesSaveRequest(tenantId, customerId, entityId, entries, ttl, saveActions, callback);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -22,12 +22,30 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
class TimeseriesSaveRequestTest {
|
||||
|
||||
@Test
|
||||
void testBooleanFlagsDefaultToTrue() {
|
||||
void testDefaultSaveActionsAreSaveAll() {
|
||||
var request = TimeseriesSaveRequest.builder().build();
|
||||
|
||||
assertThat(request.isSaveTimeseries()).isTrue();
|
||||
assertThat(request.isSaveLatest()).isTrue();
|
||||
assertThat(request.isSendWsUpdate()).isTrue();
|
||||
assertThat(request.getSaveActions()).isEqualTo(TimeseriesSaveRequest.SaveActions.SAVE_ALL);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSaveActionsSaveAll() {
|
||||
assertThat(TimeseriesSaveRequest.SaveActions.SAVE_ALL).isEqualTo(new TimeseriesSaveRequest.SaveActions(true, true, true));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSaveActionsWsOnly() {
|
||||
assertThat(TimeseriesSaveRequest.SaveActions.WS_ONLY).isEqualTo(new TimeseriesSaveRequest.SaveActions(false, false, true));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSaveActionsLatestAndWs() {
|
||||
assertThat(TimeseriesSaveRequest.SaveActions.LATEST_AND_WS).isEqualTo(new TimeseriesSaveRequest.SaveActions(false, true, true));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSaveActionsSkipAll() {
|
||||
assertThat(TimeseriesSaveRequest.SaveActions.SKIP_ALL).isEqualTo(new TimeseriesSaveRequest.SaveActions(false, false, false));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -107,13 +107,10 @@ public class TbMsgTimeseriesNode implements TbNode {
|
||||
}
|
||||
long ts = computeTs(msg, config.isUseServerTs());
|
||||
|
||||
PersistenceDecision persistenceDecision = makePersistenceDecision(ts, msg.getOriginator().getId());
|
||||
boolean saveTimeseries = persistenceDecision.saveTimeseries();
|
||||
boolean saveLatest = persistenceDecision.saveLatest();
|
||||
boolean sendWsUpdate = persistenceDecision.sendWsUpdate();
|
||||
TimeseriesSaveRequest.SaveActions saveActions = determineSaveActions(ts, msg.getOriginator().getId());
|
||||
|
||||
// short-circuit
|
||||
if (!saveTimeseries && !saveLatest && !sendWsUpdate) {
|
||||
if (!saveActions.saveTimeseries() && !saveActions.saveLatest() && !saveActions.sendWsUpdate()) {
|
||||
ctx.tellSuccess(msg);
|
||||
return;
|
||||
}
|
||||
@ -141,9 +138,7 @@ public class TbMsgTimeseriesNode implements TbNode {
|
||||
.entityId(msg.getOriginator())
|
||||
.entries(tsKvEntryList)
|
||||
.ttl(ttl)
|
||||
.saveTimeseries(saveTimeseries)
|
||||
.saveLatest(saveLatest)
|
||||
.sendWsUpdate(sendWsUpdate)
|
||||
.saveActions(saveActions)
|
||||
.callback(new TelemetryNodeCallback(ctx, msg))
|
||||
.build());
|
||||
}
|
||||
@ -152,35 +147,26 @@ public class TbMsgTimeseriesNode implements TbNode {
|
||||
return ignoreMetadataTs ? System.currentTimeMillis() : msg.getMetaDataTs();
|
||||
}
|
||||
|
||||
private record PersistenceDecision(boolean saveTimeseries, boolean saveLatest, boolean sendWsUpdate) {}
|
||||
|
||||
private PersistenceDecision makePersistenceDecision(long ts, UUID originatorUuid) {
|
||||
boolean saveTimeseries;
|
||||
boolean saveLatest;
|
||||
boolean sendWsUpdate;
|
||||
|
||||
private TimeseriesSaveRequest.SaveActions determineSaveActions(long ts, UUID originatorUuid) {
|
||||
if (persistenceSettings instanceof OnEveryMessage) {
|
||||
saveTimeseries = true;
|
||||
saveLatest = true;
|
||||
sendWsUpdate = true;
|
||||
} else if (persistenceSettings instanceof WebSocketsOnly) {
|
||||
saveTimeseries = false;
|
||||
saveLatest = false;
|
||||
sendWsUpdate = true;
|
||||
} else if (persistenceSettings instanceof Deduplicate deduplicate) {
|
||||
boolean isFirstMsgInInterval = deduplicate.getDeduplicateStrategy().shouldPersist(ts, originatorUuid);
|
||||
saveTimeseries = isFirstMsgInInterval;
|
||||
saveLatest = isFirstMsgInInterval;
|
||||
sendWsUpdate = isFirstMsgInInterval;
|
||||
} else if (persistenceSettings instanceof Advanced advanced) {
|
||||
saveTimeseries = advanced.timeseries().shouldPersist(ts, originatorUuid);
|
||||
saveLatest = advanced.latest().shouldPersist(ts, originatorUuid);
|
||||
sendWsUpdate = advanced.webSockets().shouldPersist(ts, originatorUuid);
|
||||
} else { // should not happen
|
||||
throw new IllegalArgumentException("Unknown persistence settings type: " + persistenceSettings.getClass().getSimpleName());
|
||||
return TimeseriesSaveRequest.SaveActions.SAVE_ALL;
|
||||
}
|
||||
|
||||
return new PersistenceDecision(saveTimeseries, saveLatest, sendWsUpdate);
|
||||
if (persistenceSettings instanceof WebSocketsOnly) {
|
||||
return TimeseriesSaveRequest.SaveActions.WS_ONLY;
|
||||
}
|
||||
if (persistenceSettings instanceof Deduplicate deduplicate) {
|
||||
boolean isFirstMsgInInterval = deduplicate.getDeduplicateStrategy().shouldPersist(ts, originatorUuid);
|
||||
return isFirstMsgInInterval ? TimeseriesSaveRequest.SaveActions.SAVE_ALL : TimeseriesSaveRequest.SaveActions.SKIP_ALL;
|
||||
}
|
||||
if (persistenceSettings instanceof Advanced advanced) {
|
||||
return new TimeseriesSaveRequest.SaveActions(
|
||||
advanced.timeseries().shouldPersist(ts, originatorUuid),
|
||||
advanced.latest().shouldPersist(ts, originatorUuid),
|
||||
advanced.webSockets().shouldPersist(ts, originatorUuid)
|
||||
);
|
||||
}
|
||||
// should not happen
|
||||
throw new IllegalArgumentException("Unknown persistence settings type: " + persistenceSettings.getClass().getSimpleName());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -533,7 +533,7 @@ public class TbMathNodeTest {
|
||||
verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture());
|
||||
verify(telemetryService, times(1)).saveTimeseries(assertArg(request -> {
|
||||
assertThat(request.getEntries()).size().isOne();
|
||||
assertThat(request.isSaveLatest()).isTrue();
|
||||
assertThat(request.getSaveActions()).isEqualTo(TimeseriesSaveRequest.SaveActions.SAVE_ALL);
|
||||
}));
|
||||
|
||||
TbMsg resultMsg = msgCaptor.getValue();
|
||||
@ -569,7 +569,7 @@ public class TbMathNodeTest {
|
||||
verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture());
|
||||
verify(telemetryService, times(1)).saveTimeseries(assertArg(request -> {
|
||||
assertThat(request.getEntries()).size().isOne();
|
||||
assertThat(request.isSaveLatest()).isTrue();
|
||||
assertThat(request.getSaveActions()).isEqualTo(TimeseriesSaveRequest.SaveActions.SAVE_ALL);
|
||||
}));
|
||||
|
||||
TbMsg resultMsg = msgCaptor.getValue();
|
||||
|
||||
@ -207,7 +207,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
assertThat(request.getEntityId()).isEqualTo(DEVICE_ID);
|
||||
assertThat(request.getEntries()).usingRecursiveFieldByFieldElementComparatorIgnoringFields("ts").containsExactlyElementsOf(expectedList);
|
||||
assertThat(request.getTtl()).isEqualTo(extractTtlAsSeconds(tenantProfile));
|
||||
assertThat(request.isSaveLatest()).isTrue();
|
||||
assertThat(request.getSaveActions()).isEqualTo(TimeseriesSaveRequest.SaveActions.SAVE_ALL);
|
||||
assertThat(request.getCallback()).isInstanceOf(TelemetryNodeCallback.class);
|
||||
}));
|
||||
verify(ctxMock).tellSuccess(msg);
|
||||
@ -264,9 +264,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
assertThat(request.getEntityId()).isEqualTo(DEVICE_ID);
|
||||
assertThat(request.getEntries()).containsExactlyElementsOf(expectedList);
|
||||
assertThat(request.getTtl()).isEqualTo(config.getDefaultTTL());
|
||||
assertThat(request.isSaveTimeseries()).isTrue();
|
||||
assertThat(request.isSaveLatest()).isFalse();
|
||||
assertThat(request.isSendWsUpdate()).isTrue();
|
||||
assertThat(request.getSaveActions()).isEqualTo(new TimeseriesSaveRequest.SaveActions(true, false, true));
|
||||
assertThat(request.getCallback()).isInstanceOf(TelemetryNodeCallback.class);
|
||||
}));
|
||||
verify(ctxMock).tellSuccess(msg);
|
||||
@ -305,7 +303,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
assertThat(request.getCustomerId()).isNull();
|
||||
assertThat(request.getEntityId()).isEqualTo(DEVICE_ID);
|
||||
assertThat(request.getTtl()).isEqualTo(expectedTtl);
|
||||
assertThat(request.isSaveLatest()).isTrue();
|
||||
assertThat(request.getSaveActions()).isEqualTo(TimeseriesSaveRequest.SaveActions.SAVE_ALL);
|
||||
assertThat(request.getCallback()).isInstanceOf(TelemetryNodeCallback.class);
|
||||
}));
|
||||
}
|
||||
@ -354,9 +352,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
.entityId(msg.getOriginator())
|
||||
.entry(new BasicTsKvEntry(123L, new DoubleDataEntry("temperature", 22.3)))
|
||||
.ttl(extractTtlAsSeconds(tenantProfile))
|
||||
.saveTimeseries(true)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.SAVE_ALL)
|
||||
.build();
|
||||
|
||||
node.onMsg(ctxMock, msg);
|
||||
@ -391,9 +387,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
.entityId(msg.getOriginator())
|
||||
.entry(new BasicTsKvEntry(123L, new DoubleDataEntry("temperature", 22.3)))
|
||||
.ttl(extractTtlAsSeconds(tenantProfile))
|
||||
.saveTimeseries(true)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.SAVE_ALL)
|
||||
.build();
|
||||
|
||||
node.onMsg(ctxMock, msg);
|
||||
@ -428,9 +422,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
.entityId(msg.getOriginator())
|
||||
.entry(new BasicTsKvEntry(123L, new DoubleDataEntry("temperature", 22.3)))
|
||||
.ttl(extractTtlAsSeconds(tenantProfile))
|
||||
.saveTimeseries(false)
|
||||
.saveLatest(false)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.WS_ONLY)
|
||||
.build();
|
||||
|
||||
node.onMsg(ctxMock, msg);
|
||||
@ -469,9 +461,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
.entityId(msg.getOriginator())
|
||||
.entry(new BasicTsKvEntry(123L, new DoubleDataEntry("temperature", 22.3)))
|
||||
.ttl(extractTtlAsSeconds(tenantProfile))
|
||||
.saveTimeseries(true)
|
||||
.saveLatest(true)
|
||||
.sendWsUpdate(true)
|
||||
.saveActions(TimeseriesSaveRequest.SaveActions.SAVE_ALL)
|
||||
.build();
|
||||
|
||||
node.onMsg(ctxMock, msg);
|
||||
@ -508,11 +498,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
.metaData(new TbMsgMetaData(Map.of("ts", Long.toString(ts1))))
|
||||
.build());
|
||||
then(telemetryServiceMock).should().saveTimeseries(assertArg(
|
||||
actualSaveRequest -> {
|
||||
assertThat(actualSaveRequest.isSaveTimeseries()).isTrue();
|
||||
assertThat(actualSaveRequest.isSaveLatest()).isTrue();
|
||||
assertThat(actualSaveRequest.isSendWsUpdate()).isTrue();
|
||||
}
|
||||
actualSaveRequest -> assertThat(actualSaveRequest.getSaveActions()).isEqualTo(TimeseriesSaveRequest.SaveActions.SAVE_ALL)
|
||||
));
|
||||
|
||||
clearInvocations(telemetryServiceMock);
|
||||
@ -524,11 +510,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
.metaData(new TbMsgMetaData(Map.of("ts", Long.toString(ts2))))
|
||||
.build());
|
||||
then(telemetryServiceMock).should().saveTimeseries(assertArg(
|
||||
actualSaveRequest -> {
|
||||
assertThat(actualSaveRequest.isSaveTimeseries()).isTrue();
|
||||
assertThat(actualSaveRequest.isSaveLatest()).isFalse();
|
||||
assertThat(actualSaveRequest.isSendWsUpdate()).isFalse();
|
||||
}
|
||||
actualSaveRequest -> assertThat(actualSaveRequest.getSaveActions()).isEqualTo(new TimeseriesSaveRequest.SaveActions(true, false, false))
|
||||
));
|
||||
|
||||
clearInvocations(telemetryServiceMock);
|
||||
@ -540,11 +522,7 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||
.metaData(new TbMsgMetaData(Map.of("ts", Long.toString(ts3))))
|
||||
.build());
|
||||
then(telemetryServiceMock).should().saveTimeseries(assertArg(
|
||||
actualSaveRequest -> {
|
||||
assertThat(actualSaveRequest.isSaveTimeseries()).isTrue();
|
||||
assertThat(actualSaveRequest.isSaveLatest()).isTrue();
|
||||
assertThat(actualSaveRequest.isSendWsUpdate()).isFalse();
|
||||
}
|
||||
actualSaveRequest -> assertThat(actualSaveRequest.getSaveActions()).isEqualTo(new TimeseriesSaveRequest.SaveActions(true, true, false))
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user