@eflexsystems/node-open-protocol
Version:
A library to interface with Power Tools using the Atlas Copco Open Protocol
451 lines (363 loc) • 12.5 kB
JavaScript
//@ts-check
/*
Copyright: (c) 2018-2020, Smart-Tech Controle e Automação
GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
*/
const {
expect
} = require('chai');
const MID = require('../src/mid/0002.js');
describe("MID 0002", () => {
it("parser rev 1", (done) => {
let msg = {
mid: 2,
revision: 1,
payload: Buffer.from("010001020103Teste Airbag ")
};
MID.parser(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 1,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag"
}
});
done();
});
});
it("parser rev 2", (done) => {
let msg = {
mid: 2,
revision: 2,
payload: Buffer.from("010001020103Teste Airbag 04ABC")
};
MID.parser(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 2,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC"
}
});
done();
});
});
it("parser rev 3", (done) => {
let msg = {
mid: 2,
revision: 3,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC")
};
MID.parser(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 3,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC"
}
});
done();
});
});
it("parser rev 4", (done) => {
let msg = {
mid: 2,
revision: 4,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC08AS254DFCVFDCVGTREDFGHJKL09123987ASD6")
};
MID.parser(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 4,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC",
rbuType: "AS254DFCVFDCVGTREDFGHJKL",
controllerSerialNumber: "123987ASD6"
}
});
done();
});
});
it("parser rev 5", (done) => {
let msg = {
mid: 2,
revision: 5,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC08AS254DFCVFDCVGTREDFGHJKL09123987ASD61000311002")
};
MID.parser(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 5,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC",
rbuType: "AS254DFCVFDCVGTREDFGHJKL",
controllerSerialNumber: "123987ASD6",
systemType: 3,
systemSubtype: 2
}
});
done();
});
});
it("parser rev 6", (done) => {
let msg = {
mid: 2,
revision: 6,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC08AS254DFCVFDCVGTREDFGHJKL09123987ASD61000311002120131")
};
MID.parser(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 6,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC",
rbuType: "AS254DFCVFDCVGTREDFGHJKL",
controllerSerialNumber: "123987ASD6",
systemType: 3,
systemSubtype: 2,
sequenceNumberSupport: 0,
linkingHandlingSupport: 1
}
});
done();
});
});
it("serializer rev 1", (done) => {
let msg = {
mid: 2,
revision: 1,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag"
}
};
MID.serializer(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 1,
payload: Buffer.from("010001020103Teste Airbag ")
});
done();
});
});
it("serializer rev 2", (done) => {
let msg = {
mid: 2,
revision: 2,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC"
}
};
MID.serializer(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 2,
payload: Buffer.from("010001020103Teste Airbag 04ABC")
});
done();
});
});
it("serializer rev 3", (done) => {
let msg = {
mid: 2,
revision: 3,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC"
}
};
MID.serializer(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 3,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC")
});
done();
});
});
it("serializer rev 4", (done) => {
let msg = {
mid: 2,
revision: 4,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC",
rbuType: "AS254DFCVFDCVGTREDFGHJKL",
controllerSerialNumber: "123987ASD6"
}
};
MID.serializer(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 4,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC08AS254DFCVFDCVGTREDFGHJKL09123987ASD6")
});
done();
});
});
it("serializer rev 5", (done) => {
let msg = {
mid: 2,
revision: 5,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC",
rbuType: "AS254DFCVFDCVGTREDFGHJKL",
controllerSerialNumber: "123987ASD6",
systemType: 3,
systemSubtype: 2
}
};
MID.serializer(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 5,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC08AS254DFCVFDCVGTREDFGHJKL09123987ASD61000311002")
});
done();
});
});
it("serializer rev 6", (done) => {
let msg = {
mid: 2,
revision: 6,
payload: {
cellID: 1,
channelID: 1,
controllerName: "Teste Airbag",
supplierCode: "ABC",
openProtocolVersion: "AAAAAAAAAAAAAAAAAAA",
controllerSoftwareVersion: "BBBBBBBBBBBBBBBBBBB",
toolSoftwareVersion: "CCCCCCCCCCCCCCCCCCC",
rbuType: "AS254DFCVFDCVGTREDFGHJKL",
controllerSerialNumber: "123987ASD6",
systemType: 3,
systemSubtype: 2,
sequenceNumberSupport: 0,
linkingHandlingSupport: 1,
stationID: "AESDR56RDT",
stationName: "QASWWEDXCVFR562 DERF34EDF",
clientID: 9
}
};
MID.serializer(msg, {}, (err, data) => {
if (err) {
console.log(err);
}
expect(data).to.be.deep.equal({
mid: 2,
revision: 6,
payload: Buffer.from("010001020103Teste Airbag 04ABC05AAAAAAAAAAAAAAAAAAA06BBBBBBBBBBBBBBBBBBB07CCCCCCCCCCCCCCCCCCC08AS254DFCVFDCVGTREDFGHJKL09123987ASD6100031100212013114AESDR56RDT15QASWWEDXCVFR562 DERF34EDF169")
});
done();
});
});
it("Should return error, parser with invalid revision", (done) => {
let msg = {
mid: 2,
revision: 12,
payload: Buffer.from("")
};
MID.parser(msg, {}, (err, data) => {
expect(err).to.be.an('error');
done();
});
});
it("Should return error, serializer with invalid revision", (done) => {
let msg = {
mid: 2,
revision: 12,
payload: {}
};
MID.serializer(msg, {}, (err, data) => {
expect(err).to.be.an('error');
done();
});
});
it("Should return array revision", (done) => {
let revisions = MID.revision();
expect(revisions).to.have.lengthOf(6);
done();
});
});