Skip to content

Commit d9e78c4

Browse files
author
Adrien Maret
authored
2.0.0-rc9 : Allow to enrich measure with asset info (#207)
Add a new event to enrich measures with data coming from the linked asset: device-manager:measures:receive The MeasureService has been refactored to allow that. Before, caches were built to group requests but it was forbidding from triggering individual events per device. The performance hit (if any) should be negligible since we are batching requests anyway. If needed, we will fine tune performances later.
1 parent c6cde22 commit d9e78c4

File tree

13 files changed

+7972
-1089
lines changed

13 files changed

+7972
-1089
lines changed

features/DeviceController/LinkAsset.feature

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -30,68 +30,68 @@ Feature: LinkAsset
3030
| deviceLinks[0].deviceId | "DummyMultiTemp-attached_ayse_unlinked_1" |
3131
| deviceLinks[0].measureNamesLinks[0].assetMeasureName | "innerTemp" |
3232
| deviceLinks[0].measureNamesLinks[0].deviceMeasureName | "innerTemp" |
33-
| deviceLinks[0].measureNamesLinks[1].assetMeasureName | "outerTemp" |
34-
| deviceLinks[0].measureNamesLinks[1].deviceMeasureName | "outerTemp" |
33+
| deviceLinks[0].measureNamesLinks[1].assetMeasureName | "outerTemp" |
34+
| deviceLinks[0].measureNamesLinks[1].deviceMeasureName | "outerTemp" |
3535
| deviceLinks[0].measureNamesLinks[2].assetMeasureName | "lvlBattery" |
3636
| deviceLinks[0].measureNamesLinks[2].deviceMeasureName | "lvlBattery" |
3737

3838
Scenario: Link device to an asset with measureNamesLinks
3939
When I successfully execute the action "device-manager/device":"linkAsset" with args:
40-
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
41-
| assetId | "container-FRIDGE-unlinked_1" |
42-
| body.measureNamesLinks[0].assetMeasureName | "coreInnerTemp" |
43-
| body.measureNamesLinks[0].deviceMeasureName | "innerTemp" |
44-
| engineId | "engine-ayse" |
40+
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
41+
| assetId | "container-FRIDGE-unlinked_1" |
42+
| body.measureNamesLinks[0].assetMeasureName | "coreInnerTemp" |
43+
| body.measureNamesLinks[0].deviceMeasureName | "innerTemp" |
44+
| engineId | "engine-ayse" |
4545
Then The document "device-manager":"devices":"DummyMultiTemp-attached_ayse_unlinked_1" content match:
4646
| assetId | "container-FRIDGE-unlinked_1" |
4747
And The document "engine-ayse":"devices":"DummyMultiTemp-attached_ayse_unlinked_1" content match:
4848
| assetId | "container-FRIDGE-unlinked_1" |
4949
And The document "engine-ayse":"assets":"container-FRIDGE-unlinked_1" content match:
50-
| deviceLinks[0].deviceId | "DummyMultiTemp-attached_ayse_unlinked_1" |
51-
| deviceLinks[0].measureNamesLinks[0].assetMeasureName | "coreInnerTemp" |
52-
| deviceLinks[0].measureNamesLinks[0].deviceMeasureName | "innerTemp" |
50+
| deviceLinks[0].deviceId | "DummyMultiTemp-attached_ayse_unlinked_1" |
51+
| deviceLinks[0].measureNamesLinks[0].assetMeasureName | "coreInnerTemp" |
52+
| deviceLinks[0].measureNamesLinks[0].deviceMeasureName | "innerTemp" |
5353

5454
Scenario: Link device to an asset and enriching the asset with before event
5555
When I successfully execute the action "device-manager/device":"linkAsset" with args:
56-
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
57-
| assetId | "container-FRIDGE-unlinked_1" |
58-
| engineId | "engine-ayse" |
56+
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
57+
| assetId | "container-FRIDGE-unlinked_1" |
58+
| engineId | "engine-ayse" |
5959
Then The document "tests":"events":"device-manager:device:link-asset:before" content match:
6060
| device._id | "DummyMultiTemp-attached_ayse_unlinked_1" |
61-
| asset._id | "container-FRIDGE-unlinked_1" |
61+
| asset._id | "container-FRIDGE-unlinked_1" |
6262
And The document "tests":"events":"device-manager:device:link-asset:after" content match:
6363
| device._id | "DummyMultiTemp-attached_ayse_unlinked_1" |
64-
| asset._id | "container-FRIDGE-unlinked_1" |
64+
| asset._id | "container-FRIDGE-unlinked_1" |
6565

6666
Scenario: Error when device is already linked
6767
When I successfully execute the action "device-manager/device":"linkAsset" with args:
68-
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
69-
| assetId | "container-FRIDGE-unlinked_1" |
70-
| engineId | "engine-ayse" |
68+
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
69+
| assetId | "container-FRIDGE-unlinked_1" |
70+
| engineId | "engine-ayse" |
7171
And I execute the action "device-manager/device":"linkAsset" with args:
72-
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
73-
| assetId | "tools-SCREW-unlinked_1" |
74-
| engineId | "engine-ayse" |
72+
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
73+
| assetId | "tools-SCREW-unlinked_1" |
74+
| engineId | "engine-ayse" |
7575
Then I should receive an error matching:
7676
| message | "Device \"DummyMultiTemp-attached_ayse_unlinked_1\" is already linked to an asset." |
77-
77+
7878
Scenario: Link multiple device to multiple assets using JSON
7979
When I successfully execute the action "device-manager/device":"mLinkAssets" with args:
80-
| body.linkRequests[0].assetId | "container-FRIDGE-unlinked_1" |
81-
| body.linkRequests[0].deviceLink.deviceId | "DummyMultiTemp-attached_ayse_unlinked_1" |
82-
| engineId | "engine-ayse" |
80+
| body.linkRequests[0].assetId | "container-FRIDGE-unlinked_1" |
81+
| body.linkRequests[0].deviceLink.deviceId | "DummyMultiTemp-attached_ayse_unlinked_1" |
82+
| engineId | "engine-ayse" |
8383
Then The document "device-manager":"devices":"DummyMultiTemp-attached_ayse_unlinked_1" content match:
8484
| assetId | "container-FRIDGE-unlinked_1" |
8585
And The document "engine-ayse":"devices":"DummyMultiTemp-attached_ayse_unlinked_1" content match:
8686
| assetId | "container-FRIDGE-unlinked_1" |
8787

8888
Scenario: Error when device is not attached to an engine
8989
When I execute the action "device-manager/device":"linkAsset" with args:
90-
| _id | "DummyMultiTemp-detached" |
91-
| assetId | "container-FRIDGE-unlinked_1" |
92-
| body.measureNamesLinks[0].assetMeasureName | "outerTemp" |
93-
| body.measureNamesLinks[0].deviceMeasureName | "theTemperature" |
94-
| engineId | "engine-ayse" |
90+
| _id | "DummyMultiTemp-detached" |
91+
| assetId | "container-FRIDGE-unlinked_1" |
92+
| body.measureNamesLinks[0].assetMeasureName | "outerTemp" |
93+
| body.measureNamesLinks[0].deviceMeasureName | "theTemperature" |
94+
| engineId | "engine-ayse" |
9595
Then I should receive an error matching:
9696
| message | "Device \"DummyMultiTemp-detached\" is not attached to an engine." |
9797

@@ -113,10 +113,10 @@ Feature: LinkAsset
113113

114114
Scenario: Error when device is linked to non-existing asset
115115
When I execute the action "device-manager/device":"linkAsset" with args:
116-
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
117-
| assetId | "PERFO-non-existing" |
118-
| engineId | "engine-ayse" |
119-
| body.measureNamesLinks[0].assetMeasureName | "outerTemp" |
120-
| body.measureNamesLinks[0].deviceMeasureName | "theTemperature" |
116+
| _id | "DummyMultiTemp-attached_ayse_unlinked_1" |
117+
| assetId | "PERFO-non-existing" |
118+
| engineId | "engine-ayse" |
119+
| body.measureNamesLinks[0].assetMeasureName | "outerTemp" |
120+
| body.measureNamesLinks[0].deviceMeasureName | "theTemperature" |
121121
Then I should receive an error matching:
122122
| message | "Document \"PERFO-non-existing\" not found in \"engine-ayse\":\"assets\"." |

0 commit comments

Comments
 (0)