Navigation Menu

Skip to content

Commit

Permalink
Separate test of synonym to database and API layers
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Aug 2, 2012
1 parent 4d0fc48 commit c5b10f1
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 16 deletions.
9 changes: 6 additions & 3 deletions lib/database/domain.js
Expand Up @@ -229,6 +229,7 @@ Domain.prototype = {
default_tokenizer: nroonga.TokenBigram
});
},

deleteSync: function() {
if (!this.context)
throw new Error('no context');
Expand All @@ -240,11 +241,13 @@ Domain.prototype = {
name: this.termsTableName
});
},

reindexSync: function() {
this.indexFields.forEach(function(field) {
field.reindexSync();
});
},

updateSynonymsSync: function(synonymOptions) {
if (!this.context)
throw new Error('no context');
Expand Down Expand Up @@ -279,13 +282,13 @@ Domain.prototype = {
values: JSON.stringify(load)
});
},

isSynonymTableAvailableSync: function() {
var results = this.context.commandSync('table_list');
var tables = nroonga.formatResults(results);
var self = this;
return tables.some(function(table) {
return table.name === self.synonymTableName;
});
return table.name === this.synonymTableName;
}, this);
},

exists: function() {
Expand Down
15 changes: 2 additions & 13 deletions test/api-configuration.test.js
Expand Up @@ -577,19 +577,8 @@ suite('Configuration API', function() {
'Host': 'cloudsearch.localhost'
})
.next(function(response) {
var dumpExpected =
'table_create companies_00000000000000000000000000_synonyms TABLE_HASH_KEY|KEY_NORMALIZE ShortText\n' +
'column_create companies_00000000000000000000000000_synonyms synonyms COLUMN_VECTOR ShortText\n' +
'load --table companies_00000000000000000000000000_synonyms\n' +
'[\n' +
'["_key","synonyms"],\n' +
'["tokio",["tokyo"]],\n' +
'["dekkaido",["hokkaido"]]\n' +
']';
var dumpActual = context.commandSync('dump', {
tables: 'companies_00000000000000000000000000_synonyms'
});
assert.equal(dumpExpected, dumpActual);
var domain = new Domain('companies', context);
assert.isTrue(domain.isSynonymTableAvailableSync());

response = toParsedResponse(response);
assert.deepEqual(response.pattern,
Expand Down
27 changes: 27 additions & 0 deletions test/database-domain.test.js
Expand Up @@ -303,6 +303,33 @@ suite('database', function() {
var expectedDump = '';
assert.equal(dump, expectedDump);
});

test('updateSynonymsSync', function() {
var domain = new Domain('companies', context);
assert.isFalse(domain.isSynonymTableAvailableSync());

domain.updateSynonymsSync(
synonyms: {
tokio: ['tokyo'],
dekkaido: 'hokkaido'
}
});
assert.isTrue(domain.isSynonymTableAvailableSync());

var dumpExpected =
'table_create ' + domain.synonymTableName + ' TABLE_HASH_KEY|KEY_NORMALIZE ShortText\n' +
'column_create ' + domain.synonymTableName + ' synonyms COLUMN_VECTOR ShortText\n' +
'load --table ' + domain.synonymTableName + '\n' +
'[\n' +
'["_key","synonyms"],\n' +
'["tokio",["tokyo"]],\n' +
'["dekkaido",["hokkaido"]]\n' +
']';
var dumpActual = context.commandSync('dump', {
tables: domain.synonymTableName
});
assert.equal(dumpExpected, dumpActual);
});
});
});
});

0 comments on commit c5b10f1

Please sign in to comment.