iotagent-node-lib 2.15.1 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/.github/workflows/ci.yml +17 -1
  2. package/.readthedocs.yml +7 -0
  3. package/CHANGES_NEXT_RELEASE +0 -1
  4. package/README.md +1 -0
  5. package/doc/Contribution.md +60 -1
  6. package/doc/advanced-topics.md +136 -14
  7. package/doc/api.md +38 -22
  8. package/doc/apiary/iotagent.apib +1 -3
  9. package/doc/architecture.md +2 -2
  10. package/doc/config-basic-example.js +0 -1
  11. package/doc/deprecated.md +2 -2
  12. package/doc/development.md +13 -6
  13. package/doc/expressionLanguage.md +519 -277
  14. package/doc/getting-started.md +0 -1
  15. package/doc/howto.md +13 -17
  16. package/doc/installationguide.md +67 -69
  17. package/doc/usermanual.md +48 -16
  18. package/docker/Mosquitto/Dockerfile +4 -9
  19. package/docker/Mosquitto/README.md +2 -0
  20. package/docker/Mosquitto/startMosquitto.sh +18 -1
  21. package/lib/command/commandLine.js +1 -1
  22. package/lib/commonConfig.js +5 -14
  23. package/lib/errors.js +0 -16
  24. package/lib/fiware-iotagent-lib.js +5 -0
  25. package/lib/jexlTranformsMap.js +71 -0
  26. package/lib/model/Command.js +1 -1
  27. package/lib/model/Device.js +5 -2
  28. package/lib/model/Group.js +20 -2
  29. package/lib/model/dbConn.js +7 -1
  30. package/lib/plugins/attributeAlias.js +6 -13
  31. package/lib/plugins/bidirectionalData.js +2 -27
  32. package/lib/plugins/expressionParser.js +41 -17
  33. package/lib/plugins/expressionPlugin.js +21 -27
  34. package/lib/plugins/jexlParser.js +71 -67
  35. package/lib/plugins/multiEntity.js +68 -147
  36. package/lib/plugins/pluginUtils.js +12 -48
  37. package/lib/plugins/timestampProcessPlugin.js +1 -46
  38. package/lib/request-shim.js +111 -0
  39. package/lib/services/common/domain.js +2 -2
  40. package/lib/services/common/genericMiddleware.js +6 -2
  41. package/lib/services/common/iotManagerService.js +1 -1
  42. package/lib/services/common/securityServiceKeystone.js +1 -1
  43. package/lib/services/common/securityServiceOAuth2.js +3 -2
  44. package/lib/services/devices/deviceRegistryMongoDB.js +29 -22
  45. package/lib/services/devices/deviceService.js +56 -33
  46. package/lib/services/devices/devices-NGSI-LD.js +42 -14
  47. package/lib/services/devices/devices-NGSI-mixed.js +3 -3
  48. package/lib/services/devices/devices-NGSI-v2.js +48 -24
  49. package/lib/services/devices/registrationUtils.js +1 -134
  50. package/lib/services/groups/groupRegistryMemory.js +2 -0
  51. package/lib/services/groups/groupRegistryMongoDB.js +58 -76
  52. package/lib/services/groups/groupService.js +1 -1
  53. package/lib/services/ngsi/entities-NGSI-LD.js +205 -124
  54. package/lib/services/ngsi/entities-NGSI-v2.js +142 -32
  55. package/lib/services/ngsi/ngsiService.js +4 -6
  56. package/lib/services/ngsi/ngsiUtils.js +0 -21
  57. package/lib/services/ngsi/subscription-NGSI-LD.js +14 -5
  58. package/lib/services/ngsi/subscriptionService.js +1 -4
  59. package/lib/services/northBound/contextServer-NGSI-LD.js +7 -2
  60. package/lib/services/northBound/contextServer-NGSI-v2.js +25 -13
  61. package/lib/services/northBound/contextServer.js +1 -4
  62. package/lib/services/northBound/contextServerUtils.js +0 -81
  63. package/lib/services/northBound/deviceProvisioningServer.js +36 -9
  64. package/lib/services/northBound/northboundServer.js +2 -0
  65. package/lib/services/northBound/restUtils.js +2 -39
  66. package/lib/templates/updateDevice.json +4 -0
  67. package/lib/templates/updateDeviceLax.json +4 -0
  68. package/package.json +13 -13
  69. package/test/tools/utils.js +2 -0
  70. package/test/unit/examples/deviceProvisioningRequests/provisionAnotherDevice.json +1 -1
  71. package/test/unit/examples/deviceProvisioningRequests/provisionDeviceMissingParameters.json +1 -1
  72. package/test/unit/examples/deviceProvisioningRequests/provisionDuplicatedDev.json +1 -1
  73. package/test/unit/examples/deviceProvisioningRequests/provisionFullDevice.json +1 -1
  74. package/test/unit/examples/deviceProvisioningRequests/provisionNewDeviceMalformed1.json +1 -1
  75. package/test/unit/examples/groupProvisioningRequests/multipleGroupsCreation.json +1 -1
  76. package/test/unit/examples/iotamRequests/registrationEmpty.json +1 -1
  77. package/test/unit/examples/iotamRequests/registrationWithGroups.json +2 -2
  78. package/test/unit/examples/iotamRequests/registrationWithGroupsWithoutCB.json +2 -2
  79. package/test/unit/examples/iotamRequests/registrationWithStaticGroups.json +2 -2
  80. package/test/unit/expressions/jexlExpression-test.js +119 -0
  81. package/test/unit/general/config-multi-core-test.js +1 -1
  82. package/test/unit/general/contextBrokerKeystoneSecurityAccess-test.js +30 -77
  83. package/test/unit/general/deviceService-test.js +19 -35
  84. package/test/unit/general/loglevel-api_test.js +8 -13
  85. package/test/unit/general/migration-test.js +1 -0
  86. package/test/unit/general/startup-test.js +3 -2
  87. package/test/unit/general/statistics-persistence_test.js +2 -2
  88. package/test/unit/general/statistics-service_test.js +2 -2
  89. package/test/unit/lazyAndCommands/commandRegistry_test.js +18 -18
  90. package/test/unit/memoryRegistry/deviceRegistryMemory_test.js +16 -24
  91. package/test/unit/mongodb/mongodb-connectionoptions-test.js +2 -2
  92. package/test/unit/mongodb/mongodb-group-registry-test.js +11 -11
  93. package/test/unit/mongodb/mongodb-registry-test.js +55 -131
  94. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerIoTAgent1.json +1 -1
  95. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerIoTAgent2.json +1 -1
  96. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerIoTAgent4.json +1 -1
  97. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerIoTAgentCommands.json +1 -1
  98. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerProvisionedDevice.json +1 -1
  99. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerProvisionedDevice2.json +1 -1
  100. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup.json +1 -1
  101. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup2.json +1 -1
  102. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup3.json +1 -1
  103. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/updateCommands1.json +1 -1
  104. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/updateIoTAgent1.json +1 -1
  105. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/updateIoTAgent2.json +1 -1
  106. package/test/unit/ngsi-ld/examples/contextAvailabilityRequests/updateIoTAgent3.json +1 -1
  107. package/test/unit/ngsi-ld/examples/contextRequests/createMinimumProvisionedDevice.json +0 -7
  108. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDevice.json +0 -7
  109. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceMultientity.json +0 -7
  110. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic.json +0 -14
  111. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic2.json +0 -14
  112. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic3.json +1 -15
  113. package/test/unit/ngsi-ld/examples/contextRequests/createTimeInstantMinimumDevice.json +0 -7
  114. package/test/unit/ngsi-ld/examples/contextRequests/updateContextAliasPlugin6.json +0 -7
  115. package/test/unit/ngsi-ld/examples/contextRequests/updateContextAutocast5.json +0 -7
  116. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin12a.json +7 -0
  117. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin13.json +13 -13
  118. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin16.json +0 -7
  119. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin17.json +0 -7
  120. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin1a.json +18 -0
  121. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin29.json +18 -0
  122. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin31.json +15 -0
  123. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin32.json +17 -0
  124. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin33.json +18 -0
  125. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin34.json +17 -0
  126. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin4a.json +36 -0
  127. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin5.json +0 -7
  128. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin7.json +16 -16
  129. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin8a.json +18 -0
  130. package/test/unit/ngsi-ld/examples/contextRequests/updateContextGeoproperties3.json +0 -7
  131. package/test/unit/ngsi-ld/examples/contextRequests/updateContextMultientityPlugin15.json +25 -0
  132. package/test/unit/ngsi-ld/examples/contextRequests/updateContextMultientityTimestampPlugin1.json +6 -6
  133. package/test/unit/ngsi-ld/examples/contextRequests/updateContextMultientityTimestampPlugin2.json +3 -3
  134. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionActiveAttributes1.json +0 -7
  135. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionCommands1.json +0 -7
  136. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionDeviceStatic.json +0 -7
  137. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionMinimumDevice.json +0 -7
  138. package/test/unit/ngsi-ld/examples/subscriptionRequests/bidirectionalSubscriptionRequest.json +20 -17
  139. package/test/unit/ngsi-ld/examples/subscriptionRequests/simpleSubscriptionRequest.json +18 -15
  140. package/test/unit/ngsi-ld/examples/subscriptionRequests/simpleSubscriptionRequest2.json +18 -15
  141. package/test/unit/ngsi-ld/expressions/expressionBasedTransformations-test.js +21 -21
  142. package/test/unit/ngsi-ld/expressions/jexlBasedTransformations-test.js +1018 -0
  143. package/test/unit/ngsi-ld/general/config-jsonld-contexts-test.js +2 -2
  144. package/test/unit/ngsi-ld/general/contextBrokerOAuthSecurityAccess-test.js +24 -24
  145. package/test/unit/ngsi-ld/general/deviceService-test.js +7 -7
  146. package/test/unit/ngsi-ld/general/https-support-test.js +14 -13
  147. package/test/unit/ngsi-ld/general/iotam-autoregistration-test.js +8 -7
  148. package/test/unit/ngsi-ld/general/startup-test.js +2 -1
  149. package/test/unit/ngsi-ld/lazyAndCommands/active-devices-attribute-update-test.js +10 -8
  150. package/test/unit/ngsi-ld/lazyAndCommands/command-test.js +11 -12
  151. package/test/unit/ngsi-ld/lazyAndCommands/lazy-devices-test.js +25 -29
  152. package/test/unit/ngsi-ld/lazyAndCommands/polling-commands-test.js +16 -15
  153. package/test/unit/ngsi-ld/ngsiService/active-devices-test.js +18 -17
  154. package/test/unit/ngsi-ld/ngsiService/autocast-test.js +13 -12
  155. package/test/unit/ngsi-ld/ngsiService/geoproperties-test.js +10 -9
  156. package/test/unit/ngsi-ld/ngsiService/staticAttributes-test.js +3 -3
  157. package/test/unit/ngsi-ld/ngsiService/subscriptions-test.js +25 -24
  158. package/test/unit/ngsi-ld/plugins/alias-plugin_test.js +13 -12
  159. package/test/unit/ngsi-ld/plugins/bidirectional-plugin_test.js +27 -26
  160. package/test/unit/ngsi-ld/plugins/compress-timestamp-plugin_test.js +5 -5
  161. package/test/unit/ngsi-ld/plugins/event-plugin_test.js +3 -3
  162. package/test/unit/ngsi-ld/plugins/multientity-plugin_test.js +75 -14
  163. package/test/unit/ngsi-ld/plugins/timestamp-processing-plugin_test.js +3 -3
  164. package/test/unit/ngsi-ld/provisioning/device-provisioning-api_test.js +54 -53
  165. package/test/unit/ngsi-ld/provisioning/device-registration_test.js +20 -19
  166. package/test/unit/ngsi-ld/provisioning/device-update-registration_test.js +23 -22
  167. package/test/unit/ngsi-ld/provisioning/listProvisionedDevices-test.js +58 -70
  168. package/test/unit/ngsi-ld/provisioning/provisionDeviceMultientity-test.js +8 -7
  169. package/test/unit/ngsi-ld/provisioning/removeProvisionedDevice-test.js +19 -19
  170. package/test/unit/ngsi-ld/provisioning/singleConfigurationMode-test.js +18 -20
  171. package/test/unit/ngsi-ld/provisioning/updateProvisionedDevices-test.js +43 -49
  172. package/test/unit/ngsi-mixed/provisioning/ngsi-versioning-test.js +16 -14
  173. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent1.json +1 -1
  174. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent2.json +1 -1
  175. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent3.json +19 -0
  176. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent4.json +1 -1
  177. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent5.json +19 -0
  178. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgentCommands.json +1 -1
  179. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerProvisionedDevice.json +1 -1
  180. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerProvisionedDevice2.json +1 -1
  181. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup.json +1 -1
  182. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup2.json +1 -1
  183. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup3.json +1 -1
  184. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/updateCommands1.json +3 -3
  185. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/updateIoTAgent1.json +3 -3
  186. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/updateIoTAgent2.json +1 -1
  187. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/updateIoTAgent3.json +1 -1
  188. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin1.json +17 -1
  189. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin11.json +5 -1
  190. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin12.json +2 -2
  191. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin15.json +6 -0
  192. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin16.json +14 -0
  193. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin17.json +14 -0
  194. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin18.json +6 -0
  195. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin19.json +6 -0
  196. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin2.json +13 -1
  197. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin20.json +6 -0
  198. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin21.json +6 -0
  199. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin22.json +6 -0
  200. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin23.json +6 -0
  201. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin24.json +6 -0
  202. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin25.json +6 -0
  203. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin26.json +6 -0
  204. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin27.json +6 -0
  205. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin28.json +6 -0
  206. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin29.json +22 -0
  207. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin3.json +5 -1
  208. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin30.json +6 -0
  209. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin31.json +18 -0
  210. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin32.json +16 -0
  211. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin33.json +22 -0
  212. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin34.json +12 -0
  213. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin4.json +12 -0
  214. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin5.json +5 -1
  215. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin6.json +5 -1
  216. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin7.json +5 -1
  217. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin8.json +17 -1
  218. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin9.json +5 -1
  219. package/test/unit/ngsiv2/examples/contextRequests/updateContextMiddleware1.json +10 -0
  220. package/test/unit/ngsiv2/examples/contextRequests/updateContextMiddleware2.json +10 -0
  221. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin1.json +2 -2
  222. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin10.json +1 -1
  223. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin11.json +13 -0
  224. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin12.json +33 -0
  225. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin13.json +33 -0
  226. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin14.json +33 -0
  227. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin15.json +25 -0
  228. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin16.json +25 -0
  229. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin2.json +2 -2
  230. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin3.json +1 -1
  231. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin4.json +1 -1
  232. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin5.json +1 -1
  233. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin6.json +1 -1
  234. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin7.json +1 -1
  235. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin8.json +2 -2
  236. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin9.json +1 -1
  237. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityTimestampPlugin1.json +8 -8
  238. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityTimestampPlugin2.json +4 -4
  239. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityTimestampPlugin3.json +1 -1
  240. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityTimestampPlugin4.json +2 -2
  241. package/test/unit/ngsiv2/examples/contextRequests/updateProvisionDevice.json +20 -0
  242. package/test/unit/ngsiv2/examples/subscriptionRequests/bidirectionalSubscriptionRequest.json +1 -1
  243. package/test/unit/ngsiv2/examples/subscriptionRequests/simpleSubscriptionRequest.json +1 -1
  244. package/test/unit/ngsiv2/examples/subscriptionRequests/simpleSubscriptionRequest2.json +1 -1
  245. package/test/unit/ngsiv2/expressions/expressionBasedTransformations-test.js +93 -60
  246. package/test/unit/ngsiv2/expressions/expressionCombinedTransformations-test.js +16 -16
  247. package/test/unit/ngsiv2/expressions/jexlBasedTransformations-test.js +548 -164
  248. package/test/unit/ngsiv2/general/contextBrokerOAuthSecurityAccess-test.js +34 -33
  249. package/test/unit/ngsiv2/general/deviceService-test.js +15 -14
  250. package/test/unit/ngsiv2/general/https-support-test.js +14 -13
  251. package/test/unit/ngsiv2/general/iotam-autoregistration-test.js +8 -7
  252. package/test/unit/ngsiv2/general/startup-test.js +2 -1
  253. package/test/unit/ngsiv2/lazyAndCommands/active-devices-attribute-update-test.js +9 -7
  254. package/test/unit/ngsiv2/lazyAndCommands/command-test.js +13 -12
  255. package/test/unit/ngsiv2/lazyAndCommands/lazy-devices-test.js +323 -51
  256. package/test/unit/ngsiv2/lazyAndCommands/polling-commands-test.js +22 -20
  257. package/test/unit/ngsiv2/ngsiService/active-devices-test.js +114 -26
  258. package/test/unit/ngsiv2/ngsiService/autocast-test.js +16 -16
  259. package/test/unit/ngsiv2/ngsiService/geoproperties-test.js +39 -38
  260. package/test/unit/{ngsiService → ngsiv2/ngsiService}/queryDeviceInformationInCb-test.js +25 -54
  261. package/test/unit/ngsiv2/ngsiService/staticAttributes-test.js +5 -5
  262. package/test/unit/ngsiv2/ngsiService/subscriptions-test.js +25 -24
  263. package/test/unit/ngsiv2/plugins/alias-plugin_test.js +22 -22
  264. package/test/unit/ngsiv2/plugins/bidirectional-plugin_test.js +27 -26
  265. package/test/unit/ngsiv2/plugins/compress-timestamp-plugin_test.js +7 -7
  266. package/test/unit/ngsiv2/plugins/event-plugin_test.js +4 -4
  267. package/test/unit/ngsiv2/plugins/multientity-plugin_test.js +549 -24
  268. package/test/unit/ngsiv2/plugins/timestamp-processing-plugin_test.js +4 -4
  269. package/test/unit/{plugins → ngsiv2/plugins}/translation-inPlugins_test.js +25 -25
  270. package/test/unit/{provisioning → ngsiv2/provisioning}/device-group-api-test.js +44 -75
  271. package/test/unit/{provisioning/device-group-utils_test.js → ngsiv2/provisioning/device-group-utils-test.js} +15 -14
  272. package/test/unit/ngsiv2/provisioning/device-provisioning-api_test.js +74 -73
  273. package/test/unit/ngsiv2/provisioning/device-registration_test.js +20 -19
  274. package/test/unit/ngsiv2/provisioning/device-update-registration_test.js +30 -29
  275. package/test/unit/ngsiv2/provisioning/listProvisionedDevices-test.js +58 -69
  276. package/test/unit/ngsiv2/provisioning/provisionDeviceMultientity-test.js +8 -7
  277. package/test/unit/ngsiv2/provisioning/removeProvisionedDevice-test.js +19 -19
  278. package/test/unit/ngsiv2/provisioning/singleConfigurationMode-test.js +18 -19
  279. package/test/unit/ngsiv2/provisioning/updateProvisionedDevices-test.js +49 -52
  280. package/test/unit/plugins/capture-configuration-inPlugins_test.js +6 -4
  281. package/test/unit/plugins/capture-provision-inPlugins_test.js +13 -23
  282. package/.nyc_output/016aca19-69bf-4681-9b41-2835c5131681.json +0 -1
  283. package/.nyc_output/processinfo/016aca19-69bf-4681-9b41-2835c5131681.json +0 -1
  284. package/.nyc_output/processinfo/index.json +0 -1
  285. package/lib/services/devices/devices-NGSI-v1.js +0 -293
  286. package/lib/services/devices/registrationUtils.js_avega +0 -589
  287. package/lib/services/ngsi/entities-NGSI-v1.js +0 -300
  288. package/lib/services/ngsi/subscription-NGSI-v1.js +0 -234
  289. package/lib/services/northBound/contextServer-NGSI-v1.js +0 -526
  290. package/lib/templates/notificationTemplateNgsi1.json +0 -75
  291. package/lib/templates/updateContextNgsi1.json +0 -50
  292. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent1.json +0 -21
  293. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent2.json +0 -21
  294. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent3.json +0 -25
  295. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent4.json +0 -22
  296. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgentAttributeUpdates.json +0 -16
  297. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgentCommands.json +0 -21
  298. package/test/unit/examples/contextAvailabilityRequests/registerNewDevice1.json +0 -21
  299. package/test/unit/examples/contextAvailabilityRequests/registerNewDevice2.json +0 -21
  300. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDevice.json +0 -25
  301. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDevice2.json +0 -21
  302. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup.json +0 -33
  303. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup2.json +0 -33
  304. package/test/unit/examples/contextAvailabilityRequests/unregisterDevice1.json +0 -22
  305. package/test/unit/examples/contextAvailabilityRequests/unregisterDevice3.json +0 -26
  306. package/test/unit/examples/contextAvailabilityRequests/unregisterProvisionedDevice.json +0 -26
  307. package/test/unit/examples/contextAvailabilityRequests/updateCommands1.json +0 -22
  308. package/test/unit/examples/contextAvailabilityRequests/updateIoTAgent1.json +0 -22
  309. package/test/unit/examples/contextAvailabilityRequests/updateIoTAgent2.json +0 -26
  310. package/test/unit/examples/contextAvailabilityRequests/updateIoTAgent3.json +0 -22
  311. package/test/unit/examples/contextAvailabilityResponses/registerIoTAgent1Failed.json +0 -8
  312. package/test/unit/examples/contextAvailabilityResponses/registerIoTAgent1Success.json +0 -4
  313. package/test/unit/examples/contextAvailabilityResponses/registerNewDevice1Success.json +0 -4
  314. package/test/unit/examples/contextAvailabilityResponses/registerNewDevice2Success.json +0 -4
  315. package/test/unit/examples/contextAvailabilityResponses/registerProvisionedDeviceSuccess.json +0 -4
  316. package/test/unit/examples/contextAvailabilityResponses/unregisterDevice1Failed.json +0 -8
  317. package/test/unit/examples/contextAvailabilityResponses/unregisterDevice1Success.json +0 -4
  318. package/test/unit/examples/contextAvailabilityResponses/updateCommands1Success.json +0 -4
  319. package/test/unit/examples/contextAvailabilityResponses/updateIoTAgent1Success.json +0 -6
  320. package/test/unit/examples/contextProviderResponses/queryInformationResponse.json +0 -22
  321. package/test/unit/examples/contextProviderResponses/queryInformationResponseEmptyAttributes.json +0 -22
  322. package/test/unit/examples/contextProviderResponses/queryInformationStaticAttributesResponse.json +0 -27
  323. package/test/unit/examples/contextProviderResponses/updateInformationResponse.json +0 -22
  324. package/test/unit/examples/contextProviderResponses/updateInformationResponse2.json +0 -22
  325. package/test/unit/examples/contextRequests/contextSubscriptionRequest.json +0 -20
  326. package/test/unit/examples/contextRequests/contextSubscriptionRequest2.json +0 -20
  327. package/test/unit/examples/contextRequests/createBidirectionalDevice.json +0 -17
  328. package/test/unit/examples/contextRequests/createDatetimeProvisionedDevice.json +0 -17
  329. package/test/unit/examples/contextRequests/createGeopointProvisionedDevice.json +0 -17
  330. package/test/unit/examples/contextRequests/createMinimumProvisionedDevice.json +0 -17
  331. package/test/unit/examples/contextRequests/createProvisionedDevice.json +0 -32
  332. package/test/unit/examples/contextRequests/createProvisionedDeviceMultientity.json +0 -32
  333. package/test/unit/examples/contextRequests/createProvisionedDeviceWithGroup.json +0 -47
  334. package/test/unit/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic.json +0 -52
  335. package/test/unit/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic2.json +0 -52
  336. package/test/unit/examples/contextRequests/createTimeinstantDevice.json +0 -17
  337. package/test/unit/examples/contextRequests/queryContext1.json +0 -13
  338. package/test/unit/examples/contextRequests/queryContext2.json +0 -13
  339. package/test/unit/examples/contextRequests/queryContextAliasPlugin1.json +0 -10
  340. package/test/unit/examples/contextRequests/queryContextCompressTimestamp1.json +0 -13
  341. package/test/unit/examples/contextRequests/updateActiveAttributes.json +0 -11
  342. package/test/unit/examples/contextRequests/updateContext1.json +0 -22
  343. package/test/unit/examples/contextRequests/updateContext2.json +0 -22
  344. package/test/unit/examples/contextRequests/updateContext3.json +0 -17
  345. package/test/unit/examples/contextRequests/updateContext3WithStatic.json +0 -22
  346. package/test/unit/examples/contextRequests/updateContext4.json +0 -22
  347. package/test/unit/examples/contextRequests/updateContext5.json +0 -19
  348. package/test/unit/examples/contextRequests/updateContextAliasPlugin.json +0 -22
  349. package/test/unit/examples/contextRequests/updateContextAliasPlugin2.json +0 -17
  350. package/test/unit/examples/contextRequests/updateContextAppendMode.json +0 -22
  351. package/test/unit/examples/contextRequests/updateContextCommandError.json +0 -22
  352. package/test/unit/examples/contextRequests/updateContextCommandExpired.json +0 -22
  353. package/test/unit/examples/contextRequests/updateContextCommandFinish.json +0 -22
  354. package/test/unit/examples/contextRequests/updateContextCommandStatus.json +0 -17
  355. package/test/unit/examples/contextRequests/updateContextCompressTimestamp1.json +0 -22
  356. package/test/unit/examples/contextRequests/updateContextCompressTimestamp2.json +0 -29
  357. package/test/unit/examples/contextRequests/updateContextExpressionPlugin1.json +0 -17
  358. package/test/unit/examples/contextRequests/updateContextExpressionPlugin2.json +0 -27
  359. package/test/unit/examples/contextRequests/updateContextExpressionPlugin3.json +0 -17
  360. package/test/unit/examples/contextRequests/updateContextExpressionPlugin4.json +0 -17
  361. package/test/unit/examples/contextRequests/updateContextExpressionPlugin5.json +0 -27
  362. package/test/unit/examples/contextRequests/updateContextMiddleware1.json +0 -22
  363. package/test/unit/examples/contextRequests/updateContextMultiEntityPlugin3.json +0 -35
  364. package/test/unit/examples/contextRequests/updateContextMultientityPlugin1.json +0 -30
  365. package/test/unit/examples/contextRequests/updateContextMultientityPlugin2.json +0 -30
  366. package/test/unit/examples/contextRequests/updateContextProcessTimestamp1.json +0 -29
  367. package/test/unit/examples/contextRequests/updateContextStaticAttributes.json +0 -22
  368. package/test/unit/examples/contextRequests/updateContextTimestamp.json +0 -41
  369. package/test/unit/examples/contextRequests/updateContextTimestampOverride.json +0 -22
  370. package/test/unit/examples/contextRequests/updateContextTimestampOverrideWithoutMilis.json +0 -22
  371. package/test/unit/examples/contextRequests/updateContextTimestampTimezone.json +0 -41
  372. package/test/unit/examples/contextRequests/updateProvisionActiveAttributes1.json +0 -17
  373. package/test/unit/examples/contextRequests/updateProvisionCommands1.json +0 -27
  374. package/test/unit/examples/contextRequests/updateProvisionDeviceStatic.json +0 -38
  375. package/test/unit/examples/contextRequests/updateProvisionMinimumDevice.json +0 -17
  376. package/test/unit/examples/contextResponses/contextSubscriptionRequest2Success.json +0 -7
  377. package/test/unit/examples/contextResponses/contextSubscriptionRequestSuccess.json +0 -7
  378. package/test/unit/examples/contextResponses/createBidirectionalDeviceSuccess.json +0 -22
  379. package/test/unit/examples/contextResponses/createDatetimeProvisionedDeviceSuccess.json +0 -22
  380. package/test/unit/examples/contextResponses/createGeopointProvisionedDeviceSuccess.json +0 -22
  381. package/test/unit/examples/contextResponses/createProvisionedDeviceSuccess.json +0 -22
  382. package/test/unit/examples/contextResponses/createTimeinstantSuccess.json +0 -22
  383. package/test/unit/examples/contextResponses/queryContext1Success.json +0 -27
  384. package/test/unit/examples/contextResponses/queryContext2Error.json +0 -7
  385. package/test/unit/examples/contextResponses/queryContext2UnknownError.json +0 -6
  386. package/test/unit/examples/contextResponses/queryContext3Error.json +0 -34
  387. package/test/unit/examples/contextResponses/queryContextAliasPlugin1Success.json +0 -27
  388. package/test/unit/examples/contextResponses/queryContextCompressTimestamp1Success.json +0 -27
  389. package/test/unit/examples/contextResponses/updateActiveAttributesSuccess.json +0 -16
  390. package/test/unit/examples/contextResponses/updateContext1Failed.json +0 -7
  391. package/test/unit/examples/contextResponses/updateContext1Success.json +0 -27
  392. package/test/unit/examples/contextResponses/updateContext2Failed.json +0 -35
  393. package/test/unit/examples/contextResponses/updateContextAliasPlugin2Success.json +0 -27
  394. package/test/unit/examples/contextResponses/updateContextAliasPluginSuccess.json +0 -27
  395. package/test/unit/examples/contextResponses/updateContextCommandFinishSuccess.json +0 -27
  396. package/test/unit/examples/contextResponses/updateContextCommandStatusSuccess.json +0 -22
  397. package/test/unit/examples/contextResponses/updateContextCompressTimestamp1Success.json +0 -27
  398. package/test/unit/examples/contextResponses/updateContextCompressTimestamp2Success.json +0 -34
  399. package/test/unit/examples/contextResponses/updateContextEvents1Success.json +0 -27
  400. package/test/unit/examples/contextResponses/updateContextExpressionPlugin1Success.json +0 -22
  401. package/test/unit/examples/contextResponses/updateContextExpressionPlugin2Success.json +0 -22
  402. package/test/unit/examples/contextResponses/updateContextExpressionPlugin3Success.json +0 -22
  403. package/test/unit/examples/contextResponses/updateContextExpressionPlugin5Success.json +0 -32
  404. package/test/unit/examples/contextResponses/updateContextMultientityPlugin1Success.json +0 -40
  405. package/test/unit/examples/contextResponses/updateContextMultientityPlugin2Success.json +0 -40
  406. package/test/unit/examples/contextResponses/updateContextMultientityPlugin3Success.json +0 -40
  407. package/test/unit/examples/contextResponses/updateContextProcessTimestamp1Success.json +0 -27
  408. package/test/unit/examples/contextResponses/updateProvisionActiveAttributes1Success.json +0 -22
  409. package/test/unit/examples/contextResponses/updateProvisionCommands1Success.json +0 -32
  410. package/test/unit/examples/contextResponses/updateProvisionMinimumDeviceSuccess.json +0 -22
  411. package/test/unit/examples/subscriptionRequests/bidirectionalNotification.json +0 -24
  412. package/test/unit/examples/subscriptionRequests/bidirectionalSubscriptionRemove.json +0 -3
  413. package/test/unit/examples/subscriptionRequests/bidirectionalSubscriptionRequest.json +0 -22
  414. package/test/unit/examples/subscriptionRequests/errorNotification.json +0 -24
  415. package/test/unit/examples/subscriptionRequests/simpleNotification.json +0 -24
  416. package/test/unit/examples/subscriptionRequests/simpleSubscriptionRemove.json +0 -3
  417. package/test/unit/examples/subscriptionRequests/simpleSubscriptionRequest.json +0 -19
  418. package/test/unit/examples/subscriptionRequests/simpleSubscriptionRequest1.json +0 -19
  419. package/test/unit/examples/subscriptionResponses/bidirectionalSubscriptionSuccess.json +0 -6
  420. package/test/unit/examples/subscriptionResponses/simpleSubscriptionSuccess.json +0 -6
  421. package/test/unit/expressions/expressionBasedTransformations-test.js +0 -328
  422. package/test/unit/expressions/expressionCombinedTransformations-test.js +0 -306
  423. package/test/unit/expressions/jexlBasedTransformations-test.js +0 -334
  424. package/test/unit/general/contextBrokerOAuthSecurityAccess-test.js +0 -902
  425. package/test/unit/general/https-support-test.js +0 -286
  426. package/test/unit/general/iotam-autoregistration-test.js +0 -368
  427. package/test/unit/lazyAndCommands/active-devices-attribute-update-test.js +0 -168
  428. package/test/unit/lazyAndCommands/command-test.js +0 -341
  429. package/test/unit/lazyAndCommands/lazy-devices-test.js +0 -878
  430. package/test/unit/lazyAndCommands/polling-commands-test.js +0 -421
  431. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin20.json +0 -25
  432. package/test/unit/ngsiService/active-devices-test.js +0 -692
  433. package/test/unit/ngsiService/staticAttributes-test.js +0 -148
  434. package/test/unit/ngsiService/subscriptions-test.js +0 -345
  435. package/test/unit/plugins/alias-plugin_test.js +0 -158
  436. package/test/unit/plugins/bidirectional-plugin_test.js +0 -564
  437. package/test/unit/plugins/compress-timestamp-plugin_test.js +0 -257
  438. package/test/unit/plugins/event-plugin_test.js +0 -119
  439. package/test/unit/plugins/multientity-plugin_test.js +0 -248
  440. package/test/unit/plugins/timestamp-processing-plugin_test.js +0 -119
  441. package/test/unit/provisioning/device-provisioning-api_test.js +0 -748
  442. package/test/unit/provisioning/device-registration_test.js +0 -432
  443. package/test/unit/provisioning/device-update-registration_test.js +0 -326
  444. package/test/unit/provisioning/listProvisionedDevices-test.js +0 -488
  445. package/test/unit/provisioning/provisionDeviceMultientity-test.js +0 -123
  446. package/test/unit/provisioning/removeProvisionedDevice-test.js +0 -244
  447. package/test/unit/provisioning/singleConfigurationMode-test.js +0 -346
  448. package/test/unit/provisioning/updateProvisionedDevices-test.js +0 -436
