UNPKG

dlms-protocol

Version:

DLMS Protocol parser for JavaScript

100 lines (78 loc) 3.51 kB
import ReadRequest from "../src/messages/ReadRequest"; import MessageType from "../src/enum/MessageType"; describe("ReadRequest class", () => { test("should initialize with default values when no parameters are provided", () => { const readRequest = new ReadRequest(); expect(readRequest.qty).toBe(0); expect(readRequest.variableNames).toEqual([]); expect(readRequest.value).toEqual([]); expect(readRequest.variableParameters).toEqual([]); }); test("should initialize with variableNames array", () => { const variableNames = [256, 512, 768]; // Example variable names const readRequest = new ReadRequest(variableNames); expect(readRequest.qty).toBe(3); expect(readRequest.variableNames).toEqual(variableNames); expect(readRequest.variableParameters).toEqual([]); }); test("should initialize with variableNamesString", () => { const variableNamesString = "123456"; const readRequest = new ReadRequest(null, variableNamesString); expect(readRequest.qty).toBe(1); expect(readRequest.variableNames).toEqual([]); expect(readRequest.variableParameters).toEqual([0x12, 0x34, 0x56]); }); test("should correctly insert data with insertData()", () => { const variableNames = [1024, 2048]; const readRequest = new ReadRequest(); readRequest.insertData(variableNames); expect(readRequest.qty).toBe(2); expect(readRequest.variableNames).toEqual(variableNames); expect(readRequest.variableParameters).toEqual([]); }); test("should return the correct byte array with getBytes() (variableNames)", () => { const variableNames = [256, 512]; const readRequest = new ReadRequest(variableNames); const result = readRequest.getBytes(); expect(result).toEqual([ MessageType.READ_REQUEST, 2, // qty 0x02, // Indicator byte 0x01, 0x00, // Variable 256 0x02, 0x00, // Variable 512 ]); }); test("should return the correct byte array with getBytes() (variableNamesString)", () => { const variableNamesString = "123456"; const readRequest = new ReadRequest(null, variableNamesString); const result = readRequest.getBytes(); expect(result).toEqual([ MessageType.READ_REQUEST, 1, // qty 0x02, // Indicator byte 0x12, 0x34, 0x56, // Variable parameters ]); }); test("should return the correct hexadecimal string with getHexString()", () => { const variableNames = [256, 512]; const readRequest = new ReadRequest(variableNames); readRequest.getBytes(); // Populate value const hexString = readRequest.getHexString(); const expectedHex = [ MessageType.READ_REQUEST, 2, // qty 0x02, // Indicator byte 0x01, 0x00, // Variable 256 0x02, 0x00, // Variable 512 ] .map(byte => byte.toString(16).toUpperCase().padStart(2, "0")) .join(" "); expect(hexString).toBe(expectedHex); }); test("should correctly convert hex string to byte array with _stringToBytes()", () => { const readRequest = new ReadRequest(); const hexString = "123456"; const result = readRequest._stringToBytes(hexString); expect(result).toEqual([0x12, 0x34, 0x56]); }); });