[Groonga-commit] groonga/express-kotoumi [master] test: Test behavior for multiple request-response messages

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Feb 13 12:31:43 JST 2013


YUKI Hiroshi	2013-02-13 12:31:43 +0900 (Wed, 13 Feb 2013)

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

  Log:
    test: Test behavior for multiple request-response messages

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

  Modified: test/backend-connection.test.js (+25 -26)
===================================================================
--- test/backend-connection.test.js    2013-02-13 12:19:33 +0900 (f11b2de)
+++ test/backend-connection.test.js    2013-02-13 12:31:43 +0900 (69f1a5f)
@@ -188,7 +188,7 @@ suite('Connection, simple communication', function() {
       string:  ['test.message', Date.now(), stringMessage],
       numeric: ['test.message', Date.now(), numericMessage],
       object:  ['test.message', Date.now(), objectMessage],
-      unknown: ['unknown', Date.now(), {}]
+      unknown: ['unknown, ignored', Date.now(), {}]
     };
     utils
       .sendPacketTo(packets.string, utils.testReceivePort)
@@ -206,35 +206,34 @@ suite('Connection, simple communication', function() {
 
   test('request-response style messaging, success', function(done) {
     var callback = createMockedMessageCallback();
-    var response;
-    var packet;
-    var message = connection.emitMessage('testRequest',
-                                         { command: 'foobar' },
-                                         callback);
-    assert.envelopeEqual(message,
-                         createExpectedEnvelope('testRequest',
-                                                { command: 'foobar' }));
+    var messages = [
+      connection.emitMessage('first request', Math.random(), callback),
+      connection.emitMessage('second request', Math.random(), callback),
+      connection.emitMessage('third request', Math.random(), callback)
+    ];
+    var responses = [
+      createReplyEnvelopeFor(messages[1], 'second response', Math.random()),
+      createReplyEnvelopeFor(messages[0], 'first response', Math.random()),
+      createReplyEnvelopeFor(messages[2], 'third response', Math.random()),
+      createReplyEnvelopeFor(messages[0], 'duplicated, ignored', 0),
+    ];
+    callback
+      .takes(null, responses[0])
+      .takes(null, responses[1])
+      .takes(null, responses[2]);
     Deferred
       .wait(0.01)
       .next(function() {
-        assert.equal(backend.received.length, 1, 'message should be sent');
-        assert.deepEqual(backend.received[0][2], message);
-
-        response = createReplyEnvelopeFor(message,
-                                          'testResponse',
-                                          'first call');
-        callback.takes(null, response);
-        packet = ['test.message', Date.now(), response];
-        return utils.sendPacketTo(packet, utils.testReceivePort);
-      })
-      .wait(0.01)
-      .next(function() {
-        callback.assert();
-
-        // Secondary and later messages are ignored.
-        response.body = 'second call';
-        return utils.sendPacketTo(packet, utils.testReceivePort);
+        assert.equal(backend.received.length, 3, 'message should be sent');
       })
+      .sendPacketTo(['test.message', Date.now(), responses[0]],
+                    utils.testReceivePort)
+      .sendPacketTo(['test.message', Date.now(), responses[1]],
+                    utils.testReceivePort)
+      .sendPacketTo(['test.message', Date.now(), responses[2]],
+                    utils.testReceivePort)
+      .sendPacketTo(['test.message', Date.now(), responses[3]],
+                    utils.testReceivePort)
       .wait(0.01)
       .next(function() {
         callback.assert();
-------------- next part --------------
HTML����������������������������...
Download 



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