|
|
|
@ -33,6 +33,7 @@ import org.thingsboard.server.common.data.cf.configuration.SimpleCalculatedField |
|
|
|
import org.thingsboard.server.common.data.debug.DebugSettings; |
|
|
|
import org.thingsboard.server.common.data.id.EntityId; |
|
|
|
import org.thingsboard.server.dao.service.DaoSqlTest; |
|
|
|
import org.thingsboard.server.gen.edge.v1.CalculatedFieldRequestMsg; |
|
|
|
import org.thingsboard.server.gen.edge.v1.CalculatedFieldUpdateMsg; |
|
|
|
import org.thingsboard.server.gen.edge.v1.UpdateMsgType; |
|
|
|
import org.thingsboard.server.gen.edge.v1.UplinkMsg; |
|
|
|
@ -114,6 +115,43 @@ public class CalculatedFieldEdgeTest extends AbstractEdgeTest { |
|
|
|
checkCalculatedFieldOnCloud(uplinkMsg, uuid, calculatedField.getName()); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testSendCalculatedFieldRequestToCloud() throws Exception { |
|
|
|
Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge(); |
|
|
|
|
|
|
|
// create calculatedField
|
|
|
|
SimpleCalculatedFieldConfiguration config = new SimpleCalculatedFieldConfiguration(); |
|
|
|
CalculatedField calculatedField = createSimpleCalculatedField(savedDevice.getId(), config); |
|
|
|
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
CalculatedField savedCalculatedField = doPost("/api/calculatedField", calculatedField, CalculatedField.class); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
|
|
|
|
UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); |
|
|
|
CalculatedFieldRequestMsg.Builder calculatedFieldRequestMsgBuilder = CalculatedFieldRequestMsg.newBuilder(); |
|
|
|
calculatedFieldRequestMsgBuilder.setEntityIdMSB(savedDevice.getId().getId().getMostSignificantBits()); |
|
|
|
calculatedFieldRequestMsgBuilder.setEntityIdLSB(savedDevice.getId().getId().getLeastSignificantBits()); |
|
|
|
calculatedFieldRequestMsgBuilder.setEntityType(savedDevice.getId().getEntityType().name()); |
|
|
|
testAutoGeneratedCodeByProtobuf(calculatedFieldRequestMsgBuilder); |
|
|
|
|
|
|
|
uplinkMsgBuilder.addCalculatedFieldRequestMsg(calculatedFieldRequestMsgBuilder.build()); |
|
|
|
testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder); |
|
|
|
|
|
|
|
edgeImitator.expectResponsesAmount(1); |
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build()); |
|
|
|
Assert.assertTrue(edgeImitator.waitForResponses()); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
|
|
|
|
AbstractMessage latestMessage = edgeImitator.getLatestMessage(); |
|
|
|
Assert.assertTrue(latestMessage instanceof CalculatedFieldUpdateMsg); |
|
|
|
CalculatedFieldUpdateMsg calculatedFieldUpdateMsg = (CalculatedFieldUpdateMsg) latestMessage; |
|
|
|
CalculatedField calculatedFieldFromEdge = JacksonUtil.fromString(calculatedFieldUpdateMsg.getEntity(), CalculatedField.class, true); |
|
|
|
Assert.assertNotNull(calculatedFieldFromEdge); |
|
|
|
Assert.assertEquals(savedCalculatedField, calculatedFieldFromEdge); |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, calculatedFieldUpdateMsg.getMsgType()); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testUpdateCalculatedFieldNameOnCloud() throws Exception { |
|
|
|
Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge(); |
|
|
|
|