[Groonga-commit] groonga/express-kotoumi [master] test: Test regsteration of REST APIs without mocked connection

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Feb 14 11:50:46 JST 2013


YUKI Hiroshi	2013-02-14 11:50:46 +0900 (Thu, 14 Feb 2013)

  New Revision: d3310833abc4ad0d8dcc6bfd887a74c40510554a
  https://github.com/groonga/express-kotoumi/commit/d3310833abc4ad0d8dcc6bfd887a74c40510554a

  Log:
    test: Test regsteration of REST APIs without mocked connection

  Modified files:
    test/frontend-rest-adaptor.test.js

  Modified: test/frontend-rest-adaptor.test.js (+53 -56)
===================================================================
--- test/frontend-rest-adaptor.test.js    2013-02-14 11:42:23 +0900 (c1196cd)
+++ test/frontend-rest-adaptor.test.js    2013-02-14 11:50:46 +0900 (2f6c7a3)
@@ -8,7 +8,6 @@ var express = require('express');
 var restAdaptor = require('../lib/frontend/rest-adaptor');
 var model = require('../lib/model');
 var restCommands = require('../lib/frontend/default-commands/rest');
-var Connection = require('../lib/backend/connection').Connection;
 
 suite('REST API', function() {
   test('registeration of plugin commands', function() {
@@ -82,30 +81,26 @@ suite('REST API', function() {
     var connection;
     var application;
     var server;
-
-    setup(function() {
-      connection = utils.createMockedBackendConnection(testPlugin);
-      application = express();
+    var backend;
+
+    setup(function(done) {
+      utils.setupApplication()
+        .next(function(result) {
+          backend = result.backend;
+          server = result.server;
+          connection = result.connection;
+          application = result.application;
+          done();
+        });
     });
 
     teardown(function() {
-      if (connection) {
-        utils.readyToDestroyMockedConnection(connection);
-        connection = undefined;
-      }
-      if (server) {
-        server.close();
-        server = undefined;
-      }
+      utils.teardownApplication({ backend:    backend,
+                                  server:     server,
+                                  connection: connection });
     });
 
     test('to the document root', function(done) {
-      var onReceive = {};
-      connection = connection
-        .mock('emitMessage')
-          .takes('api', 'api requested', function() {}, { 'timeout': null })
-          .ctrl(2, onReceive);
-
       restAdaptor.register(application, {
         prefix:     '',
         connection: connection,
@@ -113,18 +108,27 @@ suite('REST API', function() {
       });
 
       var responseBody;
-      utils.setupServer(application)
-        .next(function(newServer) {
-          server = newServer;
-          utils.get('/path/to/api')
-            .next(function(response) {
-              responseBody = response.body;
-            });
-        })
+      utils.get('/path/to/api')
+        .next(function(response) {
+          responseBody = response.body;
+        });
+
+      Deferred
         .wait(0.01)
         .next(function() {
-          connection.assertThrows();
-          onReceive.trigger(null, { body: 'API OK?' });
+          assert.deepEqual(backend.getMessages().map(function(message) {
+                             return { type: message.type,
+                                      body: message.body };
+                           }),
+                           [{ type: 'api',
+                              body: 'api requested' }]);
+
+          var request = backend.getMessages()[0];
+          var response = utils.createReplyEnvelope(request,
+                                                   'api.result',
+                                                   'api OK?');
+          return utils.sendPacketTo(utils.createPacket(response),
+                                    utils.testReceivePort)
         })
         .wait(0.01)
         .next(function() {
@@ -137,12 +141,6 @@ suite('REST API', function() {
     });
 
     test('under specified path', function(done) {
-      var onReceive = {};
-      connection = connection
-        .mock('emitMessage')
-          .takes('api', 'api requested', function() {}, { 'timeout': null })
-          .ctrl(2, onReceive);
-
       restAdaptor.register(application, {
         prefix:     '/path/to/kotoumi',
         connection: connection,
@@ -150,18 +148,27 @@ suite('REST API', function() {
       });
 
       var responseBody;
-      utils.setupServer(application)
-        .next(function(newServer) {
-          server = newServer;
-          utils.get('/path/to/kotoumi/path/to/api')
-            .next(function(response) {
-              responseBody = response.body;
-            });
-        })
+      utils.get('/path/to/kotoumi/path/to/api')
+        .next(function(response) {
+          responseBody = response.body;
+        });
+
+      Deferred
         .wait(0.01)
         .next(function() {
-          connection.assertThrows();
-          onReceive.trigger(null, { body: 'API OK?' });
+          assert.deepEqual(backend.getMessages().map(function(message) {
+                             return { type: message.type,
+                                      body: message.body };
+                           }),
+                           [{ type: 'api',
+                              body: 'api requested' }]);
+
+          var request = backend.getMessages()[0];
+          var response = utils.createReplyEnvelope(request,
+                                                   'api.result',
+                                                   'api OK?');
+          return utils.sendPacketTo(utils.createPacket(response),
+                                    utils.testReceivePort)
         })
         .wait(0.01)
         .next(function() {
@@ -186,17 +193,7 @@ suite('REST API', function() {
 
     test('search', function(done) {
       var receiverCallback = {};
-      var connection = {
-            emitMessage: function(type, message, callback, options) {
-              this.emitMessageCalledArguments.push({
-                type:     type,
-                message:  message,
-                callback: callback,
-                options:  options
-              });
-            },
-            emitMessageCalledArguments: []
-          };
+      var connection = utils.createStubbedBackendConnection();
       var application = express();
       restAdaptor.register(application, {
         prefix:     '',
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index