fh1ch/node-bacstack

View on GitHub
test/unit/service-get-event-information.spec.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

const utils = require('./utils');
const baServices = require('../../lib/services');
const baEnum = require('../../lib/enum');

describe('bacstack - Services layer GetEventInformation unit', () => {
  it('should successfully encode and decode', () => {
    const buffer = utils.getBuffer();
    baServices.getEventInformation.encode(buffer, {type: 8, instance: 15});
    const result = baServices.getEventInformation.decode(buffer.buffer, 0);
    delete result.len;
    expect(result).toEqual({
      lastReceivedObjectId: {type: 8, instance: 15}
    });
  });
});

describe('GetEventInformationAcknowledge', () => {
  it('should successfully encode and decode', () => {
    const timeStamp = new Date(1, 1, 1);
    timeStamp.setMilliseconds(990);
    const buffer = utils.getBuffer();
    baServices.getEventInformation.encodeAcknowledge(buffer, [
      {
        objectId: {type: 2, instance: 17},
        eventState: 3,
        acknowledgedTransitions: {value: [14], bitsUsed: 6},
        eventTimeStamps: [{value: timeStamp, type: baEnum.TimeStamp.DATETIME}, {value: 5, type: baEnum.TimeStamp.SEQUENCE_NUMBER}, {value: timeStamp, type: baEnum.TimeStamp.TIME}],
        notifyType: 12,
        eventEnable: {value: [14], bitsUsed: 6},
        eventPriorities: [1, 2, 3]
      }
    ], false);
    const result = baServices.getEventInformation.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
    delete result.len;
    expect(result).toEqual({
      events: [
        {
          objectId: {type: 2, instance: 17},
          eventState: 3,
          acknowledgedTransitions: {value: [14], bitsUsed: 6}, eventTimeStamps: [{value: timeStamp, type: baEnum.TimeStamp.DATETIME}, {value: 5, type: baEnum.TimeStamp.SEQUENCE_NUMBER}, {value: timeStamp, type: baEnum.TimeStamp.TIME}],
          notifyType: 12,
          eventEnable: {value: [14], bitsUsed: 6},
          eventPriorities: [1, 2, 3]
        }
      ],
      moreEvents: false
    });
  });

  it('should successfully encode and decode empty payload', () => {
    const buffer = utils.getBuffer();
    baServices.getEventInformation.encodeAcknowledge(buffer, [], true);
    const result = baServices.getEventInformation.decodeAcknowledge(buffer.buffer, 0, buffer.offset);
    delete result.len;
    expect(result).toEqual({
      events: [],
      moreEvents: true
    });
  });
});