metaforce 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -53,6 +53,10 @@ feature on a new branch, then send me a pull request with a detailed
53
53
  description. Please provide applicable rspec specs.
54
54
 
55
55
  ## Version History
56
+ **0.4.1** (March 8, 2012)
57
+
58
+ * Bug fixes
59
+
56
60
  **0.4.0** (March 2, 2012)
57
61
 
58
62
  * Various bug fixes and improvements.
@@ -3,7 +3,6 @@ require 'metaforce/types'
3
3
 
4
4
  module Metaforce
5
5
  class Manifest
6
- SFDC_API_VERSION = "23.0"
7
6
 
8
7
  # Initializes a new instance of a manifest (package.xml) file.
9
8
  #
@@ -90,7 +89,7 @@ module Metaforce
90
89
  folder = parts[0]
91
90
  file = parts[1].gsub(/.*\//, '').gsub(/\..*/, '')
92
91
  components.each_key do |type|
93
- if component_folder(type) =~ /#{folder}/i
92
+ if Metaforce::Metadata::Types.folder(type) =~ /#{folder}/i
94
93
  unless components[type].index(file).nil?
95
94
  self.add(type, file);
96
95
  end
@@ -100,23 +99,6 @@ module Metaforce
100
99
  self
101
100
  end
102
101
 
103
- # Returns the components name
104
- def component_name(key) # :nodoc:
105
- METADATA_TYPES[key][:name]
106
- end
107
-
108
- # Returns the components folder
109
- def component_folder(key) # :nodoc:
110
- METADATA_TYPES[key][:folder]
111
- end
112
-
113
- # Returns a key for the component name
114
- def component_key(name) # :nodoc:
115
- METADATA_TYPES.each do |key, component|
116
- return key if component[:name] == name
117
- end
118
- end
119
-
120
102
  # Returns a string containing a package.xml file
121
103
  #
122
104
  # <?xml version="1.0"?>
@@ -144,10 +126,10 @@ module Metaforce
144
126
  members.each do |member|
145
127
  xml.members member
146
128
  end
147
- xml.name component_name(key)
129
+ xml.name Metaforce::Metadata::Types.name(key)
148
130
  }
149
131
  end
150
- xml.version SFDC_API_VERSION
132
+ xml.version Metaforce.configuration.api_version
151
133
  }
152
134
  end
153
135
  xml_builder.to_xml
@@ -172,7 +154,7 @@ module Metaforce
172
154
  def to_package
173
155
  components = []
174
156
  @components.each do |type, members|
175
- name = component_name(type)
157
+ name = Metaforce::Metadata::Types.name(type)
176
158
  components.push :members => members, :name => name
177
159
  end
178
160
  components
@@ -183,7 +165,7 @@ module Metaforce
183
165
  document = Nokogiri::XML(file).remove_namespaces!
184
166
  document.xpath('//types').each do |type|
185
167
  name = type.xpath('name').first.content
186
- key = component_key(name);
168
+ key = Metaforce::Metadata::Types.key(name);
187
169
  type.xpath('members').each do |member|
188
170
  if @components[key].is_a?(Array)
189
171
  @components[key].push(member.content)
@@ -50,6 +50,7 @@ module Metaforce
50
50
  :queries => queries
51
51
  }
52
52
  end
53
+ return [] unless response.body[:list_metadata_response]
53
54
  response.body[:list_metadata_response][:result]
54
55
  end
55
56
 
@@ -64,7 +65,7 @@ module Metaforce
64
65
  # # List the names of all custom objects
65
66
  # client.list_custom_objects.collect { |t| t[:full_name] }
66
67
  # #=> ["Asset", "estore__Ida_Menu_Item__c", "SfoMatchHistoryItem", ... ]
67
- METADATA_TYPES.each do |type, value|
68
+ Metaforce::Metadata::Types.all.each do |type, value|
68
69
  define_method("list_#{value[:plural]}".to_sym) do
69
70
  list :type => value[:name]
70
71
  end
@@ -34,6 +34,7 @@ module Metaforce
34
34
  print "username: "; @username = STDIN.gets.chomp
35
35
  print "password: "; @password = STDIN.gets.chomp
36
36
  print "security token: "; @security_token = STDIN.gets.chomp
37
+ Metaforce.log = true
37
38
  end
38
39
  end
39
40
 
@@ -1,214 +1,244 @@
1
1
  module Metaforce
