[Groonga-commit] groonga/express-kotoumi [master] Separate utility methods and custom assertions from the test

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Jan 10 19:22:55 JST 2013


YUKI Hiroshi	2013-01-10 19:22:55 +0900 (Thu, 10 Jan 2013)

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

  Log:
    Separate utility methods and custom assertions from the test

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

  Modified: test/backend-adaptor.test.js (+18 -116)
===================================================================
--- test/backend-adaptor.test.js    2013-01-10 19:11:16 +0900 (4384c2a)
+++ test/backend-adaptor.test.js    2013-01-10 19:22:55 +0900 (90b193b)
@@ -1,109 +1,11 @@
 var assert = require('chai').assert;
 var nodemock = require('nodemock');
 
-var Connection = require('../lib/backend-adaptor').Connection;
-
-function createMockedSender() {
-  var sender = {
-    emit: function(eventName, message) {
-      this.messages.push({ eventName: eventName, message: message });
-    },
-    assertSent: function(eventName, message) {
-      var firstMessage = this.messages.shift();
-      var expectedMessage = { eventName: eventName, message: message };
-      assert.deepEqual(firstMessage, expectedMessage);
-    },
-    messages: [],
-  };
-  return sender;
-}
-
-function createMockedReceiver() {
-  var mockedSockets;
-  var mockedReceiverInternal = nodemock;
-  var connactionCallbackController = {};
-  var messageCallbackController = {};
-  var receiver = {
-    // mocking receiver
-    sockets:
-      (mockedSockets = nodemock.mock('on')
-         .takes('connection', function() {})
-         .ctrl(1, connactionCallbackController)),
-    'set': function(key, value) {},
-
-    // extra features as a mocked object
-    triggerConnect: function(tag) {
-      mockedSockets.assertThrows();
-      var mockedSocket = nodemock.mock('on')
-                           .takes(tag + '.message', function() {})
-                           .ctrl(1, messageCallbackController);
-      connactionCallbackController.trigger(mockedSocket);
-      mockedSocket.assertThrows();
-    },
-    emitMessage: function(message) { // simulate message from backend
-      messageCallbackController.trigger(message);
-    }
-  };
-  return receiver;
-}
-
-function createMockedMessageCallback() {
-  var mockedCallback = nodemock;
-  var callback = function(message) {
-    mockedCallback.receive(message);
-  };
-  callback.takes = function(message) {
-    callback.assert = function() {
-      mockedCallback.assertThrows();
-    };
-    mockedCallback = mockedCallback
-                       .mock('receive')
-                       .takes(message);
-  };
-  callback.mock = mockedCallback;
-  return callback;
-}
+var utils = require('./test-utils');
+var TypeOf = utils.TypeOf;
+var InstanceOf = utils.InstanceOf;
 
-function TypeOf(typeString) {
-  if (!(this instanceof TypeOf))
-    return new TypeOf(typeString);
-
-  this.typeString = typeString;
-  if (typeString == 'date') {
-    return new InstanceOf(Date);
-  }
-}
-
-function InstanceOf(constructor) {
-  if (!(this instanceof InstanceOf))
-    return new InstanceOf(constructor);
-
-  this.constructorFunction = constructor;
-}
-
-function assertEnvelopeEqual(actual, expected) {
-  var vs = JSON.stringify(actual) + ' vs ' + JSON.stringify(expected);
-  Object.keys(expected).forEach(function(key) {
-    var actualValue = actual[key];
-    var expectedValue = expected[key];
-    if (expectedValue instanceof InstanceOf) {
-      if (typeof actualValue == 'string') {
-        // Try fo parse the value and create new instance.
-        // If this process is failed, it can be an invalid value.
-        actualValue = new expectedValue.constructorFunction(actualValue);
-      }
-      assert.instanceOf(actualValue,
-                        expectedValue.constructorFunction,
-                        key + ' / ' + vs);
-    } else if (expectedValue instanceof TypeOf) {
-      assert.typeOf(typeof actualValue,
-                    expectedValue.typeString,
-                    key + ' / ' + vs);
-    } else {
-      assert.deepEqual(actualValue, expectedValue, key + ' / ' + vs);
-    }
-  });
-}
+var Connection = require('../lib/backend-adaptor').Connection;
 
 suite('Connection', function() {
   var connection;
@@ -114,8 +16,8 @@ suite('Connection', function() {
     connection = new Connection({
       tag:        'test',
       listenPort: 3333,
-      sender:     sender = createMockedSender(),
-      receiver:   receiver = createMockedReceiver()
+      sender:     sender = utils.createMockedSender(),
+      receiver:   receiver = utils.createMockedReceiver()
     });
     receiver.triggerConnect('test');
   });
@@ -128,16 +30,16 @@ suite('Connection', function() {
 
   test('sending message without response (volatile message)', function() {
     var message = connection.emitMessage({ command: 'foobar' });
-    assertEnvelopeEqual(message,
-                        { id:         TypeOf('string'),
-                          date:       InstanceOf(Date),
-                          statusCode: 200,
-                          body:       { command: 'foobar' } });
+    assert.envelopeEqual(message,
+                         { id:         TypeOf('string'),
+                           date:       InstanceOf(Date),
+                           statusCode: 200,
+                           body:       { command: 'foobar' } });
     sender.assertSent('message', message);
   });
 
   test('receiving message from the backend', function() {
-    var callback = createMockedMessageCallback();
+    var callback = utils.createMockedMessageCallback();
     connection.on('message', callback);
 
     var now = new Date();
@@ -163,13 +65,13 @@ suite('Connection', function() {
   });
 
   test('sending message with one response', function() {
-    var callback = createMockedMessageCallback();
+    var callback = utils.createMockedMessageCallback();
     var message = connection.emitMessage({ command: 'foobar' }, callback);
-    assertEnvelopeEqual(message,
-                        { id:         TypeOf('string'),
-                          date:       InstanceOf(Date),
-                          statusCode: 200,
-                          body:       { command: 'foobar' } });
+    assert.envelopeEqual(message,
+                         { id:         TypeOf('string'),
+                           date:       InstanceOf(Date),
+                           statusCode: 200,
+                           body:       { command: 'foobar' } });
     sender.assertSent('message', message);
 
     var now = new Date();

  Added: test/test-utils.js (+111 -0) 100644
===================================================================
--- /dev/null
+++ test/test-utils.js    2013-01-10 19:22:55 +0900 (294f534)
@@ -0,0 +1,111 @@
+var assert = require('chai').assert;
+var nodemock = require('nodemock');
+
+function createMockedSender() {
+  var sender = {
+    emit: function(eventName, message) {
+      this.messages.push({ eventName: eventName, message: message });
+    },
+    assertSent: function(eventName, message) {
+      var firstMessage = this.messages.shift();
+      var expectedMessage = { eventName: eventName, message: message };
+      assert.deepEqual(firstMessage, expectedMessage);
+    },
+    messages: [],
+  };
+  return sender;
+}
+exports.createMockedSender = createMockedSender;
+
+function createMockedReceiver() {
+  var mockedSockets;
+  var mockedReceiverInternal = nodemock;
+  var connactionCallbackController = {};
+  var messageCallbackController = {};
+  var receiver = {
+    // mocking receiver
+    sockets:
+      (mockedSockets = nodemock.mock('on')
+         .takes('connection', function() {})
+         .ctrl(1, connactionCallbackController)),
+    'set': function(key, value) {},
+
+    // extra features as a mocked object
+    triggerConnect: function(tag) {
+      mockedSockets.assertThrows();
+      var mockedSocket = nodemock.mock('on')
+                           .takes(tag + '.message', function() {})
+                           .ctrl(1, messageCallbackController);
+      connactionCallbackController.trigger(mockedSocket);
+      mockedSocket.assertThrows();
+    },
+    emitMessage: function(message) { // simulate message from backend
+      messageCallbackController.trigger(message);
+    }
+  };
+  return receiver;
+}
+exports.createMockedReceiver = createMockedReceiver;
+
+function createMockedMessageCallback() {
+  var mockedCallback = nodemock;
+  var callback = function(message) {
+    mockedCallback.receive(message);
+  };
+  callback.takes = function(message) {
+    callback.assert = function() {
+      mockedCallback.assertThrows();
+    };
+    mockedCallback = mockedCallback
+                       .mock('receive')
+                       .takes(message);
+  };
+  callback.mock = mockedCallback;
+  return callback;
+}
+exports.createMockedMessageCallback = createMockedMessageCallback;
+
+
+function TypeOf(typeString) {
+  if (!(this instanceof TypeOf))
+    return new TypeOf(typeString);
+
+  this.typeString = typeString;
+  if (typeString == 'date') {
+    return new InstanceOf(Date);
+  }
+}
+exports.TypeOf = TypeOf;
+
+function InstanceOf(constructor) {
+  if (!(this instanceof InstanceOf))
+    return new InstanceOf(constructor);
+
+  this.constructorFunction = constructor;
+}
+exports.InstanceOf = InstanceOf;
+
+function assertEnvelopeEqual(actual, expected) {
+  var vs = JSON.stringify(actual) + ' vs ' + JSON.stringify(expected);
+  Object.keys(expected).forEach(function(key) {
+    var actualValue = actual[key];
+    var expectedValue = expected[key];
+    if (expectedValue instanceof InstanceOf) {
+      if (typeof actualValue == 'string') {
+        // Try fo parse the value and create new instance.
+        // If this process is failed, it can be an invalid value.
+        actualValue = new expectedValue.constructorFunction(actualValue);
+      }
+      assert.instanceOf(actualValue,
+                        expectedValue.constructorFunction,
+                        key + ' / ' + vs);
+    } else if (expectedValue instanceof TypeOf) {
+      assert.typeOf(typeof actualValue,
+                    expectedValue.typeString,
+                    key + ' / ' + vs);
+    } else {
+      assert.deepEqual(actualValue, expectedValue, key + ' / ' + vs);
+    }
+  });
+}
+assert.envelopeEqual = assertEnvelopeEqual;
-------------- next part --------------
HTML����������������������������...
Télécharger 



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