[Groonga-commit] droonga/express-droonga at 1cb8371 [master] Simplify tests for socket.io

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri Oct 17 19:00:11 JST 2014


YUKI Hiroshi	2014-10-17 19:00:11 +0900 (Fri, 17 Oct 2014)

  New Revision: 1cb8371f48bdc0fedd30b1a0b3a8c68e1ced4e4c
  https://github.com/droonga/express-droonga/commit/1cb8371f48bdc0fedd30b1a0b3a8c68e1ced4e4c

  Message:
    Simplify tests for socket.io

  Modified files:
    test/adapter/socket.io.test.js
    test/test-utils.js

  Modified: test/adapter/socket.io.test.js (+39 -107)
===================================================================
--- test/adapter/socket.io.test.js    2014-10-17 18:31:42 +0900 (25d967b)
+++ test/adapter/socket.io.test.js    2014-10-17 19:00:11 +0900 (e98e58e)
@@ -23,15 +23,7 @@ suite('Socket.IO Adapter', function() {
         connection.emit('reqrep-mod-event.mod', data);
       },
       onResponse: function(data, socket) {
-        socket.emit('reqrep-mod-event.response.mod', data);
-      }
-    }),
-    'reqrep-mod-body': new command.SocketRequestResponse({
-      onRequest: function(data, connection) {
-        connection.emit('reqrep-mod-body', 'modified request');
-      },
-      onResponse: function(data, socket) {
-        socket.emit('reqrep-mod-body.response', 'modified response');
+        socket.emit('reqrep-mod-event.result.mod', data);
       }
     }),
     'pubsub': new command.SocketPublishSubscribe({
@@ -42,36 +34,18 @@ suite('Socket.IO Adapter', function() {
         connection.emit('pubsub-mod-event.mod.subscribe', data);
       },
       onSubscribed: function(data, socket) {
-        socket.emit('pubsub-mod-event.mod.subscribe.response', data);
+        socket.emit('pubsub-mod-event.mod.subscribe.result', data);
       },
       onUnsubscribe: function(data, connection) {
         connection.emit('pubsub-mod-event.mod.unsubscribe', data);
       },
       onUnsubscribed: function(data, socket) {
-        socket.emit('pubsub-mod-event.mod.unsubscribe.response', data);
+        socket.emit('pubsub-mod-event.mod.unsubscribe.result', data);
       },
       messageType: 'pubsub-mod-event.publish',
       onPublish: function(data, socket) {
         socket.emit('pubsub-mod-event.mod.publish', data);
       }
-    }),
-    'pubsub-mod-body': new command.SocketPublishSubscribe({
-      onSubscribe: function(data, connection) {
-        connection.emit('pubsub-mod-body.subscribe', 'modified request');
-      },
-      onSubscribed: function(data, socket) {
-        socket.emit('pubsub-mod-body.subscribe.response', 'modified response');
-      },
-      onUnsubscribe: function(data, connection) {
-        connection.emit('pubsub-mod-body.unsubscribe', 'modified request');
-      },
-      onUnsubscribed: function(data, socket) {
-        socket.emit('pubsub-mod-body.unsubscribe.response', 'modified response');
-      },
-      messageType: 'pubsub-mod-body.publish',
-      onPublish: function(data, socket) {
-        socket.emit('pubsub-mod-body.publish', 'modified response');
-      }
     })
   };
 