2
- METADATA_TYPES = {
3
- :action_override => {
4
- :name => "ActionOverride",
5
- :folder => "objects",
6
- :plural => :action_overrides
7
- },
8
- :analytics_snapshot => {
9
- :name => "AnalyticsSnapshot",
10
- :folder => "analyticsnapshots",
11
- :plural => :analytics_snapshots
12
- },
13
- :apex_class => {
14
- :name => "ApexClass",
15
- :folder => "classes",
16
- :plural => :apex_classes
17
- },
18
- :article_type => {
19
- :name => "ArticleType",
20
- :folder => "objects",
21
- :plural => :article_types
22
- },
23
- :apex_component => {
24
- :name => "ApexComponent",
25
- :folder => "components",
26
- :plural => :apex_components
27
- },
28
- :apex_page => {
29
- :name => "ApexPage",
30
- :folder => "pages",
31
- :plural => :apex_pages
32
- },
33
- :apex_trigger => {
34
- :name => "ApexTrigger",
35
- :folder => "triggers",
36
- :plural => :apex_triggers
37
- },
38
- :business_process => {
39
- :name => "BusinessProcess",
40
- :folder => "objects",
41
- :plural => :business_processes
42
- },
43
- :custom_application => {
44
- :name => "CustomApplication",
45
- :folder => "applications",
46
- :plural => :custom_applications
47
- },
48
- :custom_field => {
49
- :name => "CustomField",
50
- :folder => "objects",
51
- :plural => :custom_fields
52
- },
53
- :custom_labels => {
54
- :name => "CustomLabels",
55
- :folder => "labels",
56
- :plural => :custom_labels
57
- },
58
- :custom_object => {
59
- :name => "CustomObject",
60
- :folder => "objects",
61
- :plural => :custom_objects
62
- },
63
- :custom_object_translation => {
64
- :name => "CustomObjectTranslation",
65
- :folder => "objectTranslations",
66
- :plural => :custom_object_translations
67
- },
68
- :custom_page_web_link => {
69
- :name => "CustomPageWebLink",
70
- :folder => "weblinks",
71
- :plural => :custom_page_web_links
72
- },
73
- :custom_site => {
74
- :name => "CustomSite",
75
- :folder => "sites",
76
- :plural => :custom_sites
77
- },
78
- :custom_tab => {
79
- :name => "CustomTab",
80
- :folder => "tabs",
81
- :plural => :custom_tabs
82
- },
83
- :dashboard => {
84
- :name => "Dashboard",
85
- :folder => "dashboards",
86
- :plural => :dashboards
87
- },
88
- :data_category_group => {
89
- :name => "DataCategoryGroup",
90
- :folder => "datacategorygroups",
91
- :plural => :data_category_groups
92
- },
93
- :document => {
94
- :name => "Document",
95
- :folder => "document",
96
- :plural => :documents
97
- },
98
- :email_template => {
99
- :name => "EmailTemplate",
100
- :folder => "email",
101
- :plural => :email_templates
102
- },
103
- :entitlement_template => {
104
- :name => "EntitlementTemplate",
105
- :folder => "entitlementTemplates",
106
- :plural => :entitlement_templates
107
- },
108
- :field_set => {
109
- :name => "FieldSet",
110
- :folder => "objects",
111
- :plural => :field_sets
112
- },
113
- :home_page_component => {
114
- :name => "HomePageComponent",
115
- :folder => "homePageComponents",
116
- :plural => :home_page_components
117
- },
118
- :layout => {
119
- :name => "Layout",
120
- :folder => "layouts",
121
- :plural => :layouts
122
- },
123
- :letterhead => {
124
- :name => "Letterhead",
125
- :folder => "letterhead",
126
- :plural => :letterheads
127
- },
128
- :list_view => {
129
- :name => "ListView",
130
- :folder => "objects",
131
- :plural => :list_views
132
- },
133
- :named_filter => {
134
- :name => "NamedFilter",
135
- :folder => "objects",
136
- :plural => :named_filters
137
- },
138
- :permission_set => {
139
- :name => "PermissionSet",
140
- :folder => "permissionsets",
141
- :plural => :permission_sets
142
- },
143
- :portal => {
144
- :name => "Portal",
145
- :folder => "portals",
146
- :plural => :portals
147
- },
148
- :profile => {
149
- :name => "Profile",
150
- :folder => "profiles",
151
- :plural => :profiles
152
- },
153
- :record_type => {
154
- :name => "RecordType",
155
- :folder => "objects",
156
- :plural => :record_types
157
- },
158
- :remote_site_setting => {
159
- :name => "RemoteSiteSetting",
160
- :folder => "remoteSiteSettings",
161
- :plural => :remote_site_settings
162
- },
163
- :report => {
164
- :name => "Report",
165
- :folder => "reports",
166
- :plural => :reports
167
- },
168
- :report_type => {
169
- :name => "ReportType",
170
- :folder => "reportTypes",
171
- :plural => :report_types
172
- },
173
- :scontroler => {
174
- :name => "Scontroler",
175
- :folder => "scontrols",
176
- :plural => :scontrolers
177
- },
178
- :sharing_reason => {
179
- :name => "SharingReason",
180
- :folder => "objects",
181
- :plural => :sharing_reasons
182
- },
183
- :sharing_recalculation => {
184
- :name => "SharingRecalculation",
185
- :folder => "objects",
186
- :plural => :sharing_recalculations
187
- },
188
- :static_resource => {
189
- :name => "StaticResource",
190
- :folder => "staticResources",
191
- :plural => :static_resources
192
- },
193
- :translations => {
194
- :name => "Translations",
195
- :folder => "translations",
196
- :plural => :translations
197
- },
198
- :validation_rule => {
199
- :name => "ValidationRule",
200
- :folder => "objects",
201
- :plural => :validation_rules
202
- },
203
- :weblink => {
204
- :name => "Weblink",
205
- :folder => "objects",
206
- :plural => :weblinks
207
- },
208
- :workflow => {
209
- :name => "Workflow",
210
- :folder => "workflows",
211
- :plural => :workflows
212
- }
213
- }
2
+ module Metadata
3
+ class Types
4
+
5
+ def self.name(key)
6
+ METADATA_TYPES[key][:name]
7
+ end
8
+
9
+ def self.folder(key)
10
+ METADATA_TYPES[key][:folder]
11
+ end
12
+
13
+ def self.key(name)
14
+ METADATA_TYPES.each do |key, component|
15
+ return key if component[:name] == name
16
+ end
17
+ end
18
+
19
+ def self.all
20
+ METADATA_TYPES
21
+ end
22
+
23
+ def [](key)
24
+ METADATA_TYPES[key]
25
+ end
26
+
27
+ private
28
+
29
+ METADATA_TYPES = {
30
+ :action_override => {
31
+ :name => "ActionOverride",
32
+ :folder => "objects",
33
+ :plural => :action_overrides
34
+ },
35
+ :analytics_snapshot => {
36
+ :name => "AnalyticsSnapshot",
37
+ :folder => "analyticsnapshots",
38
+ :plural => :analytics_snapshots
39
+ },
40
+ :apex_class => {
41
+ :name => "ApexClass",
42
+ :folder => "classes",
43
+ :plural => :apex_classes
44
+ },
45
+ :article_type => {
46
+ :name => "ArticleType",
47
+ :folder => "objects",
48
+ :plural => :article_types
49
+ },
50
+ :apex_component => {
51
+ :name => "ApexComponent",
52
+ :folder => "components",
53
+ :plural => :apex_components
54
+ },
55
+ :apex_page => {
56
+ :name => "ApexPage",
57
+ :folder => "pages",
58
+ :plural => :apex_pages
59
+ },
60
+ :apex_trigger => {
61
+ :name => "ApexTrigger",
62
+ :folder => "triggers",
63
+ :plural => :apex_triggers
64
+ },
65
+ :business_process => {
66
+ :name => "BusinessProcess",
67
+ :folder => "objects",
68
+ :plural => :business_processes
69
+ },
70
+ :custom_application => {
71
+ :name => "CustomApplication",
72
+ :folder => "applications",
73
+ :plural => :custom_applications
74
+ },
75
+ :custom_field => {
76
+ :name => "CustomField",
77
+ :folder => "objects",
78
+ :plural => :custom_fields
79
+ },
80
+ :custom_labels => {
81
+ :name => "CustomLabels",
82
+ :folder => "labels",
83
+ :plural => :custom_labels
84
+ },
85
+ :custom_object => {
86
+ :name => "CustomObject",
87
+ :folder => "objects",
88
+ :plural => :custom_objects
89
+ },
90
+ :custom_object_translation => {
91
+ :name => "CustomObjectTranslation",
92
+ :folder => "objectTranslations",
93
+ :plural => :custom_object_translations
94
+ },
95
+ :custom_page_web_link => {
96
+ :name => "CustomPageWebLink",
97
+ :folder => "weblinks",
98
+ :plural => :custom_page_web_links
99
+ },
100
+ :custom_site => {
101
+ :name => "CustomSite",
102
+ :folder => "sites",
103
+ :plural => :custom_sites
104
+ },
105
+ :custom_tab => {
106
+ :name => "CustomTab",
107
+ :folder => "tabs",
108
+ :plural => :custom_tabs
109
+ },
110
+ :dashboard => {
111
+ :name => "Dashboard",
112
+ :folder => "dashboards",
113
+ :plural => :dashboards
114
+ },
115
+ :data_category_group => {
116
+ :name => "DataCategoryGroup",
117
+ :folder => "datacategorygroups",
118
+ :plural => :data_category_groups
119
+ },
120
+ :document => {
121
+ :name => "Document",
122
+ :folder => "document",
123
+ :plural => :documents
124
+ },
125
+ :email_template => {
126
+ :name => "EmailTemplate",
127
+ :folder => "email",
128
+ :plural => :email_templates
129
+ },
130
+ :entitlement_template => {
131
+ :name => "EntitlementTemplate",
132
+ :folder => "entitlementTemplates",
133
+ :plural => :entitlement_templates
134
+ },
135
+ :field_set => {
136
+ :name => "FieldSet",
137
+ :folder => "objects",
138
+ :plural => :field_sets
139
+ },
140
+ :home_page_component => {
141
+ :name => "HomePageComponent",
142
+ :folder => "homePageComponents",
143
+ :plural => :home_page_components
144
+ },
145
+ :layout => {
146
+ :name => "Layout",
147
+ :folder => "layouts",
148
+ :plural => :layouts
149
+ },
150
+ :letterhead => {
151
+ :name => "Letterhead",
152
+ :folder => "letterhead",
153
+ :plural => :letterheads
154
+ },
155
+ :list_view => {
156
+ :name => "ListView",
157
+ :folder => "objects",
158
+ :plural => :list_views
159
+ },
160
+ :named_filter => {
161
+ :name => "NamedFilter",
162
+ :folder => "objects",
163
+ :plural => :named_filters
164
+ },
165
+ :permission_set => {
166
+ :name => "PermissionSet",
167
+ :folder => "permissionsets",
168
+ :plural => :permission_sets
169
+ },
170
+ :portal => {
171
+ :name => "Portal",
172
+ :folder => "portals",
173
+ :plural => :portals
174
+ },
175
+ :profile => {
176
+ :name => "Profile",
177
+ :folder => "profiles",
178
+ :plural => :profiles
179
+ },
180
+ :record_type => {
181
+ :name => "RecordType",
182
+ :folder => "objects",
183
+ :plural => :record_types
184
+ },
185
+ :remote_site_setting => {
186
+ :name => "RemoteSiteSetting",
187
+ :folder => "remoteSiteSettings",
188
+ :plural => :remote_site_settings
189
+ },
190
+ :report => {
191
+ :name => "Report",
192
+ :folder => "reports",
193
+ :plural => :reports
194
+ },
195
+ :report_type => {
196
+ :name => "ReportType",
197
+ :folder => "reportTypes",
198
+ :plural => :report_types
199
+ },
200
+ :scontroler => {
201
+ :name => "Scontroler",
202
+ :folder => "scontrols",
203
+ :plural => :scontrolers
204
+ },
205
+ :sharing_reason => {
206
+ :name => "SharingReason",
207
+ :folder => "objects",
208
+ :plural => :sharing_reasons
209
+ },
210
+ :sharing_recalculation => {
211
+ :name => "SharingRecalculation",
212
+ :folder => "objects",
213
+ :plural => :sharing_recalculations
214
+ },
215
+ :static_resource => {
216
+ :name => "StaticResource",
217
+ :folder => "staticResources",
218
+ :plural => :static_resources
219
+ },
220
+ :translations => {
221
+ :name => "Translations",
222
+ :folder => "translations",
223
+ :plural => :translations
224
+ },
225
+ :validation_rule => {
226
+ :name => "ValidationRule",
227
+ :folder => "objects",
228
+ :plural => :validation_rules
229
+ },
230
+ :weblink => {
231
+ :name => "Weblink",
232
+ :folder => "objects",
233
+ :plural => :weblinks
234
+ },
235
+ :workflow => {
236
+ :name => "Workflow",
237
+ :folder => "workflows",
238
+ :plural => :workflows
239
+ }
240
+ }
241
+
242
+ end
243
+ end
214
244
  end
