[Groonga-commit] groonga/express-kotoumi [master] test: Test behaviors for request-response messages for success and failure case in a time

アーカイブの一覧に戻る

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


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

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

  Log:
    test: Test behaviors for request-response messages for success and failure case in a time

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

  Modified: test/backend-connection.test.js (+20 -54)
===================================================================
--- test/backend-connection.test.js    2013-02-13 12:31:43 +0900 (69f1a5f)
+++ test/backend-connection.test.js    2013-02-13 12:38:38 +0900 (0d8960e)
@@ -124,6 +124,11 @@ suite('Connection, simple communication', function() {
     return response;
   }
 
+  function createPacket(message, tag) {
+    tag = tag || 'test.message';
+    return [tag, Date.now(), message];
+  }
+
   function createMockedMessageCallback() {
     var mockedCallback = nodemock;
     var callback = function() {
@@ -184,17 +189,11 @@ suite('Connection, simple communication', function() {
       .takes(numericMessage)
       .takes(objectMessage);
 
-    var packets = {
-      string:  ['test.message', Date.now(), stringMessage],
-      numeric: ['test.message', Date.now(), numericMessage],
-      object:  ['test.message', Date.now(), objectMessage],
-      unknown: ['unknown, ignored', Date.now(), {}]
-    };
     utils
-      .sendPacketTo(packets.string, utils.testReceivePort)
-      .sendPacketTo(packets.numeric, utils.testReceivePort)
-      .sendPacketTo(packets.object, utils.testReceivePort)
-      .sendPacketTo(packets.unknown, utils.testReceivePort)
+      .sendPacketTo(createPacket(stringMessage), utils.testReceivePort)
+      .sendPacketTo(createPacket(numericMessage), utils.testReceivePort)
+      .sendPacketTo(createPacket(objectMessage), utils.testReceivePort)
+      .sendPacketTo(createPacket({}, 'unknown, ignored'), utils.testReceivePort)
       .next(function() {
         callback.assert();
         done();
@@ -204,7 +203,7 @@ suite('Connection, simple communication', function() {
       });
   });
 
-  test('request-response style messaging, success', function(done) {
+  test('request-response style messaging', function(done) {
     var callback = createMockedMessageCallback();
     var messages = [
       connection.emitMessage('first request', Math.random(), callback),
@@ -216,58 +215,25 @@ suite('Connection, simple communication', function() {
       createReplyEnvelopeFor(messages[0], 'first response', Math.random()),
       createReplyEnvelopeFor(messages[2], 'third response', Math.random()),
       createReplyEnvelopeFor(messages[0], 'duplicated, ignored', 0),
+      createReplyEnvelopeFor(messages[1], 'duplicated, ignored', 0),
+      createReplyEnvelopeFor(messages[2], 'duplicated, ignored', 0)
     ];
+    responses[2].statusCode = 503; // make it as an error response
     callback
       .takes(null, responses[0])
       .takes(null, responses[1])
-      .takes(null, responses[2]);
+      .takes(responses[2].statusCode, responses[2]);
     Deferred
       .wait(0.01)
       .next(function() {
         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();
-        done();
-      })
-      .error(function(error) {
-        done(error);
-      });
-  });
-
-  test('request-response style messaging, error', function(done) {
-    var callback = createMockedMessageCallback();
-    var response;
-    var packet;
-    var message = connection.emitMessage('testRequest',
-                                         { command: 'foobar' },
-                                         callback);
-    assert.envelopeEqual(message,
-                         createExpectedEnvelope('testRequest',
-                                                { command: 'foobar' }));
-    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');
-        response.statusCode = 503;
-        callback.takes(503, response);
-        packet = ['test.message', Date.now(), response];
-        return utils.sendPacketTo(packet, utils.testReceivePort);
-      })
+      .sendPacketTo(createPacket(responses[0]), utils.testReceivePort)
+      .sendPacketTo(createPacket(responses[1]), utils.testReceivePort)
+      .sendPacketTo(createPacket(responses[2]), utils.testReceivePort)
+      .sendPacketTo(createPacket(responses[3]), utils.testReceivePort)
+      .sendPacketTo(createPacket(responses[4]), utils.testReceivePort)
+      .sendPacketTo(createPacket(responses[5]), utils.testReceivePort)
       .wait(0.01)
       .next(function() {
         callback.assert();
-------------- next part --------------
HTML����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る