|
|
|
@ -15,6 +15,7 @@ |
|
|
|
*/ |
|
|
|
package org.thingsboard.rule.engine.edge; |
|
|
|
|
|
|
|
import com.google.common.util.concurrent.SettableFuture; |
|
|
|
import org.junit.Before; |
|
|
|
import org.junit.Test; |
|
|
|
import org.junit.runner.RunWith; |
|
|
|
@ -22,21 +23,28 @@ import org.mockito.Mock; |
|
|
|
import org.mockito.Mockito; |
|
|
|
import org.mockito.junit.MockitoJUnitRunner; |
|
|
|
import org.thingsboard.common.util.JacksonUtil; |
|
|
|
import org.thingsboard.common.util.ListeningExecutor; |
|
|
|
import org.thingsboard.rule.engine.api.TbContext; |
|
|
|
import org.thingsboard.rule.engine.api.TbNodeConfiguration; |
|
|
|
import org.thingsboard.rule.engine.api.TbNodeException; |
|
|
|
import org.thingsboard.server.common.data.DataConstants; |
|
|
|
import org.thingsboard.server.common.data.id.DeviceId; |
|
|
|
import org.thingsboard.server.common.data.id.EdgeId; |
|
|
|
import org.thingsboard.server.common.data.id.TenantId; |
|
|
|
import org.thingsboard.server.common.data.id.UserId; |
|
|
|
import org.thingsboard.server.common.data.page.PageData; |
|
|
|
import org.thingsboard.server.common.data.page.PageLink; |
|
|
|
import org.thingsboard.server.common.msg.TbMsg; |
|
|
|
import org.thingsboard.server.common.msg.TbMsgDataType; |
|
|
|
import org.thingsboard.server.common.msg.TbMsgMetaData; |
|
|
|
import org.thingsboard.server.common.msg.session.SessionMsgType; |
|
|
|
import org.thingsboard.server.dao.edge.EdgeEventService; |
|
|
|
import org.thingsboard.server.dao.edge.EdgeService; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
import java.util.UUID; |
|
|
|
|
|
|
|
import static org.mockito.ArgumentMatchers.any; |
|
|
|
import static org.mockito.Mockito.verify; |
|
|
|
|
|
|
|
@RunWith(MockitoJUnitRunner.class) |
|
|
|
@ -52,6 +60,10 @@ public class TbMsgPushToEdgeNodeTest { |
|
|
|
|
|
|
|
@Mock |
|
|
|
private EdgeService edgeService; |
|
|
|
@Mock |
|
|
|
private EdgeEventService edgeEventService; |
|
|
|
@Mock |
|
|
|
private ListeningExecutor dbCallbackExecutor; |
|
|
|
|
|
|
|
@Before |
|
|
|
public void setUp() throws TbNodeException { |
|
|
|
@ -73,4 +85,25 @@ public class TbMsgPushToEdgeNodeTest { |
|
|
|
|
|
|
|
verify(ctx).ack(msg); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testAttributeUpdateMsg_userEntity() { |
|
|
|
Mockito.when(ctx.getTenantId()).thenReturn(tenantId); |
|
|
|
Mockito.when(ctx.getEdgeService()).thenReturn(edgeService); |
|
|
|
Mockito.when(ctx.getEdgeEventService()).thenReturn(edgeEventService); |
|
|
|
Mockito.when(ctx.getDbCallbackExecutor()).thenReturn(dbCallbackExecutor); |
|
|
|
Mockito.when(edgeEventService.saveAsync(any())).thenReturn(SettableFuture.create()); |
|
|
|
|
|
|
|
UserId userId = new UserId(UUID.randomUUID()); |
|
|
|
EdgeId edgeId = new EdgeId(UUID.randomUUID()); |
|
|
|
PageData<EdgeId> edgePageData = new PageData<>(List.of(edgeId), 1, 1, false); |
|
|
|
Mockito.when(edgeService.findRelatedEdgeIdsByEntityId(tenantId, userId, new PageLink(TbMsgPushToEdgeNode.DEFAULT_PAGE_SIZE))).thenReturn(edgePageData); |
|
|
|
|
|
|
|
TbMsg msg = TbMsg.newMsg(DataConstants.ATTRIBUTES_UPDATED, userId, new TbMsgMetaData(), |
|
|
|
TbMsgDataType.JSON, "{}", null, null); |
|
|
|
|
|
|
|
node.onMsg(ctx, msg); |
|
|
|
|
|
|
|
verify(edgeEventService).saveAsync(any()); |
|
|
|
} |
|
|
|
} |
|
|
|
|