@@ -27,6 +27,7 @@
27
27
 
28
28
  const iotAgentLib = require('../../../../lib/fiware-iotagent-lib');
29
29
  const utils = require('../../../tools/utils');
30
+ const request = utils.request;
30
31
  const should = require('should');
31
32
  const logger = require('logops');
32
33
  const nock = require('nock');
@@ -56,7 +57,7 @@ const iotAgentConfig = {
56
57
  type: 'Hgmm'
57
58
  }
58
59
  ],
59
- service: 'smartGondor',
60
+ service: 'smartgondor',
60
61
  subservice: 'gardens'
61
62
  },
62
63
  Termometer: {
@@ -68,25 +69,25 @@ const iotAgentConfig = {
68
69
  }
69
70
  ],
70
71
  active: [],
71
- service: 'smartGondor',
72
+ service: 'smartgondor',
72
73
  subservice: 'gardens'
73
74
  }
74
75
  },
75
- service: 'smartGondor',
76
+ service: 'smartgondor',
76
77
  subservice: 'gardens',
77
- providerUrl: 'http://smartGondor.com'
78
+ providerUrl: 'http://smartgondor.com'
78
79
  };
79
80
  const device1 = {
80
81
  id: 'light1',
81
82
  type: 'Light',
82
- service: 'smartGondor',
83
+ service: 'smartgondor',
83
84
  subservice: 'gardens'
84
85
  };
85
86
  const deviceUpdated = {
86
87
  id: 'light1',
87
88
  type: 'Light',
88
89
  name: 'light1',
89
- service: 'smartGondor',
90
+ service: 'smartgondor',
90
91
  subservice: 'gardens',
91
92
  internalId: 'newInternalId',
92
93
  lazy: [
@@ -106,7 +107,7 @@ const deviceCommandUpdated = {
106
107
  id: 'light1',
107
108
  type: 'Light',
108
109
  name: 'light1',
109
- service: 'smartGondor',
110
+ service: 'smartgondor',
110
111
  subservice: 'gardens',
111
112
  internalId: 'newInternalId',
112
113
  commands: [
@@ -142,7 +143,7 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
142
143
  nock.cleanAll();
143
144
 
144
145
  contextBrokerMock = nock('http://192.168.1.1:1026')
145
- .matchHeader('fiware-service', 'smartGondor')
146
+ .matchHeader('fiware-service', 'smartgondor')
146
147
  .post('/ngsi-ld/v1/csourceRegistrations/')
147
148
  .reply(201, null, { Location: '/ngsi-ld/v1/csourceRegistrations/6319a7f5254b05844116584d' });
148
149
 
@@ -150,7 +151,7 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
150
151
  // device provisioning functionality. Appropriate verification is done in tests under
151
152
  // provisioning folder
152
153
  contextBrokerMock
153
- .matchHeader('fiware-service', 'smartGondor')
154
+ .matchHeader('fiware-service', 'smartgondor')
154
155
  .post('/ngsi-ld/v1/entityOperations/upsert/')
155
156
  .reply(204);
156
157
 
@@ -171,7 +172,7 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
171
172
  describe('When a device is preregistered and its registration information updated', function () {
172
173
  beforeEach(function () {
173
174
  contextBrokerMock
174
- .matchHeader('fiware-service', 'smartGondor')
175
+ .matchHeader('fiware-service', 'smartgondor')
175
176
  .post(
176
177
  '/ngsi-ld/v1/entityOperations/upsert/?options=update',
177
178
  utils.readExampleFile(
@@ -181,7 +182,7 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
181
182
  .reply(204);
182
183
 
183
184
  contextBrokerMock
184
- .matchHeader('fiware-service', 'smartGondor')
185
+ .matchHeader('fiware-service', 'smartgondor')
185
186
  .post(
186
187
  '/ngsi-ld/v1/csourceRegistrations/',
187
188
  utils.readExampleFile(
@@ -192,15 +193,15 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
192
193
  });
193
194
 
194
195
  it('should register as ContextProvider of its lazy attributes', function (done) {
195
- iotAgentLib.updateRegister(deviceUpdated, function (error) {
196
+ iotAgentLib.updateRegister(deviceUpdated, false, function (error) {
196
197
  should.not.exist(error);
197
198
  contextBrokerMock.done();
198
199
  done();
199
200
  });
200
201
  });
201
202
  it('should store the new values in the registry', function (done) {
202
- iotAgentLib.updateRegister(deviceUpdated, function (error, data) {
203
- iotAgentLib.getDevice(deviceUpdated.id, 'smartGondor', 'gardens', function (error, deviceResult) {
203
+ iotAgentLib.updateRegister(deviceUpdated, false, function (error, data) {
204
+ iotAgentLib.getDevice(deviceUpdated.id, 'smartgondor', 'gardens', function (error, deviceResult) {
204
205
  should.not.exist(error);
205
206
  should.exist(deviceResult);
206
207
  deviceResult.internalId.should.equal(deviceUpdated.internalId);
@@ -216,7 +217,7 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
216
217
  beforeEach(function () {
217
218
  delete deviceCommandUpdated.registrationId;
218
219
  contextBrokerMock
219
- .matchHeader('fiware-service', 'smartGondor')
220
+ .matchHeader('fiware-service', 'smartgondor')
220
221
  .post(
221
222
  '/ngsi-ld/v1/entityOperations/upsert/?options=update',
222
223
  utils.readExampleFile('./test/unit/ngsi-ld/examples/contextRequests/updateProvisionCommands1.json')
@@ -224,7 +225,7 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
224
225
  .reply(204);
225
226
 
226
227
  contextBrokerMock
227
- .matchHeader('fiware-service', 'smartGondor')
228
+ .matchHeader('fiware-service', 'smartgondor')
228
229
  .post(
229
230
  '/ngsi-ld/v1/csourceRegistrations/',
230
231
  utils.readExampleFile(
@@ -235,15 +236,15 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
235
236
  });
236
237
 
237
238
  it('should register as ContextProvider of its commands and create the additional attributes', function (done) {
238
- iotAgentLib.updateRegister(deviceCommandUpdated, function (error) {
239
+ iotAgentLib.updateRegister(deviceCommandUpdated, false, function (error) {
239
240
  should.not.exist(error);
240
241
  contextBrokerMock.done();
241
242
  done();
242
243
  });
243
244
  });
244
245
  it('should store the new values in the registry', function (done) {
245
- iotAgentLib.updateRegister(deviceCommandUpdated, function (error, data) {
246
- iotAgentLib.getDevice(deviceCommandUpdated.id, 'smartGondor', 'gardens', function (
246
+ iotAgentLib.updateRegister(deviceCommandUpdated, false, function (error, data) {
247
+ iotAgentLib.getDevice(deviceCommandUpdated.id, 'smartgondor', 'gardens', function (
247
248
  error,
248
249
  deviceResult
249
250
  ) {
@@ -260,7 +261,7 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
260
261
 
261
262
  describe('When a update action is executed in a non registered device', function () {
262
263
  it('should return a DEVICE_NOT_FOUND error', function (done) {
263
- iotAgentLib.updateRegister(unknownDevice, function (error) {
264
+ iotAgentLib.updateRegister(unknownDevice, false, function (error) {
264
265
  should.exist(error);
265
266
  error.name.should.equal('DEVICE_NOT_FOUND');
266
267
  done();
@@ -270,13 +271,13 @@ describe('NGSI-LD - IoT Agent Device Update Registration', function () {
270
271
  describe('When a device register is updated in the Context Broker and the request fail to connect', function () {
271
272
  beforeEach(function () {
272
273
  contextBrokerMock
273
- .matchHeader('fiware-service', 'smartGondor')
274
+ .matchHeader('fiware-service', 'smartgondor')
274
275
  .post('/ngsi-ld/v1/entityOperations/upsert/?options=update')
275
276
  .reply(400);
276
277
  });
277
278
 
278
279
  it('should return a REGISTRATION_ERROR error in the update action', function (done) {
279
- iotAgentLib.updateRegister(deviceUpdated, function (error) {
280
+ iotAgentLib.updateRegister(deviceUpdated, false, function (error) {
280
281
  should.exist(error);
281
282
  //error.name.should.equal('UNREGISTRATION_ERROR');
282
283
  done();
@@ -27,10 +27,11 @@
27
27
 
28
28
  const iotAgentLib = require('../../../../lib/fiware-iotagent-lib');
29
29
  const utils = require('../../../tools/utils');
30
+ const request = utils.request;
30
31
  const should = require('should');
31
32
  const nock = require('nock');
32
33
  const async = require('async');
33
- const request = require('request');
34
+
34
35
  let contextBrokerMock;
35
36
  const iotAgentConfig = {
36
37
  logLevel: 'FATAL',
@@ -45,9 +46,9 @@ const iotAgentConfig = {
45
46
  baseRoot: '/'
46
47
  },
47
48
  types: {},
48
- service: 'smartGondor',
49
+ service: 'smartgondor',
49
50
  subservice: 'gardens',
50
- providerUrl: 'http://smartGondor.com'
51
+ providerUrl: 'http://smartgondor.com'
51
52
  };
52
53
 
53
54
  describe('NGSI-LD - Device provisioning API: List provisioned devices', function () {
@@ -61,7 +62,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
61
62
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
62
63
  method: 'POST',
63
64
  headers: {
64
- 'fiware-service': 'smartGondor',
65
+ 'fiware-service': 'smartgondor',
65
66
  'fiware-servicepath': '/gardens'
66
67
  },
67
68
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionNewDevice.json')
@@ -71,7 +72,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
71
72
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
72
73
  method: 'POST',
73
74
  headers: {
74
- 'fiware-service': 'smartGondor',
75
+ 'fiware-service': 'smartgondor',
75
76
  'fiware-servicepath': '/gardens'
76
77
  },
77
78
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionAnotherDevice.json')
@@ -81,7 +82,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
81
82
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
82
83
  method: 'POST',
83
84
  headers: {
84
- 'fiware-service': 'smartGondor',
85
+ 'fiware-service': 'smartgondor',
85
86
  'fiware-servicepath': '/gardens'
86
87
  },
87
88
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionFullDevice.json')
@@ -137,7 +138,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
137
138
  const options = {
138
139
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
139
140
  headers: {
140
- 'fiware-service': 'smartGondor',
141
+ 'fiware-service': 'smartgondor',
141
142
  'fiware-servicepath': '/gardens'
142
143
  },
143
144
  method: 'GET'
@@ -145,12 +146,11 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
145
146
 
146
147
  it('should return all the provisioned devices', function (done) {
147
148
  request(options, function (error, response, body) {
148
- const parsedBody = JSON.parse(body);
149
149
  should.not.exist(error);
150
- should.exist(parsedBody.devices);
150
+ should.exist(body.devices);
151
151
  response.statusCode.should.equal(200);
152
- parsedBody.devices.length.should.equal(3);
153
- parsedBody.count.should.equal(3);
152
+ body.devices.length.should.equal(3);
153
+ body.count.should.equal(3);
154
154
  done();
155
155
  });
156
156
  });
@@ -159,22 +159,20 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
159
159
  /* jshint camelcase:false */
160
160
 
161
161
  request(options, function (error, response, body) {
162
- const parsedBody = JSON.parse(body);
163
-
164
- should.exist(parsedBody.devices[0].attributes);
165
- parsedBody.devices[0].attributes.length.should.equal(1);
162
+ should.exist(body.devices[0].attributes);
163
+ body.devices[0].attributes.length.should.equal(1);
166
164
 
167
- should.exist(parsedBody.devices[0].device_id);
168
- parsedBody.devices[0].device_id.should.equal('Light1');
165
+ should.exist(body.devices[0].device_id);
166
+ body.devices[0].device_id.should.equal('Light1');
169
167
 
170
- should.exist(parsedBody.devices[0].entity_name);
171
- parsedBody.devices[0].entity_name.should.equal('TheFirstLight');
168
+ should.exist(body.devices[0].entity_name);
169
+ body.devices[0].entity_name.should.equal('TheFirstLight');
172
170
 
173
- should.exist(parsedBody.devices[0].protocol);
174
- parsedBody.devices[0].protocol.should.equal('GENERIC_PROTO');
171
+ should.exist(body.devices[0].protocol);
172
+ body.devices[0].protocol.should.equal('GENERIC_PROTO');
175
173
 
176
- should.exist(parsedBody.devices[0].static_attributes);
177
- parsedBody.devices[0].static_attributes.length.should.equal(1);
174
+ should.exist(body.devices[0].static_attributes);
175
+ body.devices[0].static_attributes.length.should.equal(1);
178
176
 
179
177
  done();
180
178
  });
@@ -182,16 +180,14 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
182
180
 
183
181
  it('should return all the plugin attributes', function (done) {
184
182
  request(options, function (error, response, body) {
185
- const parsedBody = JSON.parse(body);
186
-
187
- should.exist(parsedBody.devices[2].attributes[0].entity_name);
188
- should.exist(parsedBody.devices[2].attributes[0].entity_type);
189
- should.exist(parsedBody.devices[2].attributes[1].expression);
190
- should.exist(parsedBody.devices[2].attributes[2].reverse);
191
- parsedBody.devices[2].attributes[0].entity_name.should.equal('Higro2000');
192
- parsedBody.devices[2].attributes[0].entity_type.should.equal('Higrometer');
193
- parsedBody.devices[2].attributes[1].expression.should.equal('${@humidity * 20}');
194
- parsedBody.devices[2].attributes[2].reverse.length.should.equal(2);
183
+ should.exist(body.devices[2].attributes[0].entity_name);
184
+ should.exist(body.devices[2].attributes[0].entity_type);
185
+ should.exist(body.devices[2].attributes[1].expression);
186
+ should.exist(body.devices[2].attributes[2].reverse);
187
+ body.devices[2].attributes[0].entity_name.should.equal('Higro2000');
188
+ body.devices[2].attributes[0].entity_type.should.equal('Higrometer');
189
+ body.devices[2].attributes[1].expression.should.equal('${@humidity * 20}');
190
+ body.devices[2].attributes[2].reverse.length.should.equal(2);
195
191
  done();
196
192
  });
197
193
  });
@@ -200,7 +196,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
200
196
  const options = {
201
197
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/Light1',
202
198
  headers: {
203
- 'fiware-service': 'smartGondor',
199
+ 'fiware-service': 'smartgondor',
204
200
  'fiware-servicepath': '/gardens'
205
201
  },
206
202
  method: 'GET'
@@ -212,9 +208,8 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
212
208
  should.not.exist(error);
213
209
  response.statusCode.should.equal(200);
214
210
 
215
- const parsedBody = JSON.parse(body);
216
- parsedBody.entity_name.should.equal('TheFirstLight');
217
- parsedBody.device_id.should.equal('Light1');
211
+ body.entity_name.should.equal('TheFirstLight');
212
+ body.device_id.should.equal('Light1');
218
213
  done();
219
214
  });
220
215
  });
@@ -223,12 +218,10 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
223
218
  request(options, function (error, response, body) {
224
219
  /* jshint camelcase:false */
225
220
  should.not.exist(error);
226
-
227
- const parsedBody = JSON.parse(body);
228
- should.exist(parsedBody.attributes[0].object_id);
229
- parsedBody.attributes[0].object_id.should.equal('attr_name');
230
- parsedBody.attributes[0].name.should.equal('attr_name');
231
- parsedBody.attributes[0].type.should.equal('string');
221
+ should.exist(body.attributes[0].object_id);
222
+ body.attributes[0].object_id.should.equal('attr_name');
223
+ body.attributes[0].name.should.equal('attr_name');
224
+ body.attributes[0].type.should.equal('string');
232
225
  done();
233
226
  });
234
227
  });
@@ -237,7 +230,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
237
230
  const options = {
238
231
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/LightFull',
239
232
  headers: {
240
- 'fiware-service': 'smartGondor',
233
+ 'fiware-service': 'smartgondor',
241
234
  'fiware-servicepath': '/gardens'
242
235
  },
243
236
  method: 'GET'
@@ -248,15 +241,14 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
248
241
  /* jshint camelcase:false */
249
242
  should.not.exist(error);
250
243
 
251
- const parsedBody = JSON.parse(body);
252
- should.exist(parsedBody.attributes[0].entity_name);
253
- should.exist(parsedBody.attributes[0].entity_type);
254
- should.exist(parsedBody.attributes[1].expression);
255
- should.exist(parsedBody.attributes[2].reverse);
256
- parsedBody.attributes[0].entity_name.should.equal('Higro2000');
257
- parsedBody.attributes[0].entity_type.should.equal('Higrometer');
258
- parsedBody.attributes[1].expression.should.equal('${@humidity * 20}');
259
- parsedBody.attributes[2].reverse.length.should.equal(2);
244
+ should.exist(body.attributes[0].entity_name);
245
+ should.exist(body.attributes[0].entity_type);
246
+ should.exist(body.attributes[1].expression);
247
+ should.exist(body.attributes[2].reverse);
248
+ body.attributes[0].entity_name.should.equal('Higro2000');
249
+ body.attributes[0].entity_type.should.equal('Higrometer');
250
+ body.attributes[1].expression.should.equal('${@humidity * 20}');
251
+ body.attributes[2].reverse.length.should.equal(2);
260
252
  done();
261
253
  });
262
254
  });
@@ -265,7 +257,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
265
257
  const options = {
266
258
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/Light84',
267
259
  headers: {
268
- 'fiware-service': 'smartGondor',
260
+ 'fiware-service': 'smartgondor',
269
261
  'fiware-servicepath': '/gardens'
270
262
  },
271
263
  method: 'GET'
@@ -284,7 +276,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
284
276
  const options = {
285
277
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices?limit=3',
286
278
  headers: {
287
- 'fiware-service': 'smartGondor',
279
+ 'fiware-service': 'smartgondor',
288
280
  'fiware-servicepath': '/gardens'
289
281
  },
290
282
  method: 'GET'
@@ -297,7 +289,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
297
289
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
298
290
  method: 'POST',
299
291
  headers: {
300
- 'fiware-service': 'smartGondor',
292
+ 'fiware-service': 'smartgondor',
301
293
  'fiware-servicepath': '/gardens'
302
294
  },
303
295
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionNewDevice.json')
@@ -313,7 +305,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
313
305
  nock.cleanAll();
314
306
 
315
307
  contextBrokerMock = nock('http://192.168.1.1:1026')
316
- .matchHeader('fiware-service', 'smartGondor')
308
+ .matchHeader('fiware-service', 'smartgondor')
317
309
  .post('/ngsi-ld/v1/csourceRegistrations/')
318
310
  .times(10)
319
311
  .reply(201, null, { Location: '/ngsi-ld/v1/csourceRegistrations/6319a7f5254b05844116584d' });
@@ -332,18 +324,16 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
332
324
 
333
325
  it('should return just 3 devices', function (done) {
334
326
  request(options, function (error, response, body) {
335
- const parsedBody = JSON.parse(body);
336
327
  should.not.exist(error);
337
- parsedBody.devices.length.should.equal(3);
328
+ body.devices.length.should.equal(3);
338
329
  done();
339
330
  });
340
331
  });
341
332
 
342
333
  it('should return a count with the complete number of devices', function (done) {
343
334
  request(options, function (error, response, body) {
344
- const parsedBody = JSON.parse(body);
345
335
  should.not.exist(error);
346
- parsedBody.count.should.equal(10);
336
+ body.count.should.equal(10);
347
337
  done();
348
338
  });
349
339
  });
@@ -353,7 +343,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
353
343
  const options = {
354
344
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices?offset=3',
355
345
  headers: {
356
- 'fiware-service': 'smartGondor',
346
+ 'fiware-service': 'smartgondor',
357
347
  'fiware-servicepath': '/gardens'
358
348
  },
359
349
  method: 'GET'
@@ -364,7 +354,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
364
354
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
365
355
  method: 'POST',
366
356
  headers: {
367
- 'fiware-service': 'smartGondor',
357
+ 'fiware-service': 'smartgondor',
368
358
  'fiware-servicepath': '/gardens'
369
359
  },
370
360
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionNewDevice.json')
@@ -382,7 +372,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
382
372
  nock.cleanAll();
383
373
 
384
374
  contextBrokerMock = nock('http://192.168.1.1:1026')
385
- .matchHeader('fiware-service', 'smartGondor')
375
+ .matchHeader('fiware-service', 'smartgondor')
386
376
  .post('/ngsi-ld/v1/csourceRegistrations/')
387
377
  .times(10)
388
378
  .reply(201, null, { Location: '/ngsi-ld/v1/csourceRegistrations/6319a7f5254b05844116584d' });
@@ -396,11 +386,10 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
396
386
 
397
387
  it('should skip the first 3 devices', function (done) {
398
388
  request(options, function (error, response, body) {
399
- const parsedBody = JSON.parse(body);
400
389
  should.not.exist(error);
401
390
 
402
- for (let i = 0; i < parsedBody.devices.length; i++) {
403
- ['Light1_0', 'Light1_1', 'Light1_2'].indexOf(parsedBody.devices[i].id).should.equal(-1);
391
+ for (let i = 0; i < body.devices.length; i++) {
392
+ ['Light1_0', 'Light1_1', 'Light1_2'].indexOf(body.devices[i].id).should.equal(-1);
404
393
  }
405
394
 
406
395
  done();
@@ -412,7 +401,7 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
412
401
  const options = {
413
402
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
414
403
  headers: {
415
- 'fiware-service': 'smartGondor',
404
+ 'fiware-service': 'smartgondor',
416
405
  'fiware-servicepath': '/gardens'
417
406
  },
418
407
  method: 'GET'
@@ -442,10 +431,9 @@ describe('NGSI-LD - Device provisioning API: List provisioned devices', function
442
431
 
443
432
  it('should return just the ones in the selected service', function (done) {
444
433
  request(options, function (error, response, body) {
445
- const parsedBody = JSON.parse(body);
446
434
  should.not.exist(error);
447
435
  response.statusCode.should.equal(200);
448
- parsedBody.devices.length.should.equal(3);
436
+ body.devices.length.should.equal(3);
449
437
  done();
450
438
  });
451
439
  });
@@ -27,10 +27,11 @@
27
27
 
28
28
  const iotAgentLib = require('../../../../lib/fiware-iotagent-lib');
29
29
  const utils = require('../../../tools/utils');
30
+ const request = utils.request;
30
31
 
31
32
  const should = require('should');
32
33
  const nock = require('nock');
33
- const request = require('request');
34
+
34
35
  let contextBrokerMock;
35
36
  const iotAgentConfig = {
36
37
  logLevel: 'FATAL',
@@ -45,9 +46,9 @@ const iotAgentConfig = {
45
46
  baseRoot: '/'
46
47
  },
47
48
  types: {},
48
- service: 'smartGondor',
49
+ service: 'smartgondor',
49
50
  subservice: 'gardens',
50
- providerUrl: 'http://smartGondor.com'
51
+ providerUrl: 'http://smartgondor.com'
51
52
  };
52
53
 
53
54
  describe('NGSI-LD - Device provisioning API: Provision devices', function () {
@@ -70,7 +71,7 @@ describe('NGSI-LD - Device provisioning API: Provision devices', function () {
70
71
  nock.cleanAll();
71
72
 
72
73
  contextBrokerMock = nock('http://192.168.1.1:1026')
73
- .matchHeader('fiware-service', 'smartGondor')
74
+ .matchHeader('fiware-service', 'smartgondor')
74
75
  .post(
75
76
  '/ngsi-ld/v1/csourceRegistrations/',
76
77
  utils.readExampleFile(
@@ -80,7 +81,7 @@ describe('NGSI-LD - Device provisioning API: Provision devices', function () {
80
81
  .reply(201, null, { Location: '/ngsi-ld/v1/csourceRegistrations/6319a7f5254b05844116584d' });
81
82
 
82
83
  contextBrokerMock
83
- .matchHeader('fiware-service', 'smartGondor')
84
+ .matchHeader('fiware-service', 'smartgondor')
84
85
  .post(
85
86
  '/ngsi-ld/v1/entityOperations/upsert/',
86
87
  utils.readExampleFile(
@@ -97,7 +98,7 @@ describe('NGSI-LD - Device provisioning API: Provision devices', function () {
97
98
  './test/unit/examples/deviceProvisioningRequests/provisionNewDeviceMultientity.json'
98
99
  ),
99
100
  headers: {
100
- 'fiware-service': 'smartGondor',
101
+ 'fiware-service': 'smartgondor',
101
102
  'fiware-servicepath': '/gardens'
102
103
  }
103
104
  };
@@ -107,7 +108,7 @@ describe('NGSI-LD - Device provisioning API: Provision devices', function () {
107
108
  should.not.exist(error);
108
109
  response.statusCode.should.equal(201);
109
110
 
110
- iotAgentLib.listDevices('smartGondor', '/gardens', function (error, results) {
111
+ iotAgentLib.listDevices('smartgondor', '/gardens', function (error, results) {
111
112
  results.devices.length.should.equal(1);
112
113
  done();
113
114
  });