SHIMODA Hiroshi
null+****@clear*****
Wed Aug 15 16:43:10 JST 2012
SHIMODA Hiroshi 2012-08-15 16:43:10 +0900 (Wed, 15 Aug 2012) New Revision: 0370dc23f18f687199eca84893c7d07d03d1b703 https://github.com/groonga/gcs/commit/0370dc23f18f687199eca84893c7d07d03d1b703 Log: Update tests for configuration API Added files: test/xml-responses.js Modified files: test/api-configuration.test.js Modified: test/api-configuration.test.js (+56 -369) =================================================================== --- test/api-configuration.test.js 2012-08-15 16:34:48 +0900 (02cb5d2) +++ test/api-configuration.test.js 2012-08-15 16:43:10 +0900 (46a3aac) @@ -1,308 +1,10 @@ var utils = require('./test-utils'); +var xmlResponses = require('./xml-responses'); var assert = require('chai').assert; var fs = require('fs'); var Domain = require('../lib/database').Domain; -var XMLNS = 'http://cloudsearch.amazonaws.com/doc/2011-02-01'; - -var PATTERN_DocService = { - Endpoint: '' - }; -var PATTERN_SearchService = { - Endpoint: '' - }; -var PATTERN_ResponseMetadata = { - RequestId: {} - }; -var PATTERN_DomainStatus = { - Created: '', - Deleted: '', - DocService: PATTERN_DocService, - DomainId: '', - DomainName: '', - NumSearchableDocs: '', - RequiresIndexDocuments: '', - SearchInstanceCount: '', - SearchPartitionCount: '', - SearchService: PATTERN_SearchService - }; -var PATTERN_CreateDomainResponse = { - CreateDomainResponse: { - '@': { xmlns: '' }, - CreateDomainResult: { - DomainStatus: PATTERN_DomainStatus - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; -var PATTERN_DeleteDomainResponse = { - DeleteDomainResponse: { - '@': { xmlns: '' }, - DeleteDomainResult: { - DomainStatus: PATTERN_DomainStatus - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -function PATTERN_DescribeDomainsResponse(members) { - return { - DescribeDomainsResponse: { - '@': { xmlns: '' }, - DescribeDomainsResult: { - DomainStatusList: (function() { - var pattern = {}; - members.forEach(function(member, index) { - pattern[index] = PATTERN_DomainStatus; - }); - return { member: pattern }; - })() - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; -} - -var PATTERN_OptionStatus = { - CreationDate: '', - State: '', - UpdateDate: '', - UpdateVersion: '' - }; -var PATTERN_TextOptions = { - DefaultValue: {}, - FacetEnabled: '', - ResultEnabled: '' - }; -var PATTERN_IndexField_Text = { - IndexFieldName: '', - IndexFieldType: '', - TextOptions: PATTERN_TextOptions - }; -var PATTERN_IndexFieldStatus_Text = { - Options: PATTERN_IndexField_Text, - Status: PATTERN_OptionStatus - }; -var PATTERN_DefineIndexFieldResponse_Text = { - DefineIndexFieldResponse: { - '@': { xmlns: '' }, - DefineIndexFieldResult: { - IndexField: PATTERN_IndexFieldStatus_Text - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; -var PATTERN_UIntOptions = { - DefaultValue: {} - }; -var PATTERN_IndexField_UInt = { - IndexFieldName: '', - IndexFieldType: '', - UIntOptions: PATTERN_UIntOptions - }; -var PATTERN_IndexFieldStatus_UInt = { - Options: PATTERN_IndexField_UInt, - Status: PATTERN_OptionStatus - }; -var PATTERN_DefineIndexFieldResponse_UInt = { - DefineIndexFieldResponse: { - '@': { xmlns: '' }, - DefineIndexFieldResult: { - IndexField: PATTERN_IndexFieldStatus_UInt - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; -var PATTERN_LiteralOptions = { - DefaultValue: {}, - FacetEnabled: '', - ResultEnabled: '', - SearchEnabled: '' - }; -var PATTERN_IndexField_Literal = { - IndexFieldName: '', - IndexFieldType: '', - LiteralOptions: PATTERN_LiteralOptions - }; -var PATTERN_IndexFieldStatus_Literal = { - Options: PATTERN_IndexField_Literal, - Status: PATTERN_OptionStatus - }; -var PATTERN_DefineIndexFieldResponse_Literal = { - DefineIndexFieldResponse: { - '@': { xmlns: '' }, - DefineIndexFieldResult: { - IndexField: PATTERN_IndexFieldStatus_Literal - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -var PATTERN_DeleteIndexFieldResponse = { - DeleteIndexFieldResponse: { - '@': { xmlns: '' }, - DeleteIndexFieldResult: {}, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -function PATTERN_DescribeIndexFieldsResponse(members) { - return { - DescribeIndexFieldsResponse: { - '@': { xmlns: '' }, - DescribeIndexFieldsResult: { - IndexFields: (function() { - var pattern = {}; - members.forEach(function(member, index) { - pattern[index] = member; - }); - return { member: pattern }; - })() - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; -} - -function PATTERN_IndexDocumentsResponse(members) { - return { - IndexDocumentsResponse: { - '@': { xmlns: '' }, - IndexDocumentsResult: { - FieldNames: (function() { - var pattern = {}; - members.forEach(function(member, index) { - pattern[index] = ''; - }); - return { member: pattern }; - })() - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; -} - -var PATTERN_SynonymOptionsStatus = { - Options: '', - Status: PATTERN_OptionStatus - }; - -var PATTERN_UpdateSynonymOptionsResponse = { - UpdateSynonymOptionsResponse: { - '@': { xmlns: '' }, - UpdateSynonymOptionsResult: { - Synonyms: PATTERN_SynonymOptionsStatus, - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -var PATTERN_DescribeSynonymOptionsResponse = { - DescribeSynonymOptionsResponse: { - '@': { xmlns: '' }, - DescribeSynonymOptionsResult: { - Synonyms: PATTERN_SynonymOptionsStatus, - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -var PATTERN_COMMON_ERROR_RESPONSE = { - Response: { - Errors: { - Error: { - Code: '', - Message: '' - } - }, - RequestID: {} - } - }; - -var PATTERN_DefaultSearchFieldStatus = { - Options: '', - Status: PATTERN_OptionStatus - }; - -var PATTERN_DefaultSearchFieldStatus_blank = { - Options: {}, - Status: PATTERN_OptionStatus - }; - -var PATTERN_UpdateDefaultSearchFieldResponse = { - UpdateDefaultSearchFieldResponse: { - '@': { xmlns: '' }, - UpdateDefaultSearchFieldResult: { - DefaultSearchField: PATTERN_DefaultSearchFieldStatus, - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -var PATTERN_UpdateDefaultSearchFieldResponse_blank = { - UpdateDefaultSearchFieldResponse: { - '@': { xmlns: '' }, - UpdateDefaultSearchFieldResult: { - DefaultSearchField: PATTERN_DefaultSearchFieldStatus_blank, - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -var PATTERN_DescribeDefaultSearchFieldResponse = { - DescribeDefaultSearchFieldResponse: { - '@': { xmlns: '' }, - DescribeDefaultSearchFieldResult: { - DefaultSearchField: PATTERN_DefaultSearchFieldStatus, - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -var PATTERN_DescribeDefaultSearchFieldResponse_blank = { - DescribeDefaultSearchFieldResponse: { - '@': { xmlns: '' }, - DescribeDefaultSearchFieldResult: { - DefaultSearchField: PATTERN_DefaultSearchFieldStatus_blank, - }, - ResponseMetadata: PATTERN_ResponseMetadata - } - }; - -function toXMLPattern(fragment) { - switch (typeof fragment) { - default: - return ''; - case 'object': - var format = {}; - Object.keys(fragment).forEach(function(key) { - if (!fragment.hasOwnProperty(key)) - return; - format[key] = toXMLPattern(fragment[key]); - }); - return format; - } -} - -function replaceXMLDates(str) { - return str.replace(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/g, - '1970-01-01T00:00:00Z'); -} - -function toParsedResponse(response) { - var parsed = { - statusCode: response.statusCode, - body: utils.XMLStringToJSON(response.body) - }; - var pattern = { - statusCode: parsed.statusCode, - body: toXMLPattern(parsed.body) - }; - parsed.pattern = pattern; - return parsed; -} - suite('Configuration API', function() { var temporaryDatabase; var context; @@ -329,10 +31,10 @@ suite('Configuration API', function() { var domain = new Domain('companies', context); assert.isTrue(domain.exists()); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_CreateDomainResponse }); + body: xmlResponses.CreateDomainResponse }); var expectedStatus = { Created: 'true', Deleted: 'false', @@ -360,26 +62,11 @@ suite('Configuration API', function() { }); suite('auto detection of the base hostname and port', function() { - var temporaryDatabase; - var context; - var server; - - setup(function() { - temporaryDatabase = utils.createTemporaryDatabase(); - context = temporaryDatabase.get(); - }); - - teardown(function() { - if (server) server.close(); - temporaryDatabase.teardown(); - temporaryDatabase = undefined; - }); - function assertBaseHost(baseHost, response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_CreateDomainResponse }); + body: xmlResponses.CreateDomainResponse }); var domain = new Domain('companies', context); var status = response.body.CreateDomainResponse.CreateDomainResult.DomainStatus; assert.deepEqual( @@ -486,10 +173,10 @@ suite('Configuration API', function() { .next(function(response) { assert.isFalse(domain.exists()); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DeleteDomainResponse }); + body: xmlResponses.DeleteDomainResponse }); var expectedStatus = { Created: 'false', Deleted: 'true', @@ -537,11 +224,11 @@ suite('Configuration API', function() { .get('/?DomainName=domain2&Action=CreateDomain&Version=2011-02-01') .get('/?Action=DescribeDomains&Version=2011-02-01') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); var expectedDomains = ['domain1', 'domain2', 'domain3']; assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeDomainsResponse(expectedDomains) }); + body: xmlResponses.DescribeDomainsResponse(expectedDomains) }); var actualDomains = getActualDescribedDomains(response); assert.deepEqual(actualDomains, expectedDomains); @@ -562,11 +249,11 @@ suite('Configuration API', function() { '&DomainNames.member.1=domain2' + '&DomainNames.member.2=domain1') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); var expectedDomains = ['domain2', 'domain1']; assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeDomainsResponse(expectedDomains) }); + body: xmlResponses.DescribeDomainsResponse(expectedDomains) }); var actualDomains = getActualDescribedDomains(response); assert.deepEqual(actualDomains, expectedDomains); @@ -589,10 +276,10 @@ suite('Configuration API', function() { var field = domain.getIndexField('name'); assert.isTrue(field.exists(), response.body); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DefineIndexFieldResponse_Text }); + body: xmlResponses.DefineIndexFieldResponse_Text }); var expectedOptions = { IndexFieldName: 'name', IndexFieldType: 'text', @@ -624,10 +311,10 @@ suite('Configuration API', function() { var field = domain.getIndexField('name'); assert.isTrue(field.exists(), response.body); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DefineIndexFieldResponse_Text }); + body: xmlResponses.DefineIndexFieldResponse_Text }); var expectedOptions = { IndexFieldName: 'name', IndexFieldType: 'text', @@ -658,10 +345,10 @@ suite('Configuration API', function() { var field = domain.getIndexField('age'); assert.isTrue(field.exists(), response.body); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DefineIndexFieldResponse_UInt }); + body: xmlResponses.DefineIndexFieldResponse_UInt }); var expectedOptions = { IndexFieldName: 'age', IndexFieldType: 'uint', @@ -690,10 +377,10 @@ suite('Configuration API', function() { var field = domain.getIndexField('product'); assert.isTrue(field.exists(), response.body); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DefineIndexFieldResponse_Literal }); + body: xmlResponses.DefineIndexFieldResponse_Literal }); var expectedOptions = { IndexFieldName: 'product', IndexFieldType: 'literal', @@ -728,10 +415,10 @@ suite('Configuration API', function() { var field = domain.getIndexField('product'); assert.isTrue(field.exists(), response.body); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DefineIndexFieldResponse_Literal }); + body: xmlResponses.DefineIndexFieldResponse_Literal }); var expectedOptions = { IndexFieldName: 'product', IndexFieldType: 'literal', @@ -771,10 +458,10 @@ suite('Configuration API', function() { { domain: true, field: false }); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DeleteIndexFieldResponse }); + body: xmlResponses.DeleteIndexFieldResponse }); done(); }) @@ -802,10 +489,10 @@ suite('Configuration API', function() { { domain: true, field: false }); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DeleteIndexFieldResponse }); + body: xmlResponses.DeleteIndexFieldResponse }); done(); }) @@ -833,10 +520,10 @@ suite('Configuration API', function() { { domain: true, field: false }); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DeleteIndexFieldResponse }); + body: xmlResponses.DeleteIndexFieldResponse }); done(); }) @@ -874,13 +561,13 @@ suite('Configuration API', function() { .get('/?Action=DescribeIndexFields&Version=2011-02-01' + '&DomainName=companies') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeIndexFieldsResponse([ - PATTERN_IndexFieldStatus_UInt, - PATTERN_IndexFieldStatus_Text, - PATTERN_IndexFieldStatus_Literal + body: xmlResponses.DescribeIndexFieldsResponse([ + xmlResponses.IndexFieldStatus_UInt, + xmlResponses.IndexFieldStatus_Text, + xmlResponses.IndexFieldStatus_Literal ]) }); var expectedFields = ['age', 'name', 'product']; @@ -911,12 +598,12 @@ suite('Configuration API', function() { '&FieldNames.member.1=name' + '&FieldNames.member.2=age') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeIndexFieldsResponse([ - PATTERN_IndexFieldStatus_Text, - PATTERN_IndexFieldStatus_UInt + body: xmlResponses.DescribeIndexFieldsResponse([ + xmlResponses.IndexFieldStatus_Text, + xmlResponses.IndexFieldStatus_UInt ]) }); var expectedFields = ['name', 'age']; @@ -947,10 +634,10 @@ suite('Configuration API', function() { assert.isTrue(domain.getIndexField('age').exists()); var expectedFieldNames = ['age', 'name']; - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_IndexDocumentsResponse(expectedFieldNames) }); + body: xmlResponses.IndexDocumentsResponse(expectedFieldNames) }); var fieldNames = response.body.IndexDocumentsResponse .IndexDocumentsResult .FieldNames @@ -993,10 +680,10 @@ suite('Configuration API', function() { .next(function(response) { assert.isTrue(domain.hasSynonymsTableSync()); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_UpdateSynonymOptionsResponse }); + body: xmlResponses.UpdateSynonymOptionsResponse }); var synonymOptions = response.body.UpdateSynonymOptionsResponse .UpdateSynonymOptionsResult @@ -1032,10 +719,10 @@ suite('Configuration API', function() { .get('/?Version=2011-02-01&Action=DescribeSynonymOptions&' + 'DomainName=companies') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeSynonymOptionsResponse }); + body: xmlResponses.DescribeSynonymOptionsResponse }); var synonymOptions = response.body.DescribeSynonymOptionsResponse .DescribeSynonymOptionsResult @@ -1051,10 +738,10 @@ suite('Configuration API', function() { .get('/?Version=2011-02-01&Action=DescribeSynonymOptions&' + 'DomainName=companies') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeSynonymOptionsResponse }); + body: xmlResponses.DescribeSynonymOptionsResponse }); var synonymOptions = response.body.DescribeSynonymOptionsResponse .DescribeSynonymOptionsResult @@ -1092,10 +779,10 @@ suite('Configuration API', function() { assert.equal(domain.defaultSearchField, domain.getIndexField('name')); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_UpdateDefaultSearchFieldResponse }); + body: xmlResponses.UpdateDefaultSearchFieldResponse }); var fieldName = response.body.UpdateDefaultSearchFieldResponse .UpdateDefaultSearchFieldResult @@ -1108,10 +795,10 @@ suite('Configuration API', function() { assert.isTrue(domain.defaultSearchField === null, domain.defaultSearchField); - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_UpdateDefaultSearchFieldResponse_blank }); + body: xmlResponses.UpdateDefaultSearchFieldResponse_blank }); var fieldName = response.body.UpdateDefaultSearchFieldResponse .UpdateDefaultSearchFieldResult @@ -1135,10 +822,10 @@ suite('Configuration API', function() { .get('/?Version=2011-02-01&Action=DescribeDefaultSearchField&' + 'DomainName=companies') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeDefaultSearchFieldResponse_blank }); + body: xmlResponses.DescribeDefaultSearchFieldResponse_blank }); var fieldName = response.body.DescribeDefaultSearchFieldResponse .DescribeDefaultSearchFieldResult @@ -1151,10 +838,10 @@ suite('Configuration API', function() { .get('/?Version=2011-02-01&Action=DescribeDefaultSearchField&' + 'DomainName=companies') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 200, - body: PATTERN_DescribeDefaultSearchFieldResponse }); + body: xmlResponses.DescribeDefaultSearchFieldResponse }); var fieldName = response.body.DescribeDefaultSearchFieldResponse .DescribeDefaultSearchFieldResult @@ -1172,10 +859,10 @@ suite('Configuration API', function() { utils .get('/?Action=unknown') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 400, - body: PATTERN_COMMON_ERROR_RESPONSE }); + body: xmlResponses.COMMON_ERROR_RESPONSE }); var expectedError = { Code: 'MissingParameter', @@ -1195,10 +882,10 @@ suite('Configuration API', function() { utils .get('/?Version=2011-02-02&Action=unknown') .next(function(response) { - response = toParsedResponse(response); + response = xmlResponses.toParsedResponse(response); assert.deepEqual(response.pattern, { statusCode: 400, - body: PATTERN_COMMON_ERROR_RESPONSE }); + body: xmlResponses.COMMON_ERROR_RESPONSE }); var expectedError = { Code: 'InvalidParameterValue', Added: test/xml-responses.js (+344 -0) 100644 =================================================================== --- /dev/null +++ test/xml-responses.js 2012-08-15 16:43:10 +0900 (e3a31f0) @@ -0,0 +1,344 @@ +var utils = require('./test-utils'); + +var XMLNS = + exports.XMLNS = 'http://cloudsearch.amazonaws.com/doc/2011-02-01'; + +var DocService = + exports.DocService = { + Endpoint: '' + }; +var SearchService = + exports.SearchService = { + Endpoint: '' + }; +var ResponseMetadata = + exports.ResponseMetadata = { + RequestId: {} + }; +var DomainStatus = + exports.DomainStatus = { + Created: '', + Deleted: '', + DocService: DocService, + DomainId: '', + DomainName: '', + NumSearchableDocs: '', + RequiresIndexDocuments: '', + SearchInstanceCount: '', + SearchPartitionCount: '', + SearchService: SearchService + }; +var CreateDomainResponse = + exports.CreateDomainResponse = { + CreateDomainResponse: { + '@': { xmlns: '' }, + CreateDomainResult: { + DomainStatus: DomainStatus + }, + ResponseMetadata: ResponseMetadata + } + }; +var DeleteDomainResponse = + exports.DeleteDomainResponse = { + DeleteDomainResponse: { + '@': { xmlns: '' }, + DeleteDomainResult: { + DomainStatus: DomainStatus + }, + ResponseMetadata: ResponseMetadata + } + }; + +var DescribeDomainsResponse = + exports.DescribeDomainsResponse = function(members) { + return { + DescribeDomainsResponse: { + '@': { xmlns: '' }, + DescribeDomainsResult: { + DomainStatusList: (function() { + var pattern = + exports.pattern = {}; + members.forEach(function(member, index) { + pattern[index] = DomainStatus; + }); + return { member: pattern }; + })() + }, + ResponseMetadata: ResponseMetadata + } + }; +} + +var OptionStatus = + exports.OptionStatus = { + CreationDate: '', + State: '', + UpdateDate: '', + UpdateVersion: '' + }; +var TextOptions = + exports.TextOptions = { + DefaultValue: {}, + FacetEnabled: '', + ResultEnabled: '' + }; +var IndexField_Text = + exports.IndexField_Text = { + IndexFieldName: '', + IndexFieldType: '', + TextOptions: TextOptions + }; +var IndexFieldStatus_Text = + exports.IndexFieldStatus_Text = { + Options: IndexField_Text, + Status: OptionStatus + }; +var DefineIndexFieldResponse_Text = + exports.DefineIndexFieldResponse_Text = { + DefineIndexFieldResponse: { + '@': { xmlns: '' }, + DefineIndexFieldResult: { + IndexField: IndexFieldStatus_Text + }, + ResponseMetadata: ResponseMetadata + } + }; +var UIntOptions = + exports.UIntOptions = { + DefaultValue: {} + }; +var IndexField_UInt = + exports.IndexField_UInt = { + IndexFieldName: '', + IndexFieldType: '', + UIntOptions: UIntOptions + }; +var IndexFieldStatus_UInt = + exports.IndexFieldStatus_UInt = { + Options: IndexField_UInt, + Status: OptionStatus + }; +var DefineIndexFieldResponse_UInt = + exports.DefineIndexFieldResponse_UInt = { + DefineIndexFieldResponse: { + '@': { xmlns: '' }, + DefineIndexFieldResult: { + IndexField: IndexFieldStatus_UInt + }, + ResponseMetadata: ResponseMetadata + } + }; +var LiteralOptions = + exports.LiteralOptions = { + DefaultValue: {}, + FacetEnabled: '', + ResultEnabled: '', + SearchEnabled: '' + }; +var IndexField_Literal = + exports.IndexField_Literal = { + IndexFieldName: '', + IndexFieldType: '', + LiteralOptions: LiteralOptions + }; +var IndexFieldStatus_Literal = + exports.IndexFieldStatus_Literal = { + Options: IndexField_Literal, + Status: OptionStatus + }; +var DefineIndexFieldResponse_Literal = + exports.DefineIndexFieldResponse_Literal = { + DefineIndexFieldResponse: { + '@': { xmlns: '' }, + DefineIndexFieldResult: { + IndexField: IndexFieldStatus_Literal + }, + ResponseMetadata: ResponseMetadata + } + }; + +var DeleteIndexFieldResponse = + exports.DeleteIndexFieldResponse = { + DeleteIndexFieldResponse: { + '@': { xmlns: '' }, + DeleteIndexFieldResult: {}, + ResponseMetadata: ResponseMetadata + } + }; + +var DescribeIndexFieldsResponse = + exports.DescribeIndexFieldsResponse = function(members) { + return { + DescribeIndexFieldsResponse: { + '@': { xmlns: '' }, + DescribeIndexFieldsResult: { + IndexFields: (function() { + var pattern = + exports.pattern = {}; + members.forEach(function(member, index) { + pattern[index] = member; + }); + return { member: pattern }; + })() + }, + ResponseMetadata: ResponseMetadata + } + }; +} + +var IndexDocumentsResponse = + exports.IndexDocumentsResponse = function(members) { + return { + IndexDocumentsResponse: { + '@': { xmlns: '' }, + IndexDocumentsResult: { + FieldNames: (function() { + var pattern = + exports.pattern = {}; + members.forEach(function(member, index) { + pattern[index] = ''; + }); + return { member: pattern }; + })() + }, + ResponseMetadata: ResponseMetadata + } + }; +} + +var SynonymOptionsStatus = + exports.SynonymOptionsStatus = { + Options: '', + Status: OptionStatus + }; + +var UpdateSynonymOptionsResponse = + exports.UpdateSynonymOptionsResponse = { + UpdateSynonymOptionsResponse: { + '@': { xmlns: '' }, + UpdateSynonymOptionsResult: { + Synonyms: SynonymOptionsStatus, + }, + ResponseMetadata: ResponseMetadata + } + }; + +var DescribeSynonymOptionsResponse = + exports.DescribeSynonymOptionsResponse = { + DescribeSynonymOptionsResponse: { + '@': { xmlns: '' }, + DescribeSynonymOptionsResult: { + Synonyms: SynonymOptionsStatus, + }, + ResponseMetadata: ResponseMetadata + } + }; + +var COMMON_ERROR_RESPONSE = + exports.COMMON_ERROR_RESPONSE = { + Response: { + Errors: { + Error: { + Code: '', + Message: '' + } + }, + RequestID: {} + } + }; + +var DefaultSearchFieldStatus = + exports.DefaultSearchFieldStatus = { + Options: '', + Status: OptionStatus + }; + +var DefaultSearchFieldStatus_blank = + exports.DefaultSearchFieldStatus_blank = { + Options: {}, + Status: OptionStatus + }; + +var UpdateDefaultSearchFieldResponse = + exports.UpdateDefaultSearchFieldResponse = { + UpdateDefaultSearchFieldResponse: { + '@': { xmlns: '' }, + UpdateDefaultSearchFieldResult: { + DefaultSearchField: DefaultSearchFieldStatus, + }, + ResponseMetadata: ResponseMetadata + } + }; + +var UpdateDefaultSearchFieldResponse_blank = + exports.UpdateDefaultSearchFieldResponse_blank = { + UpdateDefaultSearchFieldResponse: { + '@': { xmlns: '' }, + UpdateDefaultSearchFieldResult: { + DefaultSearchField: DefaultSearchFieldStatus_blank, + }, + ResponseMetadata: ResponseMetadata + } + }; + +var DescribeDefaultSearchFieldResponse = + exports.DescribeDefaultSearchFieldResponse = { + DescribeDefaultSearchFieldResponse: { + '@': { xmlns: '' }, + DescribeDefaultSearchFieldResult: { + DefaultSearchField: DefaultSearchFieldStatus, + }, + ResponseMetadata: ResponseMetadata + } + }; + +var DescribeDefaultSearchFieldResponse_blank = + exports.DescribeDefaultSearchFieldResponse_blank = { + DescribeDefaultSearchFieldResponse: { + '@': { xmlns: '' }, + DescribeDefaultSearchFieldResult: { + DefaultSearchField: DefaultSearchFieldStatus_blank, + }, + ResponseMetadata: ResponseMetadata + } + }; + +function toXMLPattern(fragment) { + switch (typeof fragment) { + default: + return ''; + case 'object': + var format = + exports.format = {}; + Object.keys(fragment).forEach(function(key) { + if (!fragment.hasOwnProperty(key)) + return; + format[key] = toXMLPattern(fragment[key]); + }); + return format; + } +} +exports.toXMLPattern = toXMLPattern; + +function replaceXMLDates(str) { + return str.replace(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/g, + '1970-01-01T00:00:00Z'); +} +exports.replaceXMLDates = replaceXMLDates; + +function toParsedResponse(response) { + var parsed = + exports.parsed = { + statusCode: response.statusCode, + body: utils.XMLStringToJSON(response.body) + }; + var pattern = + exports.pattern = { + statusCode: parsed.statusCode, + body: toXMLPattern(parsed.body) + }; + parsed.pattern = pattern; + return parsed; +} +exports.toParsedResponse = toParsedResponse; + -------------- next part -------------- HTML����������������������������...Download