@@ -190,20 +164,16 @@ suite('Socket.IO Adapter', function() {
   function testReqRep(test, description, params) {
     test(description, function(done) {
       var mockedReceiver;
-      utils.setupApplication()
+      connectionPool = utils.createStubbedBackendConnectionPool();
+      connection = connectionPool.get();
+      utils.setupApplication({ connectionPool: connectionPool })
         .then(function(result) {
           server     = result.server;
-          connectionPool = result.connectionPool;
-          connection = connectionPool.get();
           backend    = result.backend;
           socketIoAdapter.register(result.application, server, {
             tag:      utils.testTag,
             connectionPool: connectionPool,
             plugins: [
-              api.API_REST,
-              api.API_SOCKET_IO,
-              api.API_GROONGA,
-              api.API_DROONGA,
               testPlugin
             ]
           });
@@ -211,26 +181,26 @@ suite('Socket.IO Adapter', function() {
         .then(utils.createClientCb())
         .then(function(newClient) {
           clientSockets.push(newClient.socket);
-          clientSockets[0].emit(params.clientCommand, params.clientBody);
-        })
-        .then(utils.waitCb(0.01))
-        .then(function() {
-          backend.assertReceived([{ type: params.expectedClientCommand,
-                                    body: params.expectedClientBody }]);
-
           mockedReceiver = nodemock
             .mock('receive')
-              .takes(params.expectedBackendBody);
-          clientSockets[0].on(params.expectedBackendCommand, function(data) {
+              .takes(params.body);
+          clientSockets[0].on(params.expectedResponse, function(data) {
             mockedReceiver.receive(data);
           });
-
-          return backend.sendResponse(backend.getMessages()[0],
-                                      params.backendCommand,
-                                      params.backendBody);
+          clientSockets[0].emit(params.request, params.body);
         })
         .then(utils.waitCb(0.01))
         .then(function() {
+          assert.deepEqual(
+            connection.emitMessageCalledArguments.map(function(args) {
+              return { type:    args.type,
+                       message: args.message };
+            }),
+            [
+              { type:    params.expectedRequest,
+                message: params.body }
+            ]
+          );
           mockedReceiver.assertThrows();
           done();
         })
@@ -243,36 +213,17 @@ suite('Socket.IO Adapter', function() {
     teardown(teardownEnvironment);
 
     testReqRep(test, 'basic', {
-      clientCommand:          'reqrep',
-      clientBody:             'raw request',
-      expectedClientCommand:  'reqrep',
-      expectedClientBody:     'raw request',
-      backendCommand:         'reqrep.response',
-      backendBody:            'raw response',
-      expectedBackendCommand: 'reqrep.response',
-      expectedBackendBody:    'raw response'        
+      request:          'reqrep',
+      expectedRequest:  'reqrep',
+      expectedResponse: 'reqrep.result',
+      body:             'raw request'
     });
 
     testReqRep(test, 'modified event type', {
-      clientCommand:          'reqrep-mod-event',
-      clientBody:             'raw request',
-      expectedClientCommand:  'reqrep-mod-event.mod',
-      expectedClientBody:     'raw request',
-      backendCommand:         'reqrep-mod-event.response',
-      backendBody:            'raw response',
-      expectedBackendCommand: 'reqrep-mod-event.response.mod',
-      expectedBackendBody:    'raw response'        
-    });
-
-    testReqRep(test, 'modified body', {
-      clientCommand:          'reqrep-mod-body',
-      clientBody:             'raw request',
-      expectedClientCommand:  'reqrep-mod-body',
-      expectedClientBody:     'modified request',
-      backendCommand:         'reqrep-mod-body.response',
-      backendBody:            'raw response',
-      expectedBackendCommand: 'reqrep-mod-body.response',
-      expectedBackendBody:    'modified response'        
+      request:          'reqrep-mod-event',
+      expectedRequest:  'reqrep-mod-event.mod',
+      expectedResponse: 'reqrep-mod-event.result.mod',
+      body:             'raw request'     
     });
 
     test('multiple clients', function(done) {
@@ -427,36 +378,17 @@ suite('Socket.IO Adapter', function() {
     teardown(teardownEnvironment);
 
     testReqRep(test, 'basic', {
-      clientCommand:          'pubsub.subscribe',
-      clientBody:             'raw request',
-      expectedClientCommand:  'pubsub.subscribe',
-      expectedClientBody:     'raw request',
-      backendCommand:         'pubsub.subscribe.response',
-      backendBody:            'raw response',
-      expectedBackendCommand: 'pubsub.subscribe.response',
-      expectedBackendBody:    'raw response'        
+      request:          'pubsub.subscribe',
+      expectedRequest:  'pubsub.subscribe',
+      expectedResponse: 'pubsub.subscribe.result',
+      body:             'raw request'
     });
 
     testReqRep(test, 'modified event type', {
-      clientCommand:          'pubsub-mod-event.subscribe',
-      clientBody:             'raw request',
-      expectedClientCommand:  'pubsub-mod-event.mod.subscribe',
-      expectedClientBody:     'raw request',
-      backendCommand:         'pubsub-mod-event.subscribe.response',
-      backendBody:            'raw response',
-      expectedBackendCommand: 'pubsub-mod-event.mod.subscribe.response',
-      expectedBackendBody:    'raw response'        
-    });
-
-    testReqRep(test, 'modified body', {
-      clientCommand:          'pubsub-mod-body.subscribe',
-      clientBody:             'raw request',
-      expectedClientCommand:  'pubsub-mod-body.subscribe',
-      expectedClientBody:     'modified request',
-      backendCommand:         'pubsub-mod-body.subscribe.response',
-      backendBody:            'raw response',
-      expectedBackendCommand: 'pubsub-mod-body.subscribe.response',
-      expectedBackendBody:    'modified response'        
+      request:          'pubsub-mod-event.subscribe',
+      expectedRequest:  'pubsub-mod-event.mod.subscribe',
+      expectedResponse: 'pubsub-mod-event.mod.subscribe.result',
+      body:             'raw request'
     });
 
     test('publish', function(done) {
@@ -485,10 +417,10 @@ suite('Socket.IO Adapter', function() {
         .then(function(newClient) {
           clientSockets.push(newClient.socket);
           subscriberId = newClient.subscriber;
-          clientSockets[0].on('pubsub.subscribe.response', function(data) {
+          clientSockets[0].on('pubsub.subscribe.result', function(data) {
             mockedReceiver.receive(data);
           });
-          clientSockets[0].on('pubsub.unsubscribe.response', function(data) {
+          clientSockets[0].on('pubsub.unsubscribe.result', function(data) {
             mockedReceiver.receive(data);
           });
           clientSockets[0].on('pubsub.publish', function(data) {
@@ -519,7 +451,7 @@ suite('Socket.IO Adapter', function() {
             .mock('receive')
               .takes('subscribed!');
           return backend.sendResponse(backend.getMessages()[0],
-                                      'pubsub.subscribe.response',
+                                      'pubsub.subscribe.result',
                                       'subscribed!');
         })
         .then(utils.waitCb(0.01))
@@ -562,7 +494,7 @@ suite('Socket.IO Adapter', function() {
             .mock('receive')
               .takes('unsubscribed!');
           return backend.sendResponse(backend.getMessages()[0],
-                                      'pubsub.unsubscribe.response',
+                                      'pubsub.unsubscribe.result',
                                       'unsubscribed!');
         })
         .then(utils.waitCb(0.01))

  Modified: test/test-utils.js (+4 -2)
===================================================================
--- test/test-utils.js    2014-10-17 18:31:42 +0900 (1db8348)
+++ test/test-utils.js    2014-10-17 19:00:11 +0900 (a60088e)
@@ -262,7 +262,9 @@ function createStubbedBackendConnectionPool(count) {
 }
 exports.createStubbedBackendConnectionPool = createStubbedBackendConnectionPool;
 
-function setupApplication() {
+function setupApplication(params) {
+  params = params || {};
+
   var application = express();
   var server;
   var backend;
@@ -273,7 +275,7 @@ function setupApplication() {
     .then(exports.createBackendCb())
     .then(function(newBackend) {
       backend = newBackend;
-      var connectionPool = new ConnectionPool({
+      var connectionPool = params.connectionPool || new ConnectionPool({
         tag:      testTag,
         defaultDataset: 'test-dataset',
         hostName: ['127.0.0.1'],
-------------- next part --------------
HTML����������������������������...
Download 



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