|
|
|
@ -23,9 +23,11 @@ import org.thingsboard.server.common.data.asset.Asset; |
|
|
|
import org.thingsboard.server.common.data.edge.Edge; |
|
|
|
import org.thingsboard.server.common.data.id.CustomerId; |
|
|
|
import org.thingsboard.server.common.data.id.EntityId; |
|
|
|
import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; |
|
|
|
import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; |
|
|
|
import org.thingsboard.server.gen.edge.v1.UpdateMsgType; |
|
|
|
|
|
|
|
import java.util.Optional; |
|
|
|
import java.util.UUID; |
|
|
|
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
|
|
|
@ -35,27 +37,33 @@ abstract public class BaseAssetEdgeTest extends AbstractEdgeTest { |
|
|
|
@Test |
|
|
|
public void testAssets() throws Exception { |
|
|
|
// create asset and assign to edge
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
edgeImitator.expectMessageAmount(2); |
|
|
|
Asset savedAsset = saveAsset("Edge Asset 2"); |
|
|
|
doPost("/api/edge/" + edge.getUuidId() |
|
|
|
+ "/asset/" + savedAsset.getUuidId(), Asset.class); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
AbstractMessage latestMessage = edgeImitator.getLatestMessage(); |
|
|
|
Assert.assertTrue(latestMessage instanceof AssetUpdateMsg); |
|
|
|
AssetUpdateMsg assetUpdateMsg = (AssetUpdateMsg) latestMessage; |
|
|
|
Optional<AssetUpdateMsg> assetUpdateMsgOpt = edgeImitator.findMessageByType(AssetUpdateMsg.class); |
|
|
|
Assert.assertTrue(assetUpdateMsgOpt.isPresent()); |
|
|
|
AssetUpdateMsg assetUpdateMsg = assetUpdateMsgOpt.get(); |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); |
|
|
|
Assert.assertEquals(savedAsset.getUuidId().getMostSignificantBits(), assetUpdateMsg.getIdMSB()); |
|
|
|
Assert.assertEquals(savedAsset.getUuidId().getLeastSignificantBits(), assetUpdateMsg.getIdLSB()); |
|
|
|
Assert.assertEquals(savedAsset.getName(), assetUpdateMsg.getName()); |
|
|
|
Assert.assertEquals(savedAsset.getType(), assetUpdateMsg.getType()); |
|
|
|
testAutoGeneratedCodeByProtobuf(assetUpdateMsg); |
|
|
|
Optional<AssetProfileUpdateMsg> assetProfileUpdateMsgOpt = edgeImitator.findMessageByType(AssetProfileUpdateMsg.class); |
|
|
|
Assert.assertTrue(assetProfileUpdateMsgOpt.isPresent()); |
|
|
|
AssetProfileUpdateMsg assetProfileUpdateMsg = assetProfileUpdateMsgOpt.get(); |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType()); |
|
|
|
Assert.assertEquals(savedAsset.getAssetProfileId().getId().getMostSignificantBits(), assetProfileUpdateMsg.getIdMSB()); |
|
|
|
Assert.assertEquals(savedAsset.getAssetProfileId().getId().getLeastSignificantBits(), assetProfileUpdateMsg.getIdLSB()); |
|
|
|
|
|
|
|
// update asset
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
savedAsset.setName("Edge Asset 2 Updated"); |
|
|
|
savedAsset = doPost("/api/asset", savedAsset, Asset.class); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
latestMessage = edgeImitator.getLatestMessage(); |
|
|
|
AbstractMessage latestMessage = edgeImitator.getLatestMessage(); |
|
|
|
Assert.assertTrue(latestMessage instanceof AssetUpdateMsg); |
|
|
|
assetUpdateMsg = (AssetUpdateMsg) latestMessage; |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); |
|
|
|
@ -80,19 +88,27 @@ abstract public class BaseAssetEdgeTest extends AbstractEdgeTest { |
|
|
|
Assert.assertFalse(edgeImitator.waitForMessages(1)); |
|
|
|
|
|
|
|
// create asset #2 and assign to edge
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
edgeImitator.expectMessageAmount(2); |
|
|
|
savedAsset = saveAsset("Edge Asset 3"); |
|
|
|
doPost("/api/edge/" + edge.getUuidId() |
|
|
|
+ "/asset/" + savedAsset.getUuidId(), Asset.class); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
latestMessage = edgeImitator.getLatestMessage(); |
|
|
|
Assert.assertTrue(latestMessage instanceof AssetUpdateMsg); |
|
|
|
assetUpdateMsg = (AssetUpdateMsg) latestMessage; |
|
|
|
assetUpdateMsgOpt = edgeImitator.findMessageByType(AssetUpdateMsg.class); |
|
|
|
Assert.assertTrue(assetUpdateMsgOpt.isPresent()); |
|
|
|
assetUpdateMsg = assetUpdateMsgOpt.get(); |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); |
|
|
|
Assert.assertEquals(savedAsset.getUuidId().getMostSignificantBits(), assetUpdateMsg.getIdMSB()); |
|
|
|
Assert.assertEquals(savedAsset.getUuidId().getLeastSignificantBits(), assetUpdateMsg.getIdLSB()); |
|
|
|
Assert.assertEquals(savedAsset.getName(), assetUpdateMsg.getName()); |
|
|
|
Assert.assertEquals(savedAsset.getType(), assetUpdateMsg.getType()); |
|
|
|
testAutoGeneratedCodeByProtobuf(assetUpdateMsg); |
|
|
|
assetProfileUpdateMsgOpt = edgeImitator.findMessageByType(AssetProfileUpdateMsg.class); |
|
|
|
Assert.assertTrue(assetProfileUpdateMsgOpt.isPresent()); |
|
|
|
assetProfileUpdateMsg = assetProfileUpdateMsgOpt.get(); |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType()); |
|
|
|
Assert.assertEquals(savedAsset.getAssetProfileId().getId().getMostSignificantBits(), assetProfileUpdateMsg.getIdMSB()); |
|
|
|
Assert.assertEquals(savedAsset.getAssetProfileId().getId().getLeastSignificantBits(), assetProfileUpdateMsg.getIdLSB()); |
|
|
|
|
|
|
|
// assign asset #2 to customer
|
|
|
|
Customer customer = new Customer(); |
|
|
|
|