@@ -1,3 +1,3 @@
1
1
  module Metaforce
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <soapenv:Body>
4
+ <listMetadataResponse/>
5
+ </soapenv:Body>
6
+ </soapenv:Envelope>
@@ -18,10 +18,15 @@ describe Metaforce::Metadata::Client do
18
18
  client.list(:type => "ApexClass").should be_an(Array)
19
19
  end
20
20
 
21
+ it "returns an empty array when no results are returned" do
22
+ savon.expects(:list_metadata).with(:queries => [ :type => "ApexClass"]).returns(:no_result)
23
+ client.list(:type => "ApexClass").should be_an(Array)
24
+ end
25
+
21
26
  end
22
27
 
23
28
  it "should respond to dynamically defined list methods" do
24
- Metaforce::METADATA_TYPES.each do |type, value|
29
+ Metaforce::Metadata::Types.all.each do |type, value|
25
30
  client.respond_to?("list_#{value[:plural]}").should eq(true)
26
31
  end
27
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metaforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-02 00:00:00.000000000 Z
12
+ date: 2012-03-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &2152167300 !ruby/object:Gem::Requirement
16
+ requirement: &2154344380 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.5.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152167300
24
+ version_requirements: *2154344380
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: savon
27
- requirement: &2152166720 !ruby/object:Gem::Requirement
27
+ requirement: &2154343720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.9.7
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2152166720
35
+ version_requirements: *2154343720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rubyzip
38
- requirement: &2152164880 !ruby/object:Gem::Requirement
38
+ requirement: &2154342540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.9.5
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2152164880
46
+ version_requirements: *2154342540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: term-ansicolor
49
- requirement: &2152180240 !ruby/object:Gem::Requirement
49
+ requirement: &2154342120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2152180240
57
+ version_requirements: *2154342120
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &2152176860 !ruby/object:Gem::Requirement
60
+ requirement: &2154341600 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2152176860
68
+ version_requirements: *2154341600
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &2152175140 !ruby/object:Gem::Requirement
71
+ requirement: &2154341040 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2152175140
79
+ version_requirements: *2154341040
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mocha
82
- requirement: &2152188880 !ruby/object:Gem::Requirement
82
+ requirement: &2154356340 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2152188880
90
+ version_requirements: *2154356340
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: savon_spec
93
- requirement: &2152186660 !ruby/object:Gem::Requirement
93
+ requirement: &2154355100 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: 0.1.6
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2152186660
101
+ version_requirements: *2154355100
102
102
  description: A Ruby gem for interacting with the Salesforce Metadata API
