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,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',
@@ -44,9 +45,9 @@ const iotAgentConfig = {
44
45
  baseRoot: '/'
45
46
  },
46
47
  types: {},
47
- service: 'smartGondor',
48
+ service: 'smartgondor',
48
49
  subservice: 'gardens',
49
- providerUrl: 'http://smartGondor.com'
50
+ providerUrl: 'http://smartgondor.com'
50
51
  };
51
52
 
52
53
  describe('NGSI-v2 - Device provisioning API: List provisioned devices', function () {
@@ -60,7 +61,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
60
61
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
61
62
  method: 'POST',
62
63
  headers: {
63
- 'fiware-service': 'smartGondor',
64
+ 'fiware-service': 'smartgondor',
64
65
  'fiware-servicepath': '/gardens'
65
66
  },
66
67
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionNewDevice.json')
@@ -70,7 +71,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
70
71
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
71
72
  method: 'POST',
72
73
  headers: {
73
- 'fiware-service': 'smartGondor',
74
+ 'fiware-service': 'smartgondor',
74
75
  'fiware-servicepath': '/gardens'
75
76
  },
76
77
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionAnotherDevice.json')
@@ -80,7 +81,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
80
81
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
81
82
  method: 'POST',
82
83
  headers: {
83
- 'fiware-service': 'smartGondor',
84
+ 'fiware-service': 'smartgondor',
84
85
  'fiware-servicepath': '/gardens'
85
86
  },
86
87
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionFullDevice.json')
@@ -136,7 +137,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
136
137
  const options = {
137
138
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
138
139
  headers: {
139
- 'fiware-service': 'smartGondor',
140
+ 'fiware-service': 'smartgondor',
140
141
  'fiware-servicepath': '/gardens'
141
142
  },
142
143
  method: 'GET'
@@ -144,12 +145,11 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
144
145
 
145
146
  it('should return all the provisioned devices', function (done) {
146
147
  request(options, function (error, response, body) {
147
- const parsedBody = JSON.parse(body);
148
148
  should.not.exist(error);
149
- should.exist(parsedBody.devices);
149
+ should.exist(body.devices);
150
150
  response.statusCode.should.equal(200);
151
- parsedBody.devices.length.should.equal(3);
152
- parsedBody.count.should.equal(3);
151
+ body.devices.length.should.equal(3);
152
+ body.count.should.equal(3);
153
153
  done();
154
154
  });
155
155
  });
@@ -158,22 +158,20 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
158
158
  /* jshint camelcase:false */
159
159
 
160
160
  request(options, function (error, response, body) {
161
- const parsedBody = JSON.parse(body);
162
-
163
- should.exist(parsedBody.devices[0].attributes);
164
- parsedBody.devices[0].attributes.length.should.equal(1);
161
+ should.exist(body.devices[0].attributes);
162
+ body.devices[0].attributes.length.should.equal(1);
165
163
 
166
- should.exist(parsedBody.devices[0].device_id);
167
- parsedBody.devices[0].device_id.should.equal('Light1');
164
+ should.exist(body.devices[0].device_id);
165
+ body.devices[0].device_id.should.equal('Light1');
168
166
 
169
- should.exist(parsedBody.devices[0].entity_name);
170
- parsedBody.devices[0].entity_name.should.equal('TheFirstLight');
167
+ should.exist(body.devices[0].entity_name);
168
+ body.devices[0].entity_name.should.equal('TheFirstLight');
171
169
 
172
- should.exist(parsedBody.devices[0].protocol);
173
- parsedBody.devices[0].protocol.should.equal('GENERIC_PROTO');
170
+ should.exist(body.devices[0].protocol);
171
+ body.devices[0].protocol.should.equal('GENERIC_PROTO');
174
172
 
175
- should.exist(parsedBody.devices[0].static_attributes);
176
- parsedBody.devices[0].static_attributes.length.should.equal(1);
173
+ should.exist(body.devices[0].static_attributes);
174
+ body.devices[0].static_attributes.length.should.equal(1);
177
175
 
178
176
  done();
179
177
  });
@@ -181,16 +179,14 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
181
179
 
182
180
  it('should return all the plugin attributes', function (done) {
183
181
  request(options, function (error, response, body) {
184
- const parsedBody = JSON.parse(body);
185
-
186
- should.exist(parsedBody.devices[2].attributes[0].entity_name);
187
- should.exist(parsedBody.devices[2].attributes[0].entity_type);
188
- should.exist(parsedBody.devices[2].attributes[1].expression);
189
- should.exist(parsedBody.devices[2].attributes[2].reverse);
190
- parsedBody.devices[2].attributes[0].entity_name.should.equal('Higro2000');
191
- parsedBody.devices[2].attributes[0].entity_type.should.equal('Higrometer');
192
- parsedBody.devices[2].attributes[1].expression.should.equal('${@humidity * 20}');
193
- parsedBody.devices[2].attributes[2].reverse.length.should.equal(2);
182
+ should.exist(body.devices[2].attributes[0].entity_name);
183
+ should.exist(body.devices[2].attributes[0].entity_type);
184
+ should.exist(body.devices[2].attributes[1].expression);
185
+ should.exist(body.devices[2].attributes[2].reverse);
186
+ body.devices[2].attributes[0].entity_name.should.equal('Higro2000');
187
+ body.devices[2].attributes[0].entity_type.should.equal('Higrometer');
188
+ body.devices[2].attributes[1].expression.should.equal('${@humidity * 20}');
189
+ body.devices[2].attributes[2].reverse.length.should.equal(2);
194
190
  done();
195
191
  });
196
192
  });
@@ -199,7 +195,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
199
195
  const options = {
200
196
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/Light1',
201
197
  headers: {
202
- 'fiware-service': 'smartGondor',
198
+ 'fiware-service': 'smartgondor',
203
199
  'fiware-servicepath': '/gardens'
204
200
  },
205
201
  method: 'GET'
@@ -210,9 +206,8 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
210
206
  should.not.exist(error);
211
207
  response.statusCode.should.equal(200);
212
208
 
213
- const parsedBody = JSON.parse(body);
214
- parsedBody.entity_name.should.equal('TheFirstLight');
215
- parsedBody.device_id.should.equal('Light1');
209
+ body.entity_name.should.equal('TheFirstLight');
210
+ body.device_id.should.equal('Light1');
216
211
  done();
217
212
  });
218
213
  });
