Browse Source

invoked methods to get values from record fields

pull/10786/head
IrynaMatveieva 2 years ago
parent
commit
32028e1bee
  1. 4
      application/src/main/java/org/thingsboard/server/controller/RuleEngineController.java
  2. 20
      application/src/test/java/org/thingsboard/server/service/ruleengine/DefaultRuleEngineCallServiceTest.java

4
application/src/main/java/org/thingsboard/server/controller/RuleEngineController.java

@ -193,7 +193,7 @@ public class RuleEngineController extends BaseController {
}
private void reply(LocalRequestMetaData rpcRequest, TbMsg response) {
DeferredResult<ResponseEntity> responseWriter = rpcRequest.responseWriter;
DeferredResult<ResponseEntity> responseWriter = rpcRequest.responseWriter();
if (response == null) {
logRuleEngineCall(rpcRequest, null, new TimeoutException("Processing timeout detected!"));
responseWriter.setResult(new ResponseEntity<>(HttpStatus.REQUEST_TIMEOUT));
@ -216,7 +216,7 @@ public class RuleEngineController extends BaseController {
}
private void logRuleEngineCall(LocalRequestMetaData rpcRequest, TbMsg response, Throwable e) {
logRuleEngineCall(rpcRequest.user, rpcRequest.request.getOriginator(), rpcRequest.request.getData(), response, e);
logRuleEngineCall(rpcRequest.user(), rpcRequest.request().getOriginator(), rpcRequest.request().getData(), response, e);
}
private void logRuleEngineCall(SecurityUser user, EntityId entityId, String request, TbMsg response, Throwable e) {

20
application/src/test/java/org/thingsboard/server/service/ruleengine/DefaultRuleEngineCallServiceTest.java

@ -78,25 +78,7 @@ public class DefaultRuleEngineCallServiceTest {
}
@Test
void givenRequest_whenProcessRestApiCallToRuleEngine_thenPushMsgToRuleEngine() {
long timeout = 100L;
long expTime = System.currentTimeMillis() + timeout;
HashMap<String, String> metaData = new HashMap<>();
UUID requestId = UUID.randomUUID();
metaData.put("serviceId", "core");
metaData.put("requestUUID", requestId.toString());
metaData.put("expirationTime", Long.toString(expTime));
TbMsg msg = TbMsg.newMsg(DataConstants.MAIN_QUEUE_NAME, TbMsgType.REST_API_REQUEST, TENANT_ID, new TbMsgMetaData(metaData), "{\"key\":\"value\"}");
Consumer<TbMsg> anyConsumer = TbMsg::getData;
ruleEngineCallService.processRestApiCallToRuleEngine(TENANT_ID, requestId, msg, true, anyConsumer);
assertThat(requests.size()).isEqualTo(1);
assertThat(requests.get(requestId)).isEqualTo(anyConsumer);
verify(tbClusterServiceMock).pushMsgToRuleEngine(TENANT_ID, TENANT_ID, msg, true, null);
}
@Test
void givenSmallTimeout_whenProcessRestApiCallToRuleEngine_thenDoesNotReturnResponse() {
void givenRequest_whenProcessRestApiCallToRuleEngine_thenPushMsgToRuleEngineAndCheckRemovedDueTimeout() {
long timeout = 1L;
long expTime = System.currentTimeMillis() + timeout;
HashMap<String, String> metaData = new HashMap<>();

Loading…
Cancel
Save