UNPKG

bacstack

Version:

A BACnet protocol stack written in pure JavaScript.

91 lines (88 loc) 2.92 kB
'use strict'; const utils = require('./utils'); const baServices = require('../../lib/services'); describe('bacstack - Services layer CreateObject unit', () => { it('should successfully encode and decode', () => { const buffer = utils.getBuffer(); const date = new Date(1, 1, 1); const time = new Date(1, 1, 1); time.setMilliseconds(990); baServices.createObject.encode(buffer, {type: 1, instance: 10}, [ {property: {id: 81, index: 0xFFFFFFFF}, value: [ {type: 0}, {type: 1, value: null}, {type: 1, value: true}, {type: 1, value: false}, {type: 2, value: 1}, {type: 2, value: 1000}, {type: 2, value: 1000000}, {type: 2, value: 1000000000}, {type: 3, value: -1}, {type: 3, value: -1000}, {type: 3, value: -1000000}, {type: 3, value: -1000000000}, {type: 4, value: 0.1}, {type: 5, value: 100.121212}, {type: 6, value: [1, 2, 100, 200]}, {type: 7, value: 'Test1234$'}, {type: 8, value: {bitsUsed: 0, value: []}}, {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}}, {type: 9, value: 4}, {type: 10, value: date}, {type: 11, value: time} ], priority: 0}, {property: {id: 82, index: 0}, value: [ {type: 12, value: {type: 3, instance: 0}} ], priority: 0} ]); const result = baServices.createObject.decode(buffer.buffer, 0, buffer.offset); delete result.len; result.values[0].value[12].value = Math.floor(result.values[0].value[12].value * 1000) / 1000; expect(result).toEqual({ objectId: { type: 1, instance: 10 }, values: [ { property: { index: 0xFFFFFFFF, id: 81 }, value: [ {type: 0, value: null}, {type: 0, value: null}, {type: 1, value: true}, {type: 1, value: false}, {type: 2, value: 1}, {type: 2, value: 1000}, {type: 2, value: 1000000}, {type: 2, value: 1000000000}, {type: 3, value: -1}, {type: 3, value: -1000}, {type: 3, value: -1000000}, {type: 3, value: -1000000000}, {type: 4, value: 0.1}, {type: 5, value: 100.121212}, {type: 6, value: [1, 2, 100, 200]}, {type: 7, value: 'Test1234$', encoding: 0}, {type: 8, value: {bitsUsed: 0, value: []}}, {type: 8, value: {bitsUsed: 24, value: [0xAA, 0xAA, 0xAA]}}, {type: 9, value: 4}, {type: 10, value: date}, {type: 11, value: time} ] }, { property: { index: 0xFFFFFFFF, id: 82 }, value: [ {type: 12, value: {type: 3, instance: 0}} ] } ] }); }); });