Navigation Menu

Skip to content

Commit

Permalink
test: Extract utilities for Groonga commands to a separate utility file
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Apr 28, 2014
1 parent 166d401 commit ebb6e0d
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 66 deletions.
28 changes: 3 additions & 25 deletions test/adapter/api/groonga/basic.test.js
Expand Up @@ -3,6 +3,7 @@ var nodemock = require('nodemock');
var Deferred = require('jsdeferred').Deferred;

var utils = require('../../../test-utils');
var groongaUtils = require('./utils');

var express = require('express');
var httpAdapter = require('../../../../lib/adapter/http');
Expand Down Expand Up @@ -38,32 +39,9 @@ suite('adapter/api/groonga: basic commands', function() {
});
});

var successMessage = {
statusCode: 200,
body: true
};

function pushSuccessResponse() {
backend.reserveResponse(function(requestPacket) {
return utils.createReplyPacket(requestPacket, successMessage);
});
}

function groongaResponse(responseMessage) {
return JSON.parse(responseMessage.body);
}

function groongaResponseHeader(responseMessage) {
return groongaResponse(responseMessage)[0];
};

function groongaResponseBody(responseMessage) {
return groongaResponse(responseMessage)[1];
};

suite('URL suffix', function() {
test('nothing', function(done) {
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
var body = [
]
utils.post('/d/table_create?name=Users', JSON.stringify(body))
Expand All @@ -77,7 +55,7 @@ suite('adapter/api/groonga: basic commands', function() {
});

test('.json', function(done) {
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
var body = [
]
utils.post('/d/table_create.json?name=Users', JSON.stringify(body))
Expand Down
60 changes: 19 additions & 41 deletions test/adapter/api/groonga/load.test.js
Expand Up @@ -3,6 +3,7 @@ var nodemock = require('nodemock');
var Deferred = require('jsdeferred').Deferred;

var utils = require('../../../test-utils');
var groongaUtils = require('./utils');

var express = require('express');
var httpAdapter = require('../../../../lib/adapter/http');
Expand Down Expand Up @@ -38,33 +39,10 @@ suite('adapter/api/groonga: load', function() {
});
});

var successMessage = {
statusCode: 200,
body: true
};

function pushSuccessResponse() {
backend.reserveResponse(function(requestPacket) {
return utils.createReplyPacket(requestPacket, successMessage);
});
}

function groongaResponse(responseMessage) {
return JSON.parse(responseMessage.body);
}

function groongaResponseHeader(responseMessage) {
return groongaResponse(responseMessage)[0];
};

function groongaResponseBody(responseMessage) {
return groongaResponse(responseMessage)[1];
};

suite('success', function() {
suite('URL suffix', function() {
test('nothing', function(done) {
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
var body = [
]
utils.post('/d/load?table=Users', JSON.stringify(body))
Expand All @@ -78,7 +56,7 @@ suite('adapter/api/groonga: load', function() {
});

test('.json', function(done) {
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
var body = [
]
utils.post('/d/load.json?table=Users', JSON.stringify(body))
Expand All @@ -94,7 +72,7 @@ suite('adapter/api/groonga: load', function() {

suite('HTTP header', function() {
test('status code', function(done) {
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
var body = [
]
utils.post('/d/load?table=Users', JSON.stringify(body))
Expand All @@ -110,12 +88,12 @@ suite('adapter/api/groonga: load', function() {

suite('n records', function() {
test('zero', function(done) {
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
var body = [
]
utils.post('/d/load?table=Users', JSON.stringify(body))
.next(function(response) {
var responseBody = groongaResponseBody(response);
var responseBody = groongaUtils.groongaResponseBody(response);
assert.deepEqual(responseBody, [0]);
done();
})
Expand All @@ -125,15 +103,15 @@ suite('adapter/api/groonga: load', function() {
});

test('one', function(done) {
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
var body = [
{
_key: 'alice'
}
]
utils.post('/d/load?table=Users', JSON.stringify(body))
.next(function(response) {
var responseBody = groongaResponseBody(response);
var responseBody = groongaUtils.groongaResponseBody(response);
assert.deepEqual(responseBody, [1]);
done();
})
Expand All @@ -143,8 +121,8 @@ suite('adapter/api/groonga: load', function() {
});

test('multiple', function(done) {
pushSuccessResponse();
pushSuccessResponse();
groongaUtils.pushSuccessResponse(backend);
groongaUtils.pushSuccessResponse(backend);
var body = [
{
_key: 'alice'
Expand All @@ -155,7 +133,7 @@ suite('adapter/api/groonga: load', function() {
]
utils.post('/d/load?table=Users', JSON.stringify(body))
.next(function(response) {
var responseBody = groongaResponseBody(response);
var responseBody = groongaUtils.groongaResponseBody(response);
assert.deepEqual(responseBody, [2]);
done();
})
Expand All @@ -170,7 +148,7 @@ suite('adapter/api/groonga: load', function() {
var requestBody;
backend.reserveResponse(function(requestPacket) {
requestBody = requestPacket[2].body;
return utils.createReplyPacket(requestPacket, successMessage);
return utils.createReplyPacket(requestPacket, groongaUtils.successMessage);
});
var body = [
{
Expand Down Expand Up @@ -199,7 +177,7 @@ suite('adapter/api/groonga: load', function() {
var requestBody;
backend.reserveResponse(function(requestPacket) {
requestBody = requestPacket[2].body;
return utils.createReplyPacket(requestPacket, successMessage);
return utils.createReplyPacket(requestPacket, groongaUtils.successMessage);
});
var body = [
{
Expand Down Expand Up @@ -232,7 +210,7 @@ suite('adapter/api/groonga: load', function() {
var requestBody;
backend.reserveResponse(function(requestPacket) {
requestBody = requestPacket[2].body;
return utils.createReplyPacket(requestPacket, successMessage);
return utils.createReplyPacket(requestPacket, groongaUtils.successMessage);
});
var body = [
[
Expand Down Expand Up @@ -265,7 +243,7 @@ suite('adapter/api/groonga: load', function() {
var requestBody;
backend.reserveResponse(function(requestPacket) {
requestBody = requestPacket[2].body;
return utils.createReplyPacket(requestPacket, successMessage);
return utils.createReplyPacket(requestPacket, groongaUtils.successMessage);
});
var body = [
[
Expand Down Expand Up @@ -301,7 +279,7 @@ suite('adapter/api/groonga: load', function() {
var requestBody;
backend.reserveResponse(function(requestPacket) {
requestBody = requestPacket[2].body;
return utils.createReplyPacket(requestPacket, successMessage);
return utils.createReplyPacket(requestPacket, groongaUtils.successMessage);
});
var path = '/d/load?table=Users&columns=_key,name,age';
var body = [
Expand Down Expand Up @@ -342,9 +320,9 @@ suite('adapter/api/groonga: load', function() {
.next(function(responseMessage) {
var actual = {
httpStatusCode: responseMessage.statusCode,
groongaStatusCode: groongaResponseHeader(responseMessage)[0],
errorMessage: groongaResponseHeader(responseMessage)[3],
body: groongaResponseBody(responseMessage)
groongaStatusCode: groongaUtils.groongaResponseHeader(responseMessage)[0],
errorMessage: groongaUtils.groongaResponseHeader(responseMessage)[3],
body: groongaUtils.groongaResponseBody(responseMessage)
}
assert.deepEqual(actual,
{
Expand Down
29 changes: 29 additions & 0 deletions test/adapter/api/groonga/utils.js
@@ -0,0 +1,29 @@
var utils = require('../../../test-utils');

var successMessage = {
statusCode: 200,
body: true
};
exports.successMessage = successMessage;

function pushSuccessResponse(backend) {
backend.reserveResponse(function(requestPacket) {
return utils.createReplyPacket(requestPacket, successMessage);
});
}
exports.pushSuccessResponse = pushSuccessResponse;

function groongaResponse(responseMessage) {
return JSON.parse(responseMessage.body);
}
exports.groongaResponse = groongaResponse;

function groongaResponseHeader(responseMessage) {
return groongaResponse(responseMessage)[0];
};
exports.groongaResponseHeader = groongaResponseHeader;

function groongaResponseBody(responseMessage) {
return groongaResponse(responseMessage)[1];
};
exports.groongaResponseBody = groongaResponseBody;

0 comments on commit ebb6e0d

Please sign in to comment.