xts-tcpclient
Version:
Extensible Test Suite extension for controling over TCP/IP
56 lines (46 loc) • 1.33 kB
JavaScript
const net = require('net');
const xts = require('extensible-test-suite');
const SendTcpPacket = require('./TestSteps/SendTcpPacket');
const ExpectTcpPacket = require('./TestSteps/ExpectTcpPacket');
class XtsTcpClient extends xts.TestSuiteExtension {
constructor(ts, opts) {
super(ts, opts);
this.display_name = 'Xts TCP Client';
this.full_name = 'xts.TcpClient';
this.client = new net.Socket();
this.client.on('data', this.receive);
this.client.XtsTcpClient = this;
this._opts.steps.push(SendTcpPacket);
this._opts.steps.push(ExpectTcpPacket);
}
onStart() {
const me = this;
return new Promise((resolve, reject) => {
me.client.connect(me._opts.port, me._opts.host, () =>{
resolve();
});
});
}
send(data) {
const me = this;
return new Promise((resolve, reject) => {
me.client.write(data, resolve);
});
}
receive(data) {
let step = this.XtsTcpClient._ts.getCurrentStep();
if (step.XtsTcpClient !== undefined &&
typeof step.XtsTcpClient.onReceive === 'function') {
step.XtsTcpClient.onReceive(data);
}
}
onFinish() {
const me = this;
return new Promise((resolve, reject) => {
me.client.destroy();
resolve();
});
}
}
module.exports = XtsTcpClient;
;