@@ -221,11 +216,10 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
221
216
  request(options, function (error, response, body) {
222
217
  should.not.exist(error);
223
218
 
224
- const parsedBody = JSON.parse(body);
225
- should.exist(parsedBody.attributes[0].object_id);
226
- parsedBody.attributes[0].object_id.should.equal('attr_name');
227
- parsedBody.attributes[0].name.should.equal('attr_name');
228
- parsedBody.attributes[0].type.should.equal('string');
219
+ should.exist(body.attributes[0].object_id);
220
+ body.attributes[0].object_id.should.equal('attr_name');
221
+ body.attributes[0].name.should.equal('attr_name');
222
+ body.attributes[0].type.should.equal('string');
229
223
  done();
230
224
  });
231
225
  });
@@ -234,7 +228,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
234
228
  const options = {
235
229
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/LightFull',
236
230
  headers: {
237
- 'fiware-service': 'smartGondor',
231
+ 'fiware-service': 'smartgondor',
238
232
  'fiware-servicepath': '/gardens'
239
233
  },
240
234
  method: 'GET'
@@ -244,15 +238,14 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
244
238
  request(options, function (error, response, body) {
245
239
  should.not.exist(error);
246
240
 
247
- const parsedBody = JSON.parse(body);
248
- should.exist(parsedBody.attributes[0].entity_name);
249
- should.exist(parsedBody.attributes[0].entity_type);
250
- should.exist(parsedBody.attributes[1].expression);
251
- should.exist(parsedBody.attributes[2].reverse);
252
- parsedBody.attributes[0].entity_name.should.equal('Higro2000');
253
- parsedBody.attributes[0].entity_type.should.equal('Higrometer');
254
- parsedBody.attributes[1].expression.should.equal('${@humidity * 20}');
255
- parsedBody.attributes[2].reverse.length.should.equal(2);
241
+ should.exist(body.attributes[0].entity_name);
242
+ should.exist(body.attributes[0].entity_type);
243
+ should.exist(body.attributes[1].expression);
244
+ should.exist(body.attributes[2].reverse);
245
+ body.attributes[0].entity_name.should.equal('Higro2000');
246
+ body.attributes[0].entity_type.should.equal('Higrometer');
247
+ body.attributes[1].expression.should.equal('${@humidity * 20}');
248
+ body.attributes[2].reverse.length.should.equal(2);
256
249
  done();
257
250
  });
258
251
  });
