Change-Id: Ie2b46403c9e0d084fa18fe6fe6bfdba67d72ec2achanges/01/9001/1
parent
454138caf8
commit
93a7d3f7aa
@ -0,0 +1,44 @@
|
||||
'use strict';
|
||||
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
var logger = require('debug-logger')('wsMock');
|
||||
|
||||
class WebSocketMock {
|
||||
|
||||
constructor() {
|
||||
this.emitter = new EventEmitter();
|
||||
process.nextTick(()=>{
|
||||
this.triggerOpen();
|
||||
});
|
||||
}
|
||||
|
||||
close() {
|
||||
logger.info('Close');
|
||||
setTimeout(()=>{
|
||||
this.emitter.emit('close');
|
||||
}, 500);
|
||||
}
|
||||
|
||||
on(event, listener) {
|
||||
this.emitter.on(event, listener);
|
||||
}
|
||||
|
||||
send(message, cb) {
|
||||
setTimeout(()=>{
|
||||
cb();
|
||||
this.triggerMessage(message);
|
||||
}, 500);
|
||||
}
|
||||
|
||||
triggerOpen() {
|
||||
setTimeout(()=>{
|
||||
this.emitter.emit('open');
|
||||
}, 500);
|
||||
}
|
||||
|
||||
triggerMessage(message) {
|
||||
this.emitter.emit('message', message);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.WebSocketMock = WebSocketMock;
|
||||
@ -1,23 +1,73 @@
|
||||
'use strict';
|
||||
|
||||
var Janus = require('../src/janus').Janus;
|
||||
var WebSocketServer = require('ws').Server;
|
||||
var WebServer = require('http').createServer;
|
||||
var Plugins = require('../src/constants').Plugins;
|
||||
|
||||
var server = WebServer();
|
||||
var webSocketServer = new WebSocketServer({
|
||||
server: server
|
||||
});
|
||||
var Transaction = require('../src/transaction').Transaction;
|
||||
var Client = require('../src/client').Client;
|
||||
var WebSocketMock = require('../src/mock/ws').WebSocketMock;
|
||||
var assert = require('chai').assert;
|
||||
|
||||
describe('Client', function() {
|
||||
|
||||
it('should connect the client', function(done){
|
||||
|
||||
server.listen(6000, function(){
|
||||
var webSocket = new WebSocketMock();
|
||||
var client = new Client({
|
||||
webSocket: webSocket
|
||||
});
|
||||
client.on('connected',()=>{
|
||||
done();
|
||||
});
|
||||
client.connect();
|
||||
});
|
||||
|
||||
describe('Client', function(){
|
||||
it('should send and receive an object', function(done){
|
||||
|
||||
it('should connect', function(done){
|
||||
var obj = {
|
||||
foo: 'bar'
|
||||
};
|
||||
var webSocket = new WebSocketMock();
|
||||
var client = new Client({
|
||||
webSocket: webSocket
|
||||
});
|
||||
client.on('connected',()=>{
|
||||
client.sendObject(obj);
|
||||
});
|
||||
client.on('object', (receivedObj)=>{
|
||||
assert.deepEqual(obj, receivedObj);
|
||||
done();
|
||||
});
|
||||
client.connect();
|
||||
});
|
||||
|
||||
run();
|
||||
it('should create a transaction', function(done){
|
||||
|
||||
var webSocket = new WebSocketMock();
|
||||
var client = new Client({
|
||||
webSocket: webSocket
|
||||
});
|
||||
var transaction = client.transact({
|
||||
request: 'foo'
|
||||
});
|
||||
assert.instanceOf(transaction, Transaction);
|
||||
done();
|
||||
});
|
||||
|
||||
it('should create a request', function(done){
|
||||
|
||||
var webSocket = new WebSocketMock();
|
||||
var client = new Client({
|
||||
webSocket: webSocket
|
||||
});
|
||||
|
||||
client.on('connected',()=>{
|
||||
client.request({
|
||||
request: 'foo'
|
||||
}).then((res)=>{
|
||||
assert(res.getRequest(), res.getResponse());
|
||||
done();
|
||||
}).catch((err)=>{
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
client.connect();
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Reference in new issue