From 77c7b254895382b2c4d08027c7bf0636d1562627 Mon Sep 17 00:00:00 2001 From: Lichun Zhan Date: Wed, 23 Jan 2013 15:00:19 -0800 Subject: [PATCH] use mockery instead of call mojito start directly --- tests/unit/lib/app/commands/test-start.js | 92 +++++++++++------------ 1 file changed, 44 insertions(+), 48 deletions(-) diff --git a/tests/unit/lib/app/commands/test-start.js b/tests/unit/lib/app/commands/test-start.js index b20f99e28..0cf84ff90 100644 --- a/tests/unit/lib/app/commands/test-start.js +++ b/tests/unit/lib/app/commands/test-start.js @@ -7,89 +7,85 @@ /*jslint anon:true, sloppy:true, nomen:true, stupid:true, plusplus:true */ /*globals YUI*/ -YUI().use('test', function(Y) { +YUI().use('mojito', 'mojito-test-extra', 'test', function(Y) { var suite = new Y.Test.Suite('start tests'), A = Y.Assert, - AA = Y.ArrayAssert, - OA = Y.ObjectAssert, - libpath = require('path'), cmdpath = libpath.join(__dirname, '../../../../../lib/app/commands/start.js'), - libutils = require(libpath.join(__dirname, '../../../../../lib/management/utils.js')), - start = require(cmdpath); + mojito_src = libpath.resolve(__dirname, '../../../../../lib/mojito'), + mockery = require('mockery'), + mocks, + start, + count; + + mocks = { + Mojito: { + createServer: function(options) { + return { + listen: function(port, host, cb) { count++; cb(); } + }; + } + } + }; suite.add(new Y.Test.Case({ name: 'start test cases', + setUp: function() { + start = require(cmdpath); + }, + 'test require': function() { A.isNotNull(start); A.isFunction(start.run, 'No run function exported'); A.isString(start.usage, 'No usage string exported'); A.isArray(start.options, 'No options array exported'); + } + + })); + + suite.add(new Y.Test.Case({ + + name: 'start test cases', + + setUp: function() { + mockery.registerAllowable(cmdpath); + mockery.registerMock(mojito_src, mocks.Mojito); + mockery.enable({'warnOnUnregistered': false, useCleanCache: true}); + start = require(cmdpath); + count = 0; }, 'test run start': function() { - var mockConsole = Y.Mock(); - Y.Mock.expect(mockConsole, { - method: "log", - args: [Y.Mock.Value.String], - run: function (message) { - A.isTrue(/Mojito\(/.test(message)); - A.isTrue(/started on http:\/\//.test(message)); - } - }); - libutils.test.setConsole(mockConsole); + A.areSame(0, count); start.run([null], null, function() {}); + A.areSame(1, count); }, 'test run start port': function() { - var mockConsole = Y.Mock(); - Y.Mock.expect(mockConsole, { - method: "log", - args: [Y.Mock.Value.String], - run: function (message) { - A.isTrue(/Mojito\(/.test(message)); - A.isTrue(/started on http:\/\//.test(message)); - } - }); - libutils.test.setConsole(mockConsole); + A.areSame(0, count); start.run(["8667"], null, function() {}); + A.areSame(1, count); }, 'test run start context': function() { var options = { context: "environment:production" - }, - mockConsole = Y.Mock(); - Y.Mock.expect(mockConsole, { - method: "log", - args: [Y.Mock.Value.String], - run: function (message) { - A.isTrue(/Mojito\(/.test(message)); - A.isTrue(/started on http:\/\//.test(message)); - } - }); - libutils.test.setConsole(mockConsole); + }; + A.areSame(0, count); start.run(['8668'], options, function() {}); + A.areSame(1, count); }, 'test run start perf': function() { var options = { perf: "abc" - }, - mockConsole = Y.Mock(); - Y.Mock.expect(mockConsole, { - method: "log", - args: [Y.Mock.Value.String], - run: function (message) { - A.isTrue(/Mojito\(/.test(message)); - A.isTrue(/started on http:\/\//.test(message)); - } - }); - libutils.test.setConsole(mockConsole); + }; + A.areSame(0, count); start.run(["8669"], options, function() {}); + A.areSame(1, count); } }));