@@ -261,7 +254,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
261
254
  const options = {
262
255
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/Light84',
263
256
  headers: {
264
- 'fiware-service': 'smartGondor',
257
+ 'fiware-service': 'smartgondor',
265
258
  'fiware-servicepath': '/gardens'
266
259
  },
267
260
  method: 'GET'
@@ -280,7 +273,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
280
273
  const options = {
281
274
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices?limit=3',
282
275
  headers: {
283
- 'fiware-service': 'smartGondor',
276
+ 'fiware-service': 'smartgondor',
284
277
  'fiware-servicepath': '/gardens'
285
278
  },
286
279
  method: 'GET'
@@ -293,7 +286,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
293
286
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
294
287
  method: 'POST',
295
288
  headers: {
296
- 'fiware-service': 'smartGondor',
289
+ 'fiware-service': 'smartgondor',
297
290
  'fiware-servicepath': '/gardens'
298
291
  },
299
292
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionNewDevice.json')
@@ -309,7 +302,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
309
302
  nock.cleanAll();
310
303
 
311
304
  contextBrokerMock = nock('http://192.168.1.1:1026')
312
- .matchHeader('fiware-service', 'smartGondor')
305
+ .matchHeader('fiware-service', 'smartgondor')
313
306
  .matchHeader('fiware-servicepath', '/gardens')
314
307
  .post('/v2/registrations')
315
308
  .times(10)
@@ -329,18 +322,16 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
329
322
 
330
323
  it('should return just 3 devices', function (done) {
331
324
  request(options, function (error, response, body) {
332
- const parsedBody = JSON.parse(body);
333
325
  should.not.exist(error);
334
- parsedBody.devices.length.should.equal(3);
326
+ body.devices.length.should.equal(3);
335
327
  done();
336
328
  });
337
329
  });
338
330
 
339
331
  it('should return a count with the complete number of devices', function (done) {
340
332
  request(options, function (error, response, body) {
341
- const parsedBody = JSON.parse(body);
342
333
  should.not.exist(error);
343
- parsedBody.count.should.equal(10);
334
+ body.count.should.equal(10);
344
335
  done();
345
336
  });
346
337
  });
@@ -350,7 +341,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
350
341
  const options = {
351
342
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices?offset=3',
352
343
  headers: {
353
- 'fiware-service': 'smartGondor',
344
+ 'fiware-service': 'smartgondor',
354
345
  'fiware-servicepath': '/gardens'
355
346
  },
356
347
  method: 'GET'
@@ -361,7 +352,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
361
352
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
362
353
  method: 'POST',
363
354
  headers: {
364
- 'fiware-service': 'smartGondor',
355
+ 'fiware-service': 'smartgondor',
365
356
  'fiware-servicepath': '/gardens'
366
357
  },
367
358
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionNewDevice.json')
@@ -379,7 +370,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
379
370
  nock.cleanAll();
380
371
 
381
372
  contextBrokerMock = nock('http://192.168.1.1:1026')
382
- .matchHeader('fiware-service', 'smartGondor')
373
+ .matchHeader('fiware-service', 'smartgondor')
383
374
  .matchHeader('fiware-servicepath', '/gardens')
384
375
  .post('/v2/registrations')
385
376
  .times(10)
@@ -394,11 +385,10 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
394
385
 
395
386
  it('should skip the first 3 devices', function (done) {
396
387
  request(options, function (error, response, body) {
397
- const parsedBody = JSON.parse(body);
398
388
  should.not.exist(error);
399
389
 
400
- for (let i = 0; i < parsedBody.devices.length; i++) {
401
- ['Light1_0', 'Light1_1', 'Light1_2'].indexOf(parsedBody.devices[i].id).should.equal(-1);
390
+ for (let i = 0; i < body.devices.length; i++) {
391
+ ['Light1_0', 'Light1_1', 'Light1_2'].indexOf(body.devices[i].id).should.equal(-1);
402
392
  }
403
393
 
404
394
  done();
@@ -410,7 +400,7 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
410
400
  const options = {
411
401
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
412
402
  headers: {
413
- 'fiware-service': 'smartGondor',
403
+ 'fiware-service': 'smartgondor',
414
404
  'fiware-servicepath': '/gardens'
415
405
  },
416
406
  method: 'GET'
@@ -440,10 +430,9 @@ describe('NGSI-v2 - Device provisioning API: List provisioned devices', function
440
430
 
441
431
  it('should return just the ones in the selected service', function (done) {
442
432
  request(options, function (error, response, body) {
443
- const parsedBody = JSON.parse(body);
444
433
  should.not.exist(error);
445
434
  response.statusCode.should.equal(200);
446
- parsedBody.devices.length.should.equal(3);
435
+ body.devices.length.should.equal(3);
447
436
  done();
448
437
  });
449
438
  });
@@ -27,9 +27,10 @@
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
- const request = require('request');
33
+
33
34
  let contextBrokerMock;
34
35
  const iotAgentConfig = {
35
36
  logLevel: 'FATAL',
@@ -43,9 +44,9 @@ const iotAgentConfig = {
43
44
  baseRoot: '/'
44
45
  },
45
46
  types: {},
46
- service: 'smartGondor',
47
+ service: 'smartgondor',
47
48
  subservice: 'gardens',
48
- providerUrl: 'http://smartGondor.com'
49
+ providerUrl: 'http://smartgondor.com'
49
50
  };
50
51
 
51
52
  describe('NGSI-v2 - Device provisioning API: Provision devices', function () {
@@ -68,7 +69,7 @@ describe('NGSI-v2 - Device provisioning API: Provision devices', function () {
68
69
  nock.cleanAll();
69
70
 
70
71
  contextBrokerMock = nock('http://192.168.1.1:1026')
71
- .matchHeader('fiware-service', 'smartGondor')
72
+ .matchHeader('fiware-service', 'smartgondor')
72
73
  .matchHeader('fiware-servicepath', '/gardens')
73
74
  .post(
74
75
  '/v2/registrations',
@@ -79,7 +80,7 @@ describe('NGSI-v2 - Device provisioning API: Provision devices', function () {
79
80
  .reply(201, null, { Location: '/v2/registrations/6319a7f5254b05844116584d' });
80
81
 
81
82
  contextBrokerMock
82
- .matchHeader('fiware-service', 'smartGondor')
83
+ .matchHeader('fiware-service', 'smartgondor')
83
84
  .matchHeader('fiware-servicepath', '/gardens')
84
85
  .post(
85
86
  '/v2/entities?options=upsert',
@@ -97,7 +98,7 @@ describe('NGSI-v2 - 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-v2 - 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
  });
@@ -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',
@@ -44,9 +45,9 @@ const iotAgentConfig = {
44
45
  baseRoot: '/'
45
46
  },
46
47
  types: {},
47
- service: 'smartGondor',
48
+ service: 'smartgondor',
48
49
  subservice: 'gardens',
49
- providerUrl: 'http://smartGondor.com'
50
+ providerUrl: 'http://smartgondor.com'
50
51
  };
51
52
 
52
53
  describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', function () {
@@ -54,7 +55,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
54
55
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
55
56
  method: 'POST',
56
57
  headers: {
57
- 'fiware-service': 'smartGondor',
58
+ 'fiware-service': 'smartgondor',
58
59
  'fiware-servicepath': '/gardens'
59
60
  },
60
61
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionNewDevice.json')
@@ -63,7 +64,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
63
64
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
64
65
  method: 'POST',
65
66
  headers: {
66
- 'fiware-service': 'smartGondor',
67
+ 'fiware-service': 'smartgondor',
67
68
  'fiware-servicepath': '/gardens'
68
69
  },
69
70
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionAnotherDevice.json')
@@ -72,7 +73,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
72
73
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
73
74
  method: 'POST',
74
75
  headers: {
75
- 'fiware-service': 'smartGondor',
76
+ 'fiware-service': 'smartgondor',
76
77
  'fiware-servicepath': '/gardens'
77
78
  },
78
79
  json: utils.readExampleFile('./test/unit/examples/deviceProvisioningRequests/provisionDeviceActiveAtts.json')
@@ -84,7 +85,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
84
85
  './test/unit/ngsiv2/examples/contextAvailabilityRequests/registerProvisionedDevice.json'
85
86
  );
86
87
  contextBrokerMock = nock('http://192.168.1.1:1026')
87
- .matchHeader('fiware-service', 'smartGondor')
88
+ .matchHeader('fiware-service', 'smartgondor')
88
89
  .matchHeader('fiware-servicepath', '/gardens')
89
90
  .post('/v2/registrations', nockBody)
90
91
  .reply(201, null, { Location: '/v2/registrations/6319a7f5254b05844116584d' });
@@ -93,7 +94,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
93
94
  // device provisioning functionality. Appropriate verification is done in tests under
94
95
  // provisioning folder
95
96
  contextBrokerMock
96
- .matchHeader('fiware-service', 'smartGondor')
97
+ .matchHeader('fiware-service', 'smartgondor')
97
98
  .matchHeader('fiware-servicepath', '/gardens')
98
99
  .post('/v2/entities?options=upsert')
99
100
  .reply(204);
@@ -102,7 +103,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
102
103
  './test/unit/ngsiv2/examples/contextAvailabilityRequests/registerProvisionedDevice2.json'
103
104
  );
104
105
  contextBrokerMock = nock('http://192.168.1.1:1026')
105
- .matchHeader('fiware-service', 'smartGondor')
106
+ .matchHeader('fiware-service', 'smartgondor')
106
107
  .matchHeader('fiware-servicepath', '/gardens')
107
108
  .post('/v2/registrations', nockBody2)
108
109
  .reply(201, null, { Location: '/v2/registrations/6319a7f5254b05844116584d' });
@@ -111,22 +112,22 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
111
112
  // device provisioning functionality. Appropriate verification is done in tests under
112
113
  // provisioning folder
113
114
  contextBrokerMock
114
- .matchHeader('fiware-service', 'smartGondor')
115
+ .matchHeader('fiware-service', 'smartgondor')
115
116
  .matchHeader('fiware-servicepath', '/gardens')
116
117
  .post('/v2/entities?options=upsert')
117
118
  .reply(204);
118
119
 
119
120
  contextBrokerMock
120
- .matchHeader('fiware-service', 'smartGondor')
121
+ .matchHeader('fiware-service', 'smartgondor')
121
122
  .matchHeader('fiware-servicepath', '/gardens')
122
- .delete('/v2/registrations/6319a7f5254b05844116584d')
123
+ .delete('/v2/registrations/6319a7f5254b05844116584d', '')
123
124
  .reply(204);
124
125
 
125
126
  // This mock does not check the payload since the aim of the test is not to verify
126
127
  // device provisioning functionality. Appropriate verification is done in tests under
127
128
  // provisioning folder
128
129
  contextBrokerMock
129
- .matchHeader('fiware-service', 'smartGondor')
130
+ .matchHeader('fiware-service', 'smartgondor')
130
131
  .matchHeader('fiware-servicepath', '/gardens')
131
132
  .post('/v2/entities?options=upsert')
132
133
  .reply(204);
@@ -153,7 +154,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
153
154
  const options = {
154
155
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/Light1',
155
156
  headers: {
156
- 'fiware-service': 'smartGondor',
157
+ 'fiware-service': 'smartgondor',
157
158
  'fiware-servicepath': '/gardens'
158
159
  },
159
160
  method: 'DELETE'
@@ -172,15 +173,14 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
172
173
  const options = {
173
174
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
174
175
  headers: {
175
- 'fiware-service': 'smartGondor',
176
+ 'fiware-service': 'smartgondor',
176
177
  'fiware-servicepath': '/gardens'
177
178
  },
178
179
  method: 'GET'
179
180
  };
180
181
 
181
182
  request(options, function (error, response, body) {
182
- const parsedBody = JSON.parse(body);
183
- parsedBody.devices.length.should.equal(2);
183
+ body.devices.length.should.equal(2);
184
184
  done();
185
185
  });
186
186
  });
@@ -191,7 +191,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
191
191
  const options = {
192
192
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/Light1',
193
193
  headers: {
194
- 'fiware-service': 'smartGondor',
194
+ 'fiware-service': 'smartgondor',
195
195
  'fiware-servicepath': '/gardens'
196
196
  },
197
197
  method: 'GET'
@@ -224,7 +224,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
224
224
  const options = {
225
225
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices/Light3',
226
226
  headers: {
227
- 'fiware-service': 'smartGondor',
227
+ 'fiware-service': 'smartgondor',
228
228
  'fiware-servicepath': '/gardens'
229
229
  },
230
230
  method: 'DELETE'