iotagent-node-lib 2.17.0 → 2.20.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 (347) hide show
  1. package/.github/workflows/ci.yml +17 -2
  2. package/.nyc_output/76bc24ff-5fac-4b5a-997d-de2799342eb0.json +1 -0
  3. package/.nyc_output/processinfo/76bc24ff-5fac-4b5a-997d-de2799342eb0.json +1 -0
  4. package/.nyc_output/processinfo/index.json +1 -1
  5. package/CHANGES_NEXT_RELEASE +1 -0
  6. package/README.md +3 -54
  7. package/doc/advanced-topics.md +121 -85
  8. package/doc/api.md +52 -52
  9. package/doc/development.md +13 -6
  10. package/doc/expressionLanguage.md +514 -312
  11. package/doc/installationguide.md +66 -64
  12. package/doc/usermanual.md +48 -16
  13. package/docker/Mosquitto/Dockerfile +1 -0
  14. package/docker/Mosquitto/README.md +1 -0
  15. package/docker/Mosquitto/startMosquitto.sh +9 -4
  16. package/lib/commonConfig.js +1 -14
  17. package/lib/errors.js +0 -16
  18. package/lib/fiware-iotagent-lib.js +4 -2
  19. package/lib/jexlTranformsMap.js +13 -2
  20. package/lib/model/Device.js +4 -1
  21. package/lib/model/Group.js +19 -1
  22. package/lib/plugins/attributeAlias.js +6 -13
  23. package/lib/plugins/bidirectionalData.js +1 -21
  24. package/lib/plugins/expressionParser.js +7 -6
  25. package/lib/plugins/expressionPlugin.js +11 -25
  26. package/lib/plugins/jexlParser.js +8 -4
  27. package/lib/plugins/multiEntity.js +54 -145
  28. package/lib/plugins/pluginUtils.js +12 -48
  29. package/lib/plugins/timestampProcessPlugin.js +1 -46
  30. package/lib/request-shim.js +111 -0
  31. package/lib/services/common/domain.js +6 -2
  32. package/lib/services/common/genericMiddleware.js +6 -2
  33. package/lib/services/common/iotManagerService.js +1 -1
  34. package/lib/services/common/securityServiceKeystone.js +1 -1
  35. package/lib/services/common/securityServiceOAuth2.js +3 -2
  36. package/lib/services/devices/deviceRegistryMongoDB.js +2 -0
  37. package/lib/services/devices/deviceService.js +2 -5
  38. package/lib/services/devices/devices-NGSI-LD.js +1 -1
  39. package/lib/services/devices/devices-NGSI-v2.js +4 -8
  40. package/lib/services/devices/registrationUtils.js +1 -134
  41. package/lib/services/ngsi/entities-NGSI-LD.js +205 -124
  42. package/lib/services/ngsi/entities-NGSI-v2.js +109 -15
  43. package/lib/services/ngsi/ngsiService.js +4 -6
  44. package/lib/services/ngsi/ngsiUtils.js +0 -36
  45. package/lib/services/ngsi/subscriptionService.js +1 -4
  46. package/lib/services/northBound/contextServer-NGSI-LD.js +7 -2
  47. package/lib/services/northBound/contextServer-NGSI-v2.js +24 -12
  48. package/lib/services/northBound/contextServer.js +1 -4
  49. package/lib/services/northBound/contextServerUtils.js +0 -81
  50. package/lib/services/northBound/deviceProvisioningServer.js +31 -7
  51. package/lib/services/northBound/northboundServer.js +2 -0
  52. package/lib/services/northBound/restUtils.js +1 -38
  53. package/lib/templates/updateDevice.json +4 -0
  54. package/lib/templates/updateDeviceLax.json +4 -0
  55. package/package.json +10 -16
  56. package/test/tools/utils.js +2 -0
  57. package/test/unit/examples/groupProvisioningRequests/multipleGroupsCreation.json +1 -1
  58. package/test/unit/expressions/jexlExpression-test.js +44 -5
  59. package/test/unit/general/contextBrokerKeystoneSecurityAccess-test.js +19 -66
  60. package/test/unit/general/deviceService-test.js +11 -27
  61. package/test/unit/general/loglevel-api_test.js +6 -11
  62. package/test/unit/general/startup-test.js +2 -1
  63. package/test/unit/memoryRegistry/deviceRegistryMemory_test.js +8 -16
  64. package/test/unit/mongodb/mongodb-group-registry-test.js +1 -1
  65. package/test/unit/mongodb/mongodb-registry-test.js +38 -114
  66. package/test/unit/ngsi-ld/examples/contextRequests/createMinimumProvisionedDevice.json +0 -7
  67. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDevice.json +0 -7
  68. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceMultientity.json +0 -7
  69. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic.json +0 -14
  70. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic2.json +0 -14
  71. package/test/unit/ngsi-ld/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic3.json +1 -15
  72. package/test/unit/ngsi-ld/examples/contextRequests/createTimeInstantMinimumDevice.json +0 -7
  73. package/test/unit/ngsi-ld/examples/contextRequests/updateContextAliasPlugin6.json +0 -7
  74. package/test/unit/ngsi-ld/examples/contextRequests/updateContextAutocast5.json +0 -7
  75. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin12a.json +7 -0
  76. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin13.json +13 -13
  77. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin16.json +0 -7
  78. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin17.json +0 -7
  79. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin1a.json +18 -0
  80. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin29.json +18 -0
  81. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin31.json +15 -0
  82. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin32.json +17 -0
  83. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin33.json +18 -0
  84. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin34.json +17 -0
  85. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin4a.json +36 -0
  86. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin5.json +0 -7
  87. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin7.json +16 -16
  88. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin8a.json +18 -0
  89. package/test/unit/ngsi-ld/examples/contextRequests/updateContextGeoproperties3.json +0 -7
  90. package/test/unit/ngsi-ld/examples/contextRequests/updateContextMultientityPlugin15.json +25 -0
  91. package/test/unit/ngsi-ld/examples/contextRequests/updateContextMultientityTimestampPlugin1.json +6 -6
  92. package/test/unit/ngsi-ld/examples/contextRequests/updateContextMultientityTimestampPlugin2.json +3 -3
  93. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionActiveAttributes1.json +0 -7
  94. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionCommands1.json +0 -7
  95. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionDeviceStatic.json +0 -7
  96. package/test/unit/ngsi-ld/examples/contextRequests/updateProvisionMinimumDevice.json +0 -7
  97. package/test/unit/ngsi-ld/expressions/jexlBasedTransformations-test.js +1018 -0
  98. package/test/unit/ngsi-ld/general/contextBrokerOAuthSecurityAccess-test.js +2 -2
  99. package/test/unit/ngsi-ld/general/deviceService-test.js +1 -1
  100. package/test/unit/ngsi-ld/general/https-support-test.js +2 -1
  101. package/test/unit/ngsi-ld/general/iotam-autoregistration-test.js +2 -1
  102. package/test/unit/ngsi-ld/general/startup-test.js +1 -0
  103. package/test/unit/ngsi-ld/lazyAndCommands/active-devices-attribute-update-test.js +3 -1
  104. package/test/unit/ngsi-ld/lazyAndCommands/command-test.js +2 -1
  105. package/test/unit/ngsi-ld/lazyAndCommands/lazy-devices-test.js +2 -6
  106. package/test/unit/ngsi-ld/lazyAndCommands/polling-commands-test.js +2 -1
  107. package/test/unit/ngsi-ld/ngsiService/active-devices-test.js +1 -0
  108. package/test/unit/ngsi-ld/ngsiService/autocast-test.js +1 -0
  109. package/test/unit/ngsi-ld/ngsiService/geoproperties-test.js +1 -0
  110. package/test/unit/ngsi-ld/ngsiService/subscriptions-test.js +4 -3
  111. package/test/unit/ngsi-ld/plugins/alias-plugin_test.js +1 -0
  112. package/test/unit/ngsi-ld/plugins/bidirectional-plugin_test.js +3 -2
  113. package/test/unit/ngsi-ld/plugins/multientity-plugin_test.js +61 -0
  114. package/test/unit/ngsi-ld/provisioning/device-provisioning-api_test.js +2 -1
  115. package/test/unit/ngsi-ld/provisioning/device-registration_test.js +3 -2
  116. package/test/unit/ngsi-ld/provisioning/device-update-registration_test.js +1 -0
  117. package/test/unit/ngsi-ld/provisioning/listProvisionedDevices-test.js +42 -54
  118. package/test/unit/ngsi-ld/provisioning/provisionDeviceMultientity-test.js +2 -1
  119. package/test/unit/ngsi-ld/provisioning/removeProvisionedDevice-test.js +4 -4
  120. package/test/unit/ngsi-ld/provisioning/singleConfigurationMode-test.js +3 -5
  121. package/test/unit/ngsi-ld/provisioning/updateProvisionedDevices-test.js +12 -18
  122. package/test/unit/ngsi-mixed/provisioning/ngsi-versioning-test.js +3 -1
  123. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent3.json +19 -0
  124. package/test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent5.json +19 -0
  125. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin17.json +1 -1
  126. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin29.json +22 -0
  127. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin30.json +6 -0
  128. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin31.json +18 -0
  129. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin32.json +16 -0
  130. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin33.json +22 -0
  131. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin34.json +12 -0
  132. package/test/unit/ngsiv2/examples/contextRequests/updateContextMiddleware1.json +10 -0
  133. package/test/unit/ngsiv2/examples/contextRequests/updateContextMiddleware2.json +10 -0
  134. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin11.json +13 -0
  135. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin12.json +33 -0
  136. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin13.json +33 -0
  137. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin14.json +33 -0
  138. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin15.json +25 -0
  139. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin16.json +25 -0
  140. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityTimestampPlugin1.json +6 -6
  141. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityTimestampPlugin2.json +3 -3
  142. package/test/unit/{examples → ngsiv2/examples}/contextRequests/updateProvisionDevice.json +0 -0
  143. package/test/unit/ngsiv2/expressions/expressionBasedTransformations-test.js +37 -4
  144. package/test/unit/ngsiv2/expressions/jexlBasedTransformations-test.js +598 -0
  145. package/test/unit/ngsiv2/general/contextBrokerOAuthSecurityAccess-test.js +3 -2
  146. package/test/unit/ngsiv2/general/deviceService-test.js +9 -8
  147. package/test/unit/ngsiv2/general/https-support-test.js +2 -1
  148. package/test/unit/ngsiv2/general/iotam-autoregistration-test.js +2 -1
  149. package/test/unit/ngsiv2/general/startup-test.js +1 -0
  150. package/test/unit/ngsiv2/lazyAndCommands/active-devices-attribute-update-test.js +3 -1
  151. package/test/unit/ngsiv2/lazyAndCommands/command-test.js +2 -1
  152. package/test/unit/ngsiv2/lazyAndCommands/lazy-devices-test.js +287 -15
  153. package/test/unit/ngsiv2/lazyAndCommands/polling-commands-test.js +3 -1
  154. package/test/unit/ngsiv2/ngsiService/active-devices-test.js +88 -0
  155. package/test/unit/{ngsiService → ngsiv2/ngsiService}/queryDeviceInformationInCb-test.js +20 -49
  156. package/test/unit/ngsiv2/ngsiService/subscriptions-test.js +4 -3
  157. package/test/unit/ngsiv2/plugins/bidirectional-plugin_test.js +3 -2
  158. package/test/unit/ngsiv2/plugins/multientity-plugin_test.js +526 -0
  159. package/test/unit/{plugins → ngsiv2/plugins}/translation-inPlugins_test.js +21 -21
  160. package/test/unit/{provisioning → ngsiv2/provisioning}/device-group-api-test.js +19 -50
  161. package/test/unit/{provisioning/device-group-utils_test.js → ngsiv2/provisioning/device-group-utils-test.js} +5 -4
  162. package/test/unit/ngsiv2/provisioning/device-provisioning-api_test.js +2 -1
  163. package/test/unit/ngsiv2/provisioning/device-registration_test.js +3 -2
  164. package/test/unit/ngsiv2/provisioning/device-update-registration_test.js +4 -3
  165. package/test/unit/ngsiv2/provisioning/listProvisionedDevices-test.js +42 -53
  166. package/test/unit/ngsiv2/provisioning/provisionDeviceMultientity-test.js +2 -1
  167. package/test/unit/ngsiv2/provisioning/removeProvisionedDevice-test.js +4 -4
  168. package/test/unit/ngsiv2/provisioning/singleConfigurationMode-test.js +3 -4
  169. package/test/unit/ngsiv2/provisioning/updateProvisionedDevices-test.js +14 -20
  170. package/test/unit/plugins/capture-configuration-inPlugins_test.js +3 -1
  171. package/test/unit/plugins/capture-provision-inPlugins_test.js +8 -18
  172. package/.eslintcache +0 -1
  173. package/.nyc_output/dca24ca1-851e-490c-9d34-8d13b3330297.json +0 -1
  174. package/.nyc_output/processinfo/dca24ca1-851e-490c-9d34-8d13b3330297.json +0 -1
  175. package/bin/agentConsole.js +0 -257
  176. package/bin/iotAgentTester.js +0 -44
  177. package/lib/command/commandLine.js +0 -918
  178. package/lib/command/migration.js +0 -176
  179. package/lib/services/devices/devices-NGSI-v1.js +0 -310
  180. package/lib/services/ngsi/entities-NGSI-v1.js +0 -299
  181. package/lib/services/ngsi/subscription-NGSI-v1.js +0 -234
  182. package/lib/services/northBound/contextServer-NGSI-v1.js +0 -526
  183. package/lib/templates/notificationTemplateNgsi1.json +0 -75
  184. package/lib/templates/updateContextNgsi1.json +0 -50
  185. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent1.json +0 -21
  186. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent2.json +0 -21
  187. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent3.json +0 -25
  188. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgent4.json +0 -22
  189. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgentAttributeUpdates.json +0 -16
  190. package/test/unit/examples/contextAvailabilityRequests/registerIoTAgentCommands.json +0 -21
  191. package/test/unit/examples/contextAvailabilityRequests/registerNewDevice1.json +0 -21
  192. package/test/unit/examples/contextAvailabilityRequests/registerNewDevice2.json +0 -21
  193. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDevice.json +0 -25
  194. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDevice2.json +0 -21
  195. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup.json +0 -33
  196. package/test/unit/examples/contextAvailabilityRequests/registerProvisionedDeviceWithGroup2.json +0 -33
  197. package/test/unit/examples/contextAvailabilityRequests/unregisterDevice1.json +0 -22
  198. package/test/unit/examples/contextAvailabilityRequests/unregisterDevice3.json +0 -26
  199. package/test/unit/examples/contextAvailabilityRequests/unregisterProvisionedDevice.json +0 -26
  200. package/test/unit/examples/contextAvailabilityRequests/updateCommands1.json +0 -22
  201. package/test/unit/examples/contextAvailabilityRequests/updateIoTAgent1.json +0 -22
  202. package/test/unit/examples/contextAvailabilityRequests/updateIoTAgent2.json +0 -26
  203. package/test/unit/examples/contextAvailabilityRequests/updateIoTAgent3.json +0 -26
  204. package/test/unit/examples/contextAvailabilityResponses/registerIoTAgent1Failed.json +0 -8
  205. package/test/unit/examples/contextAvailabilityResponses/registerIoTAgent1Success.json +0 -4
  206. package/test/unit/examples/contextAvailabilityResponses/registerNewDevice1Success.json +0 -4
  207. package/test/unit/examples/contextAvailabilityResponses/registerNewDevice2Success.json +0 -4
  208. package/test/unit/examples/contextAvailabilityResponses/registerProvisionedDeviceSuccess.json +0 -4
  209. package/test/unit/examples/contextAvailabilityResponses/unregisterDevice1Failed.json +0 -8
  210. package/test/unit/examples/contextAvailabilityResponses/unregisterDevice1Success.json +0 -4
  211. package/test/unit/examples/contextAvailabilityResponses/updateCommands1Success.json +0 -4
  212. package/test/unit/examples/contextAvailabilityResponses/updateIoTAgent1Success.json +0 -6
  213. package/test/unit/examples/contextProviderResponses/queryInformationResponse.json +0 -22
  214. package/test/unit/examples/contextProviderResponses/queryInformationResponseEmptyAttributes.json +0 -22
  215. package/test/unit/examples/contextProviderResponses/queryInformationStaticAttributesResponse.json +0 -27
  216. package/test/unit/examples/contextProviderResponses/updateInformationResponse.json +0 -22
  217. package/test/unit/examples/contextProviderResponses/updateInformationResponse2.json +0 -22
  218. package/test/unit/examples/contextRequests/contextSubscriptionRequest.json +0 -20
  219. package/test/unit/examples/contextRequests/contextSubscriptionRequest2.json +0 -20
  220. package/test/unit/examples/contextRequests/createBidirectionalDevice.json +0 -17
  221. package/test/unit/examples/contextRequests/createDatetimeProvisionedDevice.json +0 -17
  222. package/test/unit/examples/contextRequests/createGeopointProvisionedDevice.json +0 -17
  223. package/test/unit/examples/contextRequests/createMinimumProvisionedDevice.json +0 -17
  224. package/test/unit/examples/contextRequests/createProvisionedDevice.json +0 -32
  225. package/test/unit/examples/contextRequests/createProvisionedDeviceMultientity.json +0 -32
  226. package/test/unit/examples/contextRequests/createProvisionedDeviceWithGroup.json +0 -47
  227. package/test/unit/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic.json +0 -52
  228. package/test/unit/examples/contextRequests/createProvisionedDeviceWithGroupAndStatic2.json +0 -52
  229. package/test/unit/examples/contextRequests/createTimeinstantDevice.json +0 -17
  230. package/test/unit/examples/contextRequests/queryContext1.json +0 -13
  231. package/test/unit/examples/contextRequests/queryContext2.json +0 -13
  232. package/test/unit/examples/contextRequests/queryContextAliasPlugin1.json +0 -10
  233. package/test/unit/examples/contextRequests/queryContextCompressTimestamp1.json +0 -13
  234. package/test/unit/examples/contextRequests/updateActiveAttributes.json +0 -32
  235. package/test/unit/examples/contextRequests/updateContext1.json +0 -22
  236. package/test/unit/examples/contextRequests/updateContext2.json +0 -22
  237. package/test/unit/examples/contextRequests/updateContext3.json +0 -17
  238. package/test/unit/examples/contextRequests/updateContext3WithStatic.json +0 -22
  239. package/test/unit/examples/contextRequests/updateContext4.json +0 -22
  240. package/test/unit/examples/contextRequests/updateContext5.json +0 -19
  241. package/test/unit/examples/contextRequests/updateContextAliasPlugin.json +0 -22
  242. package/test/unit/examples/contextRequests/updateContextAliasPlugin2.json +0 -17
  243. package/test/unit/examples/contextRequests/updateContextAppendMode.json +0 -22
  244. package/test/unit/examples/contextRequests/updateContextCommandError.json +0 -22
  245. package/test/unit/examples/contextRequests/updateContextCommandExpired.json +0 -22
  246. package/test/unit/examples/contextRequests/updateContextCommandFinish.json +0 -22
  247. package/test/unit/examples/contextRequests/updateContextCommandStatus.json +0 -17
  248. package/test/unit/examples/contextRequests/updateContextCompressTimestamp1.json +0 -22
  249. package/test/unit/examples/contextRequests/updateContextCompressTimestamp2.json +0 -29
  250. package/test/unit/examples/contextRequests/updateContextExpressionPlugin1.json +0 -17
  251. package/test/unit/examples/contextRequests/updateContextExpressionPlugin10.json +0 -17
  252. package/test/unit/examples/contextRequests/updateContextExpressionPlugin2.json +0 -27
  253. package/test/unit/examples/contextRequests/updateContextExpressionPlugin3.json +0 -17
  254. package/test/unit/examples/contextRequests/updateContextExpressionPlugin4.json +0 -17
  255. package/test/unit/examples/contextRequests/updateContextExpressionPlugin5.json +0 -27
  256. package/test/unit/examples/contextRequests/updateContextExpressionPlugin6.json +0 -17
  257. package/test/unit/examples/contextRequests/updateContextExpressionPlugin7.json +0 -27
  258. package/test/unit/examples/contextRequests/updateContextExpressionPlugin8.json +0 -22
  259. package/test/unit/examples/contextRequests/updateContextExpressionPlugin9.json +0 -27
  260. package/test/unit/examples/contextRequests/updateContextMiddleware1.json +0 -22
  261. package/test/unit/examples/contextRequests/updateContextMultiEntityPlugin3.json +0 -35
  262. package/test/unit/examples/contextRequests/updateContextMultientityPlugin1.json +0 -30
  263. package/test/unit/examples/contextRequests/updateContextMultientityPlugin2.json +0 -30
  264. package/test/unit/examples/contextRequests/updateContextProcessTimestamp1.json +0 -29
  265. package/test/unit/examples/contextRequests/updateContextStaticAttributes.json +0 -22
  266. package/test/unit/examples/contextRequests/updateContextTimestamp.json +0 -41
  267. package/test/unit/examples/contextRequests/updateContextTimestampOverride.json +0 -22
  268. package/test/unit/examples/contextRequests/updateContextTimestampOverrideWithoutMilis.json +0 -22
  269. package/test/unit/examples/contextRequests/updateContextTimestampTimezone.json +0 -41
  270. package/test/unit/examples/contextRequests/updateProvisionActiveAttributes1.json +0 -17
  271. package/test/unit/examples/contextRequests/updateProvisionCommands1.json +0 -27
  272. package/test/unit/examples/contextRequests/updateProvisionDeviceStatic.json +0 -38
  273. package/test/unit/examples/contextRequests/updateProvisionMinimumDevice.json +0 -17
  274. package/test/unit/examples/contextResponses/contextSubscriptionRequest2Success.json +0 -7
  275. package/test/unit/examples/contextResponses/contextSubscriptionRequestSuccess.json +0 -7
  276. package/test/unit/examples/contextResponses/createBidirectionalDeviceSuccess.json +0 -22
  277. package/test/unit/examples/contextResponses/createDatetimeProvisionedDeviceSuccess.json +0 -22
  278. package/test/unit/examples/contextResponses/createGeopointProvisionedDeviceSuccess.json +0 -22
  279. package/test/unit/examples/contextResponses/createProvisionedDeviceSuccess.json +0 -22
  280. package/test/unit/examples/contextResponses/createTimeinstantSuccess.json +0 -22
  281. package/test/unit/examples/contextResponses/queryContext1Success.json +0 -27
  282. package/test/unit/examples/contextResponses/queryContext2Error.json +0 -7
  283. package/test/unit/examples/contextResponses/queryContext2UnknownError.json +0 -6
  284. package/test/unit/examples/contextResponses/queryContext3Error.json +0 -34
  285. package/test/unit/examples/contextResponses/queryContextAliasPlugin1Success.json +0 -27
  286. package/test/unit/examples/contextResponses/queryContextCompressTimestamp1Success.json +0 -27
  287. package/test/unit/examples/contextResponses/updateActiveAttributesSuccess.json +0 -42
  288. package/test/unit/examples/contextResponses/updateContext1Failed.json +0 -7
  289. package/test/unit/examples/contextResponses/updateContext1Success.json +0 -27
  290. package/test/unit/examples/contextResponses/updateContext2Failed.json +0 -35
  291. package/test/unit/examples/contextResponses/updateContextAliasPlugin2Success.json +0 -27
  292. package/test/unit/examples/contextResponses/updateContextAliasPluginSuccess.json +0 -27
  293. package/test/unit/examples/contextResponses/updateContextCommandFinishSuccess.json +0 -27
  294. package/test/unit/examples/contextResponses/updateContextCommandStatusSuccess.json +0 -22
  295. package/test/unit/examples/contextResponses/updateContextCompressTimestamp1Success.json +0 -27
  296. package/test/unit/examples/contextResponses/updateContextCompressTimestamp2Success.json +0 -34
  297. package/test/unit/examples/contextResponses/updateContextEvents1Success.json +0 -27
  298. package/test/unit/examples/contextResponses/updateContextExpressionPlugin1Success.json +0 -22
  299. package/test/unit/examples/contextResponses/updateContextExpressionPlugin2Success.json +0 -22
  300. package/test/unit/examples/contextResponses/updateContextExpressionPlugin3Success.json +0 -22
  301. package/test/unit/examples/contextResponses/updateContextExpressionPlugin5Success.json +0 -32
  302. package/test/unit/examples/contextResponses/updateContextMultientityPlugin1Success.json +0 -40
  303. package/test/unit/examples/contextResponses/updateContextMultientityPlugin2Success.json +0 -40
  304. package/test/unit/examples/contextResponses/updateContextMultientityPlugin3Success.json +0 -40
  305. package/test/unit/examples/contextResponses/updateContextProcessTimestamp1Success.json +0 -27
  306. package/test/unit/examples/contextResponses/updateProvisionActiveAttributes1Success.json +0 -22
  307. package/test/unit/examples/contextResponses/updateProvisionCommands1Success.json +0 -32
  308. package/test/unit/examples/contextResponses/updateProvisionMinimumDeviceSuccess.json +0 -22
  309. package/test/unit/examples/subscriptionRequests/bidirectionalNotification.json +0 -24
  310. package/test/unit/examples/subscriptionRequests/bidirectionalSubscriptionRemove.json +0 -3
  311. package/test/unit/examples/subscriptionRequests/bidirectionalSubscriptionRequest.json +0 -22
  312. package/test/unit/examples/subscriptionRequests/errorNotification.json +0 -24
  313. package/test/unit/examples/subscriptionRequests/simpleNotification.json +0 -24
  314. package/test/unit/examples/subscriptionRequests/simpleSubscriptionRemove.json +0 -3
  315. package/test/unit/examples/subscriptionRequests/simpleSubscriptionRequest.json +0 -19
  316. package/test/unit/examples/subscriptionRequests/simpleSubscriptionRequest1.json +0 -19
  317. package/test/unit/examples/subscriptionResponses/bidirectionalSubscriptionSuccess.json +0 -6
  318. package/test/unit/examples/subscriptionResponses/simpleSubscriptionSuccess.json +0 -6
  319. package/test/unit/expressions/expressionBasedTransformations-test.js +0 -328
  320. package/test/unit/expressions/expressionCombinedTransformations-test.js +0 -306
  321. package/test/unit/expressions/jexlBasedTransformations-test.js +0 -334
  322. package/test/unit/general/contextBrokerOAuthSecurityAccess-test.js +0 -902
  323. package/test/unit/general/https-support-test.js +0 -286
  324. package/test/unit/general/iotam-autoregistration-test.js +0 -368
  325. package/test/unit/general/migration-test.js +0 -256
  326. package/test/unit/lazyAndCommands/active-devices-attribute-update-test.js +0 -168
  327. package/test/unit/lazyAndCommands/command-test.js +0 -341
  328. package/test/unit/lazyAndCommands/lazy-devices-test.js +0 -878
  329. package/test/unit/lazyAndCommands/polling-commands-test.js +0 -421
  330. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin20.json +0 -25
  331. package/test/unit/ngsiService/active-devices-test.js +0 -692
  332. package/test/unit/ngsiService/staticAttributes-test.js +0 -148
  333. package/test/unit/ngsiService/subscriptions-test.js +0 -345
  334. package/test/unit/plugins/alias-plugin_test.js +0 -158
  335. package/test/unit/plugins/bidirectional-plugin_test.js +0 -564
  336. package/test/unit/plugins/compress-timestamp-plugin_test.js +0 -257
  337. package/test/unit/plugins/event-plugin_test.js +0 -119
  338. package/test/unit/plugins/multientity-plugin_test.js +0 -248
  339. package/test/unit/plugins/timestamp-processing-plugin_test.js +0 -119
  340. package/test/unit/provisioning/device-provisioning-api_test.js +0 -748
  341. package/test/unit/provisioning/device-registration_test.js +0 -432
  342. package/test/unit/provisioning/device-update-registration_test.js +0 -326
  343. package/test/unit/provisioning/listProvisionedDevices-test.js +0 -488
  344. package/test/unit/provisioning/provisionDeviceMultientity-test.js +0 -123
  345. package/test/unit/provisioning/removeProvisionedDevice-test.js +0 -244
  346. package/test/unit/provisioning/singleConfigurationMode-test.js +0 -346
  347. package/test/unit/provisioning/updateProvisionedDevices-test.js +0 -436
@@ -23,13 +23,14 @@
23
23
 
24
24
  /* eslint-disable no-unused-vars */
25
25
 
26
- const iotAgentLib = require('../../../lib/fiware-iotagent-lib');
26
+ const iotAgentLib = require('../../../../lib/fiware-iotagent-lib');
27
27
  const _ = require('underscore');
28
28
  const async = require('async');
29
29
  const nock = require('nock');
30
- const utils = require('../../tools/utils');
31
- const groupRegistryMemory = require('../../../lib/services/groups/groupRegistryMemory');
32
- const request = require('request');
30
+ const utils = require('../../../tools/utils');
31
+ const request = utils.request;
32
+ const groupRegistryMemory = require('../../../../lib/services/groups/groupRegistryMemory');
33
+
33
34
  const should = require('should');
34
35
  const iotAgentConfig = {
35
36
  logLevel: 'FATAL',
@@ -188,7 +189,7 @@ const optionsGet = {
188
189
  }
189
190
  };
190
191
 
191
- describe('Device Group Configuration API', function () {
192
+ describe('NGSI-v2 - Device Group Configuration API', function () {
192
193
  beforeEach(function (done) {
193
194
  iotAgentLib.activate(iotAgentConfig, function () {
194
195
  groupRegistryMemory.clear(done);
@@ -412,58 +413,26 @@ describe('Device Group Configuration API', function () {
412
413
  contextBrokerMock = nock('http://192.168.1.1:1026')
413
414
  .matchHeader('fiware-service', 'testservice')
414
415
  .matchHeader('fiware-servicepath', '/testingPath')
415
- .post(
416
- '/v1/updateContext',
417
- utils.readExampleFile('./test/unit/examples/contextRequests/createProvisionedDevice.json')
418
- )
419
- .reply(
420
- 200,
421
- utils.readExampleFile('./test/unit/examples/contextResponses/createProvisionedDeviceSuccess.json')
422
- );
416
+ .post('/v2/entities?options=upsert')
417
+ .reply(204);
423
418
 
424
419
  contextBrokerMock
425
420
  .matchHeader('fiware-service', 'testservice')
426
421
  .matchHeader('fiware-servicepath', '/testingPath')
427
- .post(
428
- '/NGSI9/registerContext',
429
- utils.readExampleFile(
430
- './test/unit/examples/contextAvailabilityRequests/registerProvisionedDevice.json'
431
- )
432
- )
433
- .reply(
434
- 200,
435
- utils.readExampleFile(
436
- './test/unit/examples/contextAvailabilityResponses/registerProvisionedDeviceSuccess.json'
437
- )
438
- );
422
+ .post('/v2/registrations')
423
+ .reply(201, null, { Location: '/v2/registrations/6319a7f5254b05844116584d' });
439
424
 
440
425
  contextBrokerMock
441
426
  .matchHeader('fiware-service', 'testservice')
442
427
  .matchHeader('fiware-servicepath', '/testingPath')
443
- .post(
444
- '/NGSI9/registerContext',
445
- utils.readExampleFile(
446
- './test/unit/examples/contextAvailabilityRequests/unregisterProvisionedDevice.json'
447
- )
448
- )
449
- .reply(
450
- 200,
451
- utils.readExampleFile(
452
- './test/unit/examples/contextAvailabilityResponses/unregisterDevice1Success.json'
453
- )
454
- );
428
+ .delete('/v2/registrations/6319a7f5254b05844116584d', '')
429
+ .reply(204);
455
430
 
456
431
  contextBrokerMock
457
432
  .matchHeader('fiware-service', 'testservice')
458
433
  .matchHeader('fiware-servicepath', '/testingPath')
459
- .post(
460
- '/v1/updateContext',
461
- utils.readExampleFile('./test/unit/examples/contextRequests/createProvisionedDevice.json')
462
- )
463
- .reply(
464
- 200,
465
- utils.readExampleFile('./test/unit/examples/contextResponses/createProvisionedDeviceSuccess.json')
466
- );
434
+ .post('/v2/entities?options=upsert')
435
+ .reply(204);
467
436
 
468
437
  async.series(
469
438
  [
@@ -936,12 +905,12 @@ describe('Device Group Configuration API', function () {
936
905
  contextBrokerMock = nock('http://unexistentHost:1026')
937
906
  .matchHeader('fiware-service', 'testservice')
938
907
  .matchHeader('fiware-servicepath', '/testingPath')
939
- .post(
940
- '/v1/updateContext',
941
- utils.readExampleFile('./test/unit/examples/contextRequests/updateContext3WithStatic.json')
908
+ .patch(
909
+ '/v2/entities/machine1/attrs',
910
+ utils.readExampleFile('./test/unit/ngsiv2/examples/contextRequests/updateContext3WithStatic.json')
942
911
  )
943
- .reply(200, utils.readExampleFile('./test/unit/examples/contextResponses/updateContext1Success.json'));
944
-
912
+ .query({ type: 'SensorMachine' })
913
+ .reply(204, {});
945
914
  async.series([async.apply(request, optionsCreation)], done);
946
915
  });
947
916
 
@@ -23,12 +23,13 @@
23
23
 
24
24
  /* eslint-disable no-unused-vars */
25
25
 
26
- const iotAgentLib = require('../../../lib/fiware-iotagent-lib');
27
- const utils = require('../../tools/utils');
26
+ const iotAgentLib = require('../../../../lib/fiware-iotagent-lib');
27
+ const utils = require('../../../tools/utils');
28
+ const request = utils.request;
28
29
  const should = require('should');
29
30
  const async = require('async');
30
- const groupRegistryMemory = require('../../../lib/services/groups/groupRegistryMemory');
31
- const request = require('request');
31
+ const groupRegistryMemory = require('../../../../lib/services/groups/groupRegistryMemory');
32
+
32
33
  const groupCreation = {
33
34
  url: 'http://localhost:4041/iot/services',
34
35
  method: 'POST',
@@ -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
  const moment = require('moment');
34
35
  let contextBrokerMock;
35
36
  const iotAgentConfig = {
@@ -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');
@@ -289,7 +290,7 @@ describe('NGSI-v2 - IoT Agent Device Registration', function () {
289
290
  contextBrokerMock.post('/v2/entities?options=upsert').reply(204);
290
291
 
291
292
  contextBrokerMock
292
- .delete('/v2/registrations/6319a7f5254b05844116584d')
293
+ .delete('/v2/registrations/6319a7f5254b05844116584d', '')
293
294
  .reply(204, null, { Location: '/v2/registrations/6319a7f5254b05844116584d' });
294
295
 
295
296
  iotAgentLib.activate(iotAgentConfig, function (error) {
@@ -334,7 +335,7 @@ describe('NGSI-v2 - IoT Agent Device Registration', function () {
334
335
  // provisioning folder
335
336
  contextBrokerMock.post('/v2/entities?options=upsert').reply(204);
336
337
 
337
- contextBrokerMock.delete('/v2/registrations/6319a7f5254b05844116584d').reply(500);
338
+ contextBrokerMock.delete('/v2/registrations/6319a7f5254b05844116584d', '').reply(500);
338
339
 
339
340
  iotAgentLib.activate(iotAgentConfig, function (error) {
340
341
  async.series(
@@ -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');
@@ -188,7 +189,7 @@ describe('NGSI-v2 - IoT Agent Device Update Registration', function () {
188
189
  contextBrokerMock
189
190
  .matchHeader('fiware-service', 'smartgondor')
190
191
  .matchHeader('fiware-servicepath', 'gardens')
191
- .delete('/v2/registrations/6319a7f5254b05844116584d')
192
+ .delete('/v2/registrations/6319a7f5254b05844116584d', '')
192
193
  .reply(204);
193
194
 
194
195
  contextBrokerMock
@@ -243,7 +244,7 @@ describe('NGSI-v2 - IoT Agent Device Update Registration', function () {
243
244
  contextBrokerMock
244
245
  .matchHeader('fiware-service', 'smartgondor')
245
246
  .matchHeader('fiware-servicepath', 'gardens')
246
- .delete('/v2/registrations/6319a7f5254b05844116584d')
247
+ .delete('/v2/registrations/6319a7f5254b05844116584d', '')
247
248
  .reply(204);
248
249
 
249
250
  contextBrokerMock
@@ -296,7 +297,7 @@ describe('NGSI-v2 - IoT Agent Device Update Registration', function () {
296
297
  // FIXME: When https://github.com/telefonicaid/fiware-orion/issues/3007 is merged into master branch,
297
298
  // this function should use the new API. This is just a temporary solution which implies deleting the
298
299
  // registration and creating a new one.
299
- contextBrokerMock.delete('/v2/registrations/6319a7f5254b05844116584d').reply(500, {});
300
+ contextBrokerMock.delete('/v2/registrations/6319a7f5254b05844116584d', '').reply(500, {});
300
301
 
301
302
  contextBrokerMock
302
303
  .matchHeader('fiware-service', 'smartgondor')
@@ -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',
@@ -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
  });
@@ -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
  });
@@ -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
  });
@@ -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
  });
@@ -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();
@@ -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',
@@ -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',
@@ -119,7 +120,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
119
120
  contextBrokerMock
120
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
@@ -179,8 +180,7 @@ describe('NGSI-v2 - Device provisioning API: Remove provisioned devices', functi
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
  });
@@ -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
  let contextBrokerMock;
33
- const request = require('request');
34
+
34
35
  const iotAgentConfig = {
35
36
  logLevel: 'FATAL',
36
37
  contextBroker: {
@@ -264,9 +265,7 @@ describe('NGSI-v2 - Provisioning API: Single service mode', function () {
264
265
  it('should be provisioned with the default type', function (done) {
265
266
  request(deviceCreation, function (error, response, body) {
266
267
  request(getDevice, function (error, response, body) {
267
- const parsedBody = JSON.parse(body);
268
-
269
- parsedBody.entity_type.should.equal('SensorMachine');
268
+ body.entity_type.should.equal('SensorMachine');
270
269
 
271
270
  done();
272
271
  });
@@ -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',
@@ -133,7 +134,7 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
133
134
  contextBrokerMock
134
135
  .matchHeader('fiware-service', 'smartgondor')
135
136
  .matchHeader('fiware-servicepath', '/gardens')
136
- .delete('/v2/registrations/6719a7f5254b058441165849')
137
+ .delete('/v2/registrations/6719a7f5254b058441165849', '')
137
138
  .reply(204);
138
139
 
139
140
  const nockBody3 = utils.readExampleFile(
@@ -180,7 +181,7 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
180
181
  .matchHeader('fiware-servicepath', '/gardens')
181
182
  .post(
182
183
  '/v2/entities?options=upsert',
183
- utils.readExampleFile('./test/unit/examples/contextRequests/updateProvisionDevice.json')
184
+ utils.readExampleFile('./test/unit/ngsiv2/examples/contextRequests/updateProvisionDevice.json')
184
185
  )
185
186
  .reply(204);
186
187
 
@@ -191,7 +192,7 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
191
192
  contextBrokerMock
192
193
  .matchHeader('fiware-service', 'smartgondor')
193
194
  .matchHeader('fiware-servicepath', '/gardens')
194
- .delete('/v2/registrations/6319a7f5254b05844116584d')
195
+ .delete('/v2/registrations/6319a7f5254b05844116584d', '')
195
196
  .reply(204);
196
197
 
197
198
  contextBrokerMock
@@ -239,9 +240,8 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
239
240
  request(options, function (error, response, body) {
240
241
  /* jshint camelcase:false */
241
242
 
242
- const parsedBody = JSON.parse(body);
243
- parsedBody.entity_name.should.equal('ANewLightName');
244
- parsedBody.timezone.should.equal('Europe/Madrid');
243
+ body.entity_name.should.equal('ANewLightName');
244
+ body.timezone.should.equal('Europe/Madrid');
245
245
  done();
246
246
  });
247
247
  });
@@ -261,9 +261,8 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
261
261
  request(options, function (error, response, body) {
262
262
  /* jshint camelcase:false */
263
263
 
264
- const parsedBody = JSON.parse(body);
265
- parsedBody.entity_type.should.equal('TheLightType');
266
- parsedBody.service.should.equal('smartgondor');
264
+ body.entity_type.should.equal('TheLightType');
265
+ body.service.should.equal('smartgondor');
267
266
  done();
268
267
  });
269
268
  });
@@ -370,10 +369,8 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
370
369
  should.not.exist(error);
371
370
  response.statusCode.should.equal(200);
372
371
 
373
- const parsedBody = JSON.parse(body);
374
-
375
- parsedBody.attributes.length.should.equal(1);
376
- parsedBody.attributes[0].name.should.equal('newAttribute');
372
+ body.attributes.length.should.equal(1);
373
+ body.attributes[0].name.should.equal('newAttribute');
377
374
  done();
378
375
  });
379
376
  });
@@ -440,10 +437,8 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
440
437
  should.not.exist(error);
441
438
  response.statusCode.should.equal(200);
442
439
 
443
- const parsedBody = JSON.parse(body);
444
-
445
- parsedBody.static_attributes.length.should.equal(3);
446
- parsedBody.static_attributes[0].name.should.equal('cellID');
440
+ body.static_attributes.length.should.equal(3);
441
+ body.static_attributes[0].name.should.equal('cellID');
447
442
  done();
448
443
  });
449
444
  });
@@ -493,8 +488,7 @@ describe('NGSI-v2 - Device provisioning API: Update provisioned devices', functi
493
488
  should.not.exist(error);
494
489
  response.statusCode.should.equal(200);
495
490
 
496
- const parsedBody = JSON.parse(body);
497
- parsedBody.explicitAttrs.should.equal(false);
491
+ body.explicitAttrs.should.equal(false);
498
492
  done();
499
493
  });
500
494
  });
@@ -24,9 +24,11 @@
24
24
  /* eslint-disable no-unused-vars */
25
25
 
26
26
  const iotAgentLib = require('../../../lib/fiware-iotagent-lib');
27
+ const utils = require('../../tools/utils');
28
+ const request = utils.request;
27
29
  const should = require('should');
28
30
  const logger = require('logops');
29
- const request = require('request');
31
+
30
32
  const iotAgentConfig = {
31
33
  contextBroker: {
32
34
  host: '192.168.1.1',
@@ -25,10 +25,11 @@
25
25
 
26
26
  const iotAgentLib = require('../../../lib/fiware-iotagent-lib');
27
27
  const utils = require('../../tools/utils');
28
+ const request = utils.request;
28
29
  const should = require('should');
29
30
  const logger = require('logops');
30
31
  const nock = require('nock');
31
- const request = require('request');
32
+
32
33
  let contextBrokerMock;
33
34
  const iotAgentConfig = {
34
35
  contextBroker: {
@@ -62,7 +63,7 @@ const iotAgentConfig = {
62
63
  deviceRegistrationDuration: 'P1M'
63
64
  };
64
65
 
65
- describe('Data Mapping Plugins: device provision', function () {
66
+ describe('NGSI-v2 - Data Mapping Plugins: device provision', function () {
66
67
  const options = {
67
68
  url: 'http://localhost:' + iotAgentConfig.server.port + '/iot/devices',
68
69
  method: 'POST',
@@ -82,27 +83,16 @@ describe('Data Mapping Plugins: device provision', function () {
82
83
  .matchHeader('fiware-service', 'smartgondor')
83
84
  .matchHeader('fiware-servicepath', '/gardens')
84
85
  .post(
85
- '/NGSI9/registerContext',
86
- utils.readExampleFile('./test/unit/examples/contextAvailabilityRequests/registerProvisionedDevice.json')
86
+ '/v2/registrations',
87
+ utils.readExampleFile('./test/unit/ngsiv2/examples/contextAvailabilityRequests/registerIoTAgent5.json')
87
88
  )
88
- .reply(
89
- 200,
90
- utils.readExampleFile(
91
- './test/unit/examples/contextAvailabilityResponses/registerProvisionedDeviceSuccess.json'
92
- )
93
- );
89
+ .reply(201, null, { Location: '/v2/registrations/6319a7f5254b05844116584d' });
94
90
 
95
91
  contextBrokerMock
96
92
  .matchHeader('fiware-service', 'smartgondor')
97
93
  .matchHeader('fiware-servicepath', '/gardens')
98
- .post(
99
- '/v1/updateContext',
100
- utils.readExampleFile('./test/unit/examples/contextRequests/createProvisionedDevice.json')
101
- )
102
- .reply(
103
- 200,
104
- utils.readExampleFile('./test/unit/examples/contextResponses/createProvisionedDeviceSuccess.json')
105
- );
94
+ .post('/v2/entities?options=upsert')
95
+ .reply(204);
106
96
 
107
97
  iotAgentLib.activate(iotAgentConfig, function (error) {
108
98
  iotAgentLib.clearAll(done);