103
103
  email:
104
104
  - eric@ejholmes.net
@@ -139,6 +139,7 @@ files:
139
139
  - spec/fixtures/requests/check_status/not_done.xml
140
140
  - spec/fixtures/requests/deploy/in_progress.xml
141
141
  - spec/fixtures/requests/describe_metadata/success.xml
142
+ - spec/fixtures/requests/list_metadata/no_result.xml
142
143
  - spec/fixtures/requests/list_metadata/objects.xml
143
144
  - spec/fixtures/requests/login/failure.xml
144
145
  - spec/fixtures/requests/login/success.xml
@@ -176,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
177
  version: '0'
177
178
  requirements: []
178
179
  rubyforge_project: metaforce
179
- rubygems_version: 1.8.15
180
+ rubygems_version: 1.8.11
180
181
  signing_key:
181
182
  specification_version: 3
182
183
  summary: A Ruby gem for interacting with the Salesforce Metadata API
@@ -189,6 +190,7 @@ test_files:
189
190
  - spec/fixtures/requests/check_status/not_done.xml
190
191
  - spec/fixtures/requests/deploy/in_progress.xml
191
192
  - spec/fixtures/requests/describe_metadata/success.xml
193
+ - spec/fixtures/requests/list_metadata/no_result.xml
192
194
  - spec/fixtures/requests/list_metadata/objects.xml
193
195
  - spec/fixtures/requests/login/failure.xml
194
196
  - spec/fixtures/requests/login/success.xml