iotagent-node-lib 2.18.0 → 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 (119) hide show
  1. package/.github/workflows/ci.yml +1 -2
  2. package/doc/advanced-topics.md +122 -53
  3. package/doc/api.md +52 -52
  4. package/doc/development.md +8 -9
  5. package/doc/expressionLanguage.md +514 -316
  6. package/doc/installationguide.md +66 -64
  7. package/doc/usermanual.md +48 -16
  8. package/docker/Mosquitto/Dockerfile +1 -0
  9. package/docker/Mosquitto/README.md +1 -0
  10. package/docker/Mosquitto/startMosquitto.sh +6 -4
  11. package/lib/command/commandLine.js +1 -1
  12. package/lib/fiware-iotagent-lib.js +3 -0
  13. package/lib/jexlTranformsMap.js +9 -1
  14. package/lib/model/Device.js +4 -1
  15. package/lib/model/Group.js +19 -1
  16. package/lib/plugins/expressionParser.js +6 -4
  17. package/lib/plugins/expressionPlugin.js +8 -1
  18. package/lib/plugins/jexlParser.js +3 -1
  19. package/lib/request-shim.js +111 -0
  20. package/lib/services/common/genericMiddleware.js +6 -2
  21. package/lib/services/common/iotManagerService.js +1 -1
  22. package/lib/services/common/securityServiceKeystone.js +1 -1
  23. package/lib/services/common/securityServiceOAuth2.js +3 -2
  24. package/lib/services/devices/deviceRegistryMongoDB.js +1 -0
  25. package/lib/services/devices/devices-NGSI-LD.js +1 -1
  26. package/lib/services/devices/devices-NGSI-v2.js +2 -6
  27. package/lib/services/devices/registrationUtils.js +0 -2
  28. package/lib/services/ngsi/entities-NGSI-LD.js +95 -11
  29. package/lib/services/ngsi/entities-NGSI-v2.js +93 -8
  30. package/lib/services/ngsi/ngsiService.js +3 -2
  31. package/lib/services/northBound/contextServer-NGSI-LD.js +3 -2
  32. package/lib/services/northBound/deviceProvisioningServer.js +29 -6
  33. package/lib/services/northBound/northboundServer.js +2 -0
  34. package/lib/services/northBound/restUtils.js +1 -1
  35. package/package.json +4 -4
  36. package/test/tools/utils.js +2 -0
  37. package/test/unit/expressions/jexlExpression-test.js +5 -5
  38. package/test/unit/general/contextBrokerKeystoneSecurityAccess-test.js +1 -1
  39. package/test/unit/general/deviceService-test.js +2 -5
  40. package/test/unit/general/loglevel-api_test.js +6 -11
  41. package/test/unit/general/migration-test.js +1 -0
  42. package/test/unit/general/startup-test.js +1 -0
  43. package/test/unit/memoryRegistry/deviceRegistryMemory_test.js +1 -0
  44. package/test/unit/mongodb/mongodb-group-registry-test.js +1 -1
  45. package/test/unit/mongodb/mongodb-registry-test.js +2 -1
  46. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin12a.json +7 -0
  47. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin13.json +13 -13
  48. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin1a.json +18 -0
  49. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin29.json +18 -0
  50. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin31.json +15 -0
  51. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin32.json +17 -0
  52. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin33.json +18 -0
  53. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin34.json +17 -0
  54. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin4a.json +36 -0
  55. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin7.json +16 -16
  56. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin8a.json +18 -0
  57. package/test/unit/ngsi-ld/examples/contextRequests/updateContextMultientityPlugin15.json +25 -0
  58. package/test/unit/ngsi-ld/expressions/jexlBasedTransformations-test.js +1018 -0
  59. package/test/unit/ngsi-ld/general/contextBrokerOAuthSecurityAccess-test.js +2 -2
  60. package/test/unit/ngsi-ld/general/deviceService-test.js +1 -1
  61. package/test/unit/ngsi-ld/general/https-support-test.js +2 -1
  62. package/test/unit/ngsi-ld/general/iotam-autoregistration-test.js +2 -1
  63. package/test/unit/ngsi-ld/general/startup-test.js +1 -0
  64. package/test/unit/ngsi-ld/lazyAndCommands/active-devices-attribute-update-test.js +3 -1
  65. package/test/unit/ngsi-ld/lazyAndCommands/command-test.js +2 -1
  66. package/test/unit/ngsi-ld/lazyAndCommands/lazy-devices-test.js +2 -6
  67. package/test/unit/ngsi-ld/lazyAndCommands/polling-commands-test.js +2 -1
  68. package/test/unit/ngsi-ld/ngsiService/active-devices-test.js +1 -0
  69. package/test/unit/ngsi-ld/ngsiService/autocast-test.js +1 -0
  70. package/test/unit/ngsi-ld/ngsiService/geoproperties-test.js +1 -0
  71. package/test/unit/ngsi-ld/ngsiService/subscriptions-test.js +4 -3
  72. package/test/unit/ngsi-ld/plugins/alias-plugin_test.js +1 -0
  73. package/test/unit/ngsi-ld/plugins/bidirectional-plugin_test.js +3 -2
  74. package/test/unit/ngsi-ld/plugins/multientity-plugin_test.js +61 -0
  75. package/test/unit/ngsi-ld/provisioning/device-provisioning-api_test.js +2 -1
  76. package/test/unit/ngsi-ld/provisioning/device-registration_test.js +3 -2
  77. package/test/unit/ngsi-ld/provisioning/device-update-registration_test.js +1 -0
  78. package/test/unit/ngsi-ld/provisioning/listProvisionedDevices-test.js +42 -54
  79. package/test/unit/ngsi-ld/provisioning/provisionDeviceMultientity-test.js +2 -1
  80. package/test/unit/ngsi-ld/provisioning/removeProvisionedDevice-test.js +4 -4
  81. package/test/unit/ngsi-ld/provisioning/singleConfigurationMode-test.js +3 -5
  82. package/test/unit/ngsi-ld/provisioning/updateProvisionedDevices-test.js +12 -18
  83. package/test/unit/ngsi-mixed/provisioning/ngsi-versioning-test.js +3 -1
  84. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin17.json +1 -1
  85. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin32.json +16 -0
  86. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin33.json +22 -0
  87. package/test/unit/ngsiv2/examples/contextRequests/updateContextExpressionPlugin34.json +12 -0
  88. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin15.json +25 -0
  89. package/test/unit/ngsiv2/examples/contextRequests/updateContextMultientityPlugin16.json +25 -0
  90. package/test/unit/ngsiv2/expressions/expressionBasedTransformations-test.js +4 -4
  91. package/test/unit/ngsiv2/expressions/jexlBasedTransformations-test.js +500 -0
  92. package/test/unit/ngsiv2/general/contextBrokerOAuthSecurityAccess-test.js +3 -2
  93. package/test/unit/ngsiv2/general/deviceService-test.js +9 -8
  94. package/test/unit/ngsiv2/general/https-support-test.js +2 -1
  95. package/test/unit/ngsiv2/general/iotam-autoregistration-test.js +2 -1
  96. package/test/unit/ngsiv2/general/startup-test.js +1 -0
  97. package/test/unit/ngsiv2/lazyAndCommands/active-devices-attribute-update-test.js +3 -1
  98. package/test/unit/ngsiv2/lazyAndCommands/command-test.js +2 -1
  99. package/test/unit/ngsiv2/lazyAndCommands/lazy-devices-test.js +14 -18
  100. package/test/unit/ngsiv2/lazyAndCommands/polling-commands-test.js +3 -1
  101. package/test/unit/ngsiv2/ngsiService/active-devices-test.js +1 -0
  102. package/test/unit/ngsiv2/ngsiService/queryDeviceInformationInCb-test.js +0 -1
  103. package/test/unit/ngsiv2/ngsiService/subscriptions-test.js +4 -3
  104. package/test/unit/ngsiv2/plugins/bidirectional-plugin_test.js +3 -2
  105. package/test/unit/ngsiv2/plugins/multientity-plugin_test.js +210 -0
  106. package/test/unit/ngsiv2/plugins/translation-inPlugins_test.js +1 -1
  107. package/test/unit/ngsiv2/provisioning/device-group-api-test.js +3 -2
  108. package/test/unit/ngsiv2/provisioning/device-group-utils-test.js +2 -1
  109. package/test/unit/ngsiv2/provisioning/device-provisioning-api_test.js +2 -1
  110. package/test/unit/ngsiv2/provisioning/device-registration_test.js +3 -2
  111. package/test/unit/ngsiv2/provisioning/device-update-registration_test.js +4 -3
  112. package/test/unit/ngsiv2/provisioning/listProvisionedDevices-test.js +42 -53
  113. package/test/unit/ngsiv2/provisioning/provisionDeviceMultientity-test.js +2 -1
  114. package/test/unit/ngsiv2/provisioning/removeProvisionedDevice-test.js +4 -4
  115. package/test/unit/ngsiv2/provisioning/singleConfigurationMode-test.js +3 -4
  116. package/test/unit/ngsiv2/provisioning/updateProvisionedDevices-test.js +13 -19
  117. package/test/unit/plugins/capture-configuration-inPlugins_test.js +3 -1
  118. package/test/unit/plugins/capture-provision-inPlugins_test.js +2 -1
  119. package/test/unit/ngsi-ld/examples/contextRequests/updateContextExpressionPlugin20.json +0 -25
@@ -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(
@@ -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: {
@@ -1,25 +0,0 @@
1
- [
2
- {
3
- "@context": "http://context.json-ld",
4
- "longitude": {
5
- "type": "Property",
6
- "value": 0.44
7
- },
8
- "latitude": {
9
- "type": "Property",
10
- "value": 10
11
- },
12
- "location": {
13
- "type": "GeoProperty",
14
- "value": {
15
- "type": "Point",
16
- "coordinates": [
17
- 0.44,
18
- 10
19
- ]
20
- }
21
- },
22
- "id": "urn:ngsi-ld:WeatherStation:ws1",
23
- "type": "WeatherStation"
24
- }
25
- ]