[Groonga-commit] groonga/express-kotoumi [master] Add some utilities for tests

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri Feb 15 15:32:48 JST 2013


YUKI Hiroshi	2013-02-15 15:32:48 +0900 (Fri, 15 Feb 2013)

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

  Log:
    Add some utilities for tests

  Modified files:
    test/test-utils.js

  Modified: test/test-utils.js (+30 -10)
===================================================================
--- test/test-utils.js    2013-02-14 12:19:49 +0900 (8ddd2ae)
+++ test/test-utils.js    2013-02-15 15:32:48 +0900 (e892dd0)
@@ -8,6 +8,8 @@ var client = require('socket.io-client');
 var express = require('express');
 
 var FluentReceiver = require('../lib/backend/receiver').FluentReceiver;
+exports.FluentReceiver = FluentReceiver;
+
 var Connection = require('../lib/backend/connection').Connection;
 
 var testSendPort = exports.testSendPort = 3333;
@@ -69,6 +71,7 @@ function setupServer(handlerOrServer) {
   return deferred;
 }
 exports.setupServer = setupServer;
+Deferred.register('setupServer', setupServer);
 
 function sendRequest(method, path, postData, headers) {
   var deferred = new Deferred();
@@ -237,13 +240,31 @@ exports.readyToDestroyMockedConnection = readyToDestroyMockedConnection;
 function createBackend() {
   var deferred = new Deferred();
   var backend = new FluentReceiver(testSendPort);
+
   backend.received = [];
   backend.on('receive', function(data) {
     backend.received.push(data);
+    if (backend.reservedResponses.length > 0) {
+      var response = backend.reservedResponses.shift();
+      if (typeof response == 'function')
+        response = response(data);
+      sendPacketTo(response, testReceivePort);
+    }
   });
-  backend.listen(function() {
-    return deferred.call(backend);
-  });
+
+  backend.reservedResponses = [];
+  backend.reserveResponse = function(response) {
+    backend.reservedResponses.push(response);
+  };
+
+  backend.assertReceived = function(expectedMessages) {
+    assert.deepEqual(this.getMessages().map(function(message) {
+                       return { type: message.type,
+                                body: message.body };
+                     }),
+                     expectedMessages);
+  };
+
   backend.getMessages = function() {
     return this.received.map(function(packet) {
       return packet[2];
@@ -259,13 +280,7 @@ function createBackend() {
       return envelope.body;
     });
   };
-  backend.assertReceived = function(expectedMessages) {
-    assert.deepEqual(this.getMessages().map(function(message) {
-                       return { type: message.type,
-                                body: message.body };
-                     }),
-                     expectedMessages);
-  };
+
   backend.sendMessage = function(type, body) {
     var response = createEnvelope(type, body);
     return sendPacketTo(createPacket(response), testReceivePort)
@@ -274,6 +289,11 @@ function createBackend() {
     var response = createReplyEnvelope(request, type, body);
     return sendPacketTo(createPacket(response), testReceivePort)
   };
+
+  backend.listen(function() {
+    return deferred.call(backend);
+  });
+
   return deferred;
 }
 exports.createBackend = createBackend;
-------------- next part --------------
HTML����������������������������...
Download 



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