YUKI Hiroshi
null+****@clear*****
Thu Jan 10 14:33:41 JST 2013
YUKI Hiroshi 2013-01-10 14:33:41 +0900 (Thu, 10 Jan 2013) New Revision: 070cb26e37c167db37634ef86f0b0f819c36b39e https://github.com/groonga/express-kotoumi/commit/070cb26e37c167db37634ef86f0b0f819c36b39e Log: Use mocked sended and receiver with nodemock Modified files: test/backend-adaptor.test.js Modified: test/backend-adaptor.test.js (+43 -10) =================================================================== --- test/backend-adaptor.test.js 2013-01-10 13:09:37 +0900 (63113a5) +++ test/backend-adaptor.test.js 2013-01-10 14:33:41 +0900 (a92facd) @@ -3,34 +3,67 @@ var nodemock = require('nodemock'); var Connection = require('../lib/backend-adaptor').Connection; +function createSender() { + return nodemock; +} + +function createReceiver() { + var mockedSocket = nodemock; + var callbackController = {}; + var receiver = { + // mocking receiver + sockets: + (mockedSocket = + mockedSocket.mock('on') + .takes('test.message', function() {}) + .ctrl(1, callbackController)), + 'set': function(key, value) {}, + + // extra features as a mocked object + triggerMessage: function(message) { + callbackController.trigger(message); + }, + mock: function(name) { + return mockedSocket.mock(name); + }, + assert: function() { + mockedSocket.assert(); + } + }; + return receiver; +} + suit('Connection', function() { var connection; var sender; + var receiver; setup(function() { - sender = { - emittedMessages: []; - emit: function(tag, message) { - this.emittedMessages.push({ tag: tag, message: message }); - } - }; connection = new Connection({ tag: 'test', listenPort: 3333, - sender: sender + sender: sender = createSender(), + receiver: receiver = createReceiver() }); }); teardown(function() { connection = undefined; sender = undefined; + receiver = undefined; }); + function assertMessages() { + sender.assert(); + receiver.assert(); + } + test('message without response (volatile message)', function() { + sender.mock('emit') + .takes({ tag: 'message', + message: { command: 'foobar' } }); connection.emit({ command: 'foobar' }); - assert.deepEqual(sender.emittedMessages, - [{ tag: 'message', - message: { command: 'foobar' } }]); + assertMessages(); }); }); -------------- next part -------------- HTML����������������������������...다운로드