YUKI Hiroshi
null+****@clear*****
Thu Oct 18 16:19:10 JST 2012
YUKI Hiroshi 2012-10-18 16:19:10 +0900 (Thu, 18 Oct 2012) New Revision: a580d99ad96edac1c71a57e035fa375f9c4ae733 https://github.com/groonga/gcs/commit/a580d99ad96edac1c71a57e035fa375f9c4ae733 Log: Add tests for DescribeIndexFields Modified files: test/api-configuration.test.js Modified: test/api-configuration.test.js (+112 -0) =================================================================== --- test/api-configuration.test.js 2012-10-18 16:04:50 +0900 (afb9435) +++ test/api-configuration.test.js 2012-10-18 16:19:10 +0900 (8cbf8e4) @@ -204,6 +204,30 @@ suite('Configuration API', function() { done(error); }); }); + + test('Action=DescribeDomains (not existing domain)', function(done) { + utils + .get('/?DomainName=domain3&Action=CreateDomain&Version=2011-02-01') + .get('/?DomainName=domain1&Action=CreateDomain&Version=2011-02-01') + .get('/?DomainName=domain2&Action=CreateDomain&Version=2011-02-01') + .get('/?Action=DescribeDomains&Version=2011-02-01' + + '&DomainNames.member.1=unknown') + .next(function(response) { + response = xmlResponses.toParsedResponse(response); + var expectedDomains = []; + assert.deepEqual(response.pattern, + { statusCode: 200, + body: xmlResponses.DescribeDomainsResponse(expectedDomains) }); + + var actualDomains = getActualDescribedDomains(response); + assert.deepEqual(actualDomains, expectedDomains); + + done(); + }) + .error(function(error) { + done(error); + }); + }); }); suite('auto detection of the base hostname and port', function() { @@ -591,6 +615,94 @@ suite('Configuration API', function() { }); }); + suite('Action=DescribeIndexFields', function() { + setup(function() { + commonSetup(); + domain = new Domain('companies', context); + domain.createSync(); + domain.getIndexField('name').setType('text').createSync(); + domain.getIndexField('age').setType('uint').createSync(); + domain.getIndexField('product').setType('literal').createSync(); + }); + teardown(commonTeardown); + + function getActualDescribedFields(response) { + var members = response.body.DescribeIndexFieldsResponse + .DescribeIndexFieldsResult + .IndexFields + .member; + var domains = []; + for (var i in members) { + if (members.hasOwnProperty(i)) + domains.push(members[i].DomainName); + } + return domains; + } + + test('all', function(done) { + var domain, field; + utils + .get('/?DomainName=companies&' + + 'Action=DescribeIndexFields&Version=2011-02-01') + .next(function(response) { + var expectedFields = ['age', 'name', 'product']; + assert.deepEqual(response.pattern, + { statusCode: 200, + body: xmlResponses.DescribeIndexFieldsResponse(expectedFields) }); + + var actualFields = getActualDescribedFields(response); + assert.deepEqual(actualFields, expectedFields); + + done(); + }) + .error(function(error) { + done(error); + }); + }); + + test('specified', function(done) { + var domain, field; + utils + .get('/?DomainName=companies&FieldNames.member.1=name&' + + 'Action=DescribeIndexFields&Version=2011-02-01') + .next(function(response) { + var expectedFields = ['name']; + assert.deepEqual(response.pattern, + { statusCode: 200, + body: xmlResponses.DescribeIndexFieldsResponse(expectedFields) }); + + var actualFields = getActualDescribedFields(response); + assert.deepEqual(actualFields, expectedFields); + + done(); + }) + .error(function(error) { + done(error); + }); + }); + + test('specified (not exists)', function(done) { + var domain, field; + utils + .get('/?DomainName=companies&FieldNames.member.1=unknown&' + + 'Action=DescribeIndexFields&Version=2011-02-01') + .next(function(response) { + var expectedFields = []; + assert.deepEqual(response.pattern, + { statusCode: 200, + body: xmlResponses.DescribeIndexFieldsResponse(expectedFields) }); + + var actualFields = getActualDescribedFields(response); + assert.deepEqual(actualFields, expectedFields); + + done(); + }) + .error(function(error) { + done(error); + }); + }); + }); + suite('domain options', function() { setup(commonSetup); teardown(commonTeardown); -------------- next part -------------- HTML����������������������������... 다운로드