[Groonga-commit] groonga/express-kotoumi [master] Test callback for a response via message handler internally defined by the connection itself

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Jan 10 18:59:33 JST 2013


YUKI Hiroshi	2013-01-10 18:59:33 +0900 (Thu, 10 Jan 2013)

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

  Log:
    Test callback for a response via message handler internally defined by the connection itself

  Modified files:
    test/backend-adaptor.test.js

  Modified: test/backend-adaptor.test.js (+16 -12)
===================================================================
--- test/backend-adaptor.test.js    2013-01-10 18:51:29 +0900 (67226d9)
+++ test/backend-adaptor.test.js    2013-01-10 18:59:33 +0900 (a66a510)
@@ -22,6 +22,7 @@ function createMockedReceiver() {
   var mockedSockets;
   var mockedReceiverInternal = nodemock;
   var connactionCallbackController = {};
+  var messageCallbackController = {};
   var receiver = {
     // mocking receiver
     sockets:
@@ -34,18 +35,13 @@ function createMockedReceiver() {
     triggerConnect: function(tag) {
       mockedSockets.assertThrows();
       var mockedSocket = nodemock.mock('on')
-                           .takes(tag + '.message', function() {});
+                           .takes(tag + '.message', function() {})
+                           .ctrl(1, messageCallbackController);
       connactionCallbackController.trigger(mockedSocket);
       mockedSocket.assertThrows();
     },
-    takes: function(message) {
-      this.assert = function() {
-        mockedReceiverInternal.assertThrows();
-      };
-      mockedReceiverInternal = mockedReceiverInternal
-                                 .mock('emit')
-                                 .takes(message);
-      return mockedReceiverInternal;
+    emitMessage: function(message) { // simulate message from backend
+      messageCallbackController.trigger(message);
     }
   };
   return receiver;
@@ -150,12 +146,20 @@ suite('Connection', function() {
                           body:       { command: 'foobar' } });
     sender.assertSent('message', message);
 
-    callback.takes({ response: true });
-    connection.emit('replyTo:' + message.id, { response: true });
+    var now = new Date();
+    var response = {
+      id:         now.getTime(),
+      date:       now.toISOString(),
+      replyTo:    message.id,
+      statusCode: 200,
+      body:       { response: true }
+    };
+    callback.takes(response);
+    receiver.emitMessage(response);
     callback.assert();
 
     // Secondary and later messages are ignored.
-    connection.emit('replyTo:' + message.id, { response: true });
+    receiver.emitMessage(response);
     callback.assert();
   });
 });
-------------- next part --------------
HTML����������������������������...
Download 



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