Kouhei Sutou
null+****@clear*****
Tue Aug 14 18:07:54 JST 2012
Kouhei Sutou 2012-08-14 18:07:54 +0900 (Tue, 14 Aug 2012) New Revision: e6782d548a42f3f395c53c5a90a0209ed057e45e https://github.com/groonga/gcs/commit/e6782d548a42f3f395c53c5a90a0209ed057e45e Log: Domain#getSynonymSync: return null for failure case Modified files: lib/database/domain.js test/database-domain.test.js Modified: lib/database/domain.js (+12 -3) =================================================================== --- lib/database/domain.js 2012-08-14 17:24:21 +0900 (2fa9d57) +++ lib/database/domain.js 2012-08-14 18:07:54 +0900 (4d79bbf) @@ -276,16 +276,25 @@ Domain.prototype = { throw new Error('no context'); if (!this.hasSynonymsTableSync()) - return []; + return null; var options = { table: this.synonymsTableName, key: key, output_columns: SYNONYMS_COLUMN }; - var getResult = this.context.commandSync('get', options); - var synonyms = getResult[1][0]; + var getResult; + try { + getResult = this.context.commandSync('get', options); + } catch (error) { + if (/nonexistent key:/.test(error.message)) { + return null; + } else { + throw error; + } + } + var synonyms = getResult[1][0]; return synonyms; }, Modified: test/database-domain.test.js (+10 -1) =================================================================== --- test/database-domain.test.js 2012-08-14 17:24:21 +0900 (164f09c) +++ test/database-domain.test.js 2012-08-14 18:07:54 +0900 (5d2b0ff) @@ -359,7 +359,7 @@ suite('database', function() { assert.equal(dumpExpected, dumpActual); }); - test('getSynonymSync', function() { + test('getSynonymSync, existent', function() { var domain = new Domain('companies', context); domain.updateSynonymsSync({ tokio: ['tonkin', 'tokyo'] @@ -368,6 +368,15 @@ suite('database', function() { assert.deepEqual(domain.getSynonymSync('tokio'), ['tonkin', 'tokyo']); }); + test('getSynonymSync, nonexistent', function() { + var domain = new Domain('companies', context); + domain.updateSynonymsSync({ + tokio: ['tonkin', 'tokyo'] + }); + + assert.deepEqual(domain.getSynonymSync('hokkaido'), null); + }); + test('getSynonymsSync', function() { var domain = new Domain('companies', context); domain.updateSynonymsSync({ -------------- next part -------------- HTML����������������������������...Download