shopify-mock 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/.travis.yml +1 -1
  2. data/README.rdoc +40 -22
  3. data/Rakefile +9 -0
  4. data/lib/shopify-mock.rb +4 -3
  5. data/lib/shopify-mock/fixtures.rb +11 -2
  6. data/lib/shopify-mock/fixtures/{articles.json → json/articles.json} +0 -0
  7. data/lib/shopify-mock/fixtures/{assets.json → json/assets.json} +0 -0
  8. data/lib/shopify-mock/fixtures/{blogs.json → json/blogs.json} +0 -0
  9. data/lib/shopify-mock/fixtures/{collect.json → json/collect.json} +0 -0
  10. data/lib/shopify-mock/fixtures/{comments.json → json/comments.json} +0 -0
  11. data/lib/shopify-mock/fixtures/{count.json → json/count.json} +0 -0
  12. data/lib/shopify-mock/fixtures/{countries.json → json/countries.json} +0 -0
  13. data/lib/shopify-mock/fixtures/{custom_collections.json → json/custom_collections.json} +0 -0
  14. data/lib/shopify-mock/fixtures/{customer_groups.json → json/customer_groups.json} +0 -0
  15. data/lib/shopify-mock/fixtures/{customers.json → json/customers.json} +0 -0
  16. data/lib/shopify-mock/fixtures/{events.json → json/events.json} +0 -0
  17. data/lib/shopify-mock/fixtures/{fulfillments.json → json/fulfillments.json} +0 -0
  18. data/lib/shopify-mock/fixtures/{images.json → json/images.json} +0 -0
  19. data/lib/shopify-mock/fixtures/{metafields.json → json/metafields.json} +0 -0
  20. data/lib/shopify-mock/fixtures/{orders.json → json/orders.json} +0 -0
  21. data/lib/shopify-mock/fixtures/{pages.json → json/pages.json} +0 -0
  22. data/lib/shopify-mock/fixtures/{product_search_engines.json → json/product_search_engines.json} +0 -0
  23. data/lib/shopify-mock/fixtures/{products.json → json/products.json} +0 -0
  24. data/lib/shopify-mock/fixtures/{provinces.json → json/provinces.json} +0 -0
  25. data/lib/shopify-mock/fixtures/{redirects.json → json/redirects.json} +0 -0
  26. data/lib/shopify-mock/fixtures/{script_tags.json → json/script_tags.json} +0 -0
  27. data/lib/shopify-mock/fixtures/{shop.json → json/shop.json} +0 -0
  28. data/lib/shopify-mock/fixtures/{smart_collections.json → json/smart_collections.json} +0 -0
  29. data/lib/shopify-mock/fixtures/{test.json → json/test.json} +0 -0
  30. data/lib/shopify-mock/fixtures/{themes.json → json/themes.json} +0 -0
  31. data/lib/shopify-mock/fixtures/{transactions.json → json/transactions.json} +0 -0
  32. data/lib/shopify-mock/fixtures/{variants.json → json/variants.json} +0 -0
  33. data/lib/shopify-mock/fixtures/{webhooks.json → json/webhooks.json} +0 -0
  34. data/lib/shopify-mock/fixtures/xml/articles.xml +29 -0
  35. data/lib/shopify-mock/fixtures/xml/assets.xml +135 -0
  36. data/lib/shopify-mock/fixtures/xml/blogs.xml +14 -0
  37. data/lib/shopify-mock/fixtures/xml/collect.xml +10 -0
  38. data/lib/shopify-mock/fixtures/xml/comments.xml +18 -0
  39. data/lib/shopify-mock/fixtures/xml/count.xml +2 -0
  40. data/lib/shopify-mock/fixtures/xml/countries.xml +15 -0
  41. data/lib/shopify-mock/fixtures/xml/custom_collections.xml +13 -0
  42. data/lib/shopify-mock/fixtures/xml/customer_groups.xml +24 -0
  43. data/lib/shopify-mock/fixtures/xml/customers.xml +31 -0
  44. data/lib/shopify-mock/fixtures/xml/events.xml +12 -0
  45. data/lib/shopify-mock/fixtures/xml/fulfillments.xml +34 -0
  46. data/lib/shopify-mock/fixtures/xml/images.xml +11 -0
  47. data/lib/shopify-mock/fixtures/xml/metafields.xml +13 -0
  48. data/lib/shopify-mock/fixtures/xml/orders.xml +140 -0
  49. data/lib/shopify-mock/fixtures/xml/pages.xml +15 -0
  50. data/lib/shopify-mock/fixtures/xml/product_search_engines.xml +7 -0
  51. data/lib/shopify-mock/fixtures/xml/products.xml +113 -0
  52. data/lib/shopify-mock/fixtures/xml/provinces.xml +99 -0
  53. data/lib/shopify-mock/fixtures/xml/redirects.xml +18 -0
  54. data/lib/shopify-mock/fixtures/xml/script_tags.xml +10 -0
  55. data/lib/shopify-mock/fixtures/xml/shop.xml +25 -0
  56. data/lib/shopify-mock/fixtures/xml/smart_collections.xml +20 -0
  57. data/lib/shopify-mock/fixtures/xml/test.xml +2 -0
  58. data/lib/shopify-mock/fixtures/xml/themes.xml +24 -0
  59. data/lib/shopify-mock/fixtures/xml/transactions.xml +14 -0
  60. data/lib/shopify-mock/fixtures/xml/variants.xml +83 -0
  61. data/lib/shopify-mock/fixtures/xml/webhooks.xml +11 -0
  62. data/shopify-mock.gemspec +2 -1
  63. data/spec/fixtures_spec.rb +1 -1
  64. data/spec/mock_spec.rb +15 -0
  65. data/spec/response_spec.rb +3 -1
  66. metadata +72 -33
data/.travis.yml CHANGED
@@ -1 +1 @@
1
- script: "rspec spec"
1
+ rvm: 1.9.2
data/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = ShopifyMock
1
+ = shopify-mock
2
2
 
3
3
  This gem is used for testing Shopify apps without having to actually connect to
4
4
  Shopify to develop the application.
@@ -15,48 +15,66 @@ Add the gem to your Gemfile in the appropriate group:
15
15
 
16
16
  == Enabling / Disabling
17
17
 
18
- For non Rails apps, ShopifyMock is disabled by default, and real-world Internet
19
- access is allowed. In a Rails app, ShopifyMock is disabled except for in the :test
18
+ For non Rails apps, shopify-mock is disabled by default, and real-world Internet
19
+ access is allowed. In a Rails app, shopify-mock is disabled except for in the :test
20
20
  environment.
21
21
 
22
- To enable / disable ShopifyMock manually, set ShopifyAPI::Mock.enabled to true or false:
22
+ To enable / disable shopify-mock manually, set ShopifyAPI::Mock.enabled to true or false:
23
23
 
24
- ShopifyAPI::Mock.enabled = true # or false
24
+ ShopifyAPI::Mock.enabled = true # or false to disable
25
+ ShopifyAPI::Mock.enabled? # => to get the current state
25
26
 
26
27
  And to completely disable access to the Internet altogether, or re-enable it:
27
28
 
28
29
  ShopifyAPI::Mock.allow_internet = false # or true to re-enable
30
+ ShopifyAPI::Mock.allow_internet? # => to get the current state
29
31
 
30
32
  == Example
31
33
 
32
34
  After installing the gem in your Shopify app, load the rails console, and try
33
35
  this quick example:
34
36
 
35
- rails c
36
- :001 > ShopifyAPI::Mock.enabled = true
37
- :002 > order = ShopifyAPI::Session.temp("test", "randomtoken") { ShopifyAPI::Order.first }
37
+ rails c test
38
+ order = ShopifyAPI::Session.temp("test", "randomtoken") { ShopifyAPI::Order.first }
38
39
 
39
40
  You'll notice that the order was not downloaded from Shopify, but based off of
40
- a ShopifyMock fixture found in lib/shopify-mock/fixtures/orders.json
41
+ a shopify-mock fixture found in lib/shopify-mock/fixtures/orders.json
41
42
 
42
- == Fixtures
43
-
44
- You have access to the ShopifyMock fixtures from within your app to help with
45
- testing. To access a fixture, use ShopifyAPI::Mock::Fixtures:
46
-
47
- ShopifyAPI::Mock::Fixtures.read(:orders) # => contents of orders.json
43
+ == Responses
48
44
 
49
- You can also use your own fixtures if you'd like:
45
+ You have access to all the registered mock responses through ShopifyAPI::Mock::Response
50
46
 
51
- ShopifyAPI::Mock::Fixtures.use :orders, order.to_json # => use custom content for :orders
52
- ShopifyAPI::Mock::Fixtures.use :orders, :default # => reset :orders to default fixture
53
- ShopifyAPI::Mock::Fixtures.reset # => reset all the fixtures back to their defaults
47
+ ShopifyAPI::Mock::Response.all # => array of all registered responses
48
+ ShopifyAPI::Mock::Response.clear # => clears all the currently registered responses
54
49
 
55
- Or, if you'd prefer you can point the entire fixture path to a different location:
56
-
57
- ShopifyAPI::Mock::Fixtures.path = File.join(Rails.root, 'spec', 'fixtures')
50
+ And you can register your own response:
51
+
52
+ ShopifyAPI::Mock::Response.new(:get, "orders/1.xml", "response content")
58
53
 
54
+ == Fixtures
59
55
 
56
+ You have access to the shopify-mock fixtures through ShopifyAPI::Mock::Fixture
57
+
58
+ ShopifyAPI::Mock::Fixture.all # => an array of all the fixtures
59
+ ShopifyAPI::Mock::Fixture.find(:orders, :json) # => returns the orders.json fixture
60
+ ShopifyAPI::Mock::Fixture.path # => the path to the fixture files
61
+
62
+ # to use your own fixture path:
63
+ ShopifyAPI::Mock::Fixture.path = File.join(Rails.root, 'spec', 'fixtures')
64
+ ShopifyAPI::Mock.reset # => to reload the fixtures
65
+
66
+ A Fixture object has these methods:
67
+
68
+ fixture = ShopifyAPI::Mock::Fixture.all.first
69
+
70
+ fixture.name # => the name of the fixture, such as :orders
71
+ fixture.ext # => the extension of the fixture, such as :json, or :xml
72
+ fixture.data # => the file contents
73
+
74
+ # to override the fixture's contents:
75
+ fixture.data = "new contents" # => use "new contents" for this fixture
76
+ fixture.data = nil # => resets back to default contents
77
+
60
78
  == Contributing to shopify-mock
61
79
 
62
80
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
data/Rakefile CHANGED
@@ -1 +1,10 @@
1
1
  require 'bundler/gem_tasks'
2
+
3
+ task :default => [:spec]
4
+
5
+ desc "runs all specs"
6
+ task :spec do
7
+ files = Dir[File.expand_path("../spec/**/*_spec.rb", __FILE__)].join(" ")
8
+ puts files
9
+ exec "bundle exec rspec #{files}"
10
+ end
data/lib/shopify-mock.rb CHANGED
@@ -45,7 +45,8 @@ module ShopifyAPI
45
45
  def reset
46
46
  raise ShopifyAPI::Mock::DisabledError, "cannot reset ShopifyAPI::Mock while it is disabled" \
47
47
  unless ShopifyAPI::Mock.enabled?
48
- self.class.register_fixed_responses
48
+ ShopifyAPI::Mock.enabled = false
49
+ ShopifyAPI::Mock.enabled = true
49
50
  end
50
51
 
51
52
  # gets the state of access to the real Internet
@@ -76,12 +77,12 @@ module ShopifyAPI
76
77
 
77
78
  registered_responses = []
78
79
  ShopifyAPI::Mock::Fixture.all.each do |fixture|
79
- # register the count fixture for this resource
80
+ # register the count fixture for this resource, if it exists
80
81
  count_fixture = ShopifyAPI::Mock::Fixture.find(:count, fixture.ext.to_sym)
81
82
  registered_responses << ShopifyAPI::Mock::Response.new(
82
83
  :get, "#{fixture.name.to_s}/count.#{fixture.ext}",
83
84
  count_fixture.data
84
- )
85
+ ) unless count_fixture.nil?
85
86
  # register the resource fixture
86
87
  registered_responses << ShopifyAPI::Mock::Response.new(
87
88
  :get, "#{fixture.name.to_s}.#{fixture.ext.to_s}",
@@ -43,6 +43,8 @@ module ShopifyAPI
43
43
  # data = fixture.data # => the contents of "./orders.xml"
44
44
  # fixture.data = "hello world"
45
45
  # data = fixture.data # => "hello world"
46
+ # @example Set contents of a fixture back to their default
47
+ # fixture.data = nil
46
48
  # @api public
47
49
  def data=(value)
48
50
  @data = value
@@ -66,7 +68,14 @@ module ShopifyAPI
66
68
  # ShopifyAPI::Mock::Fixture.all
67
69
  # @api public
68
70
  def all
69
- Dir[File.join(ShopifyAPI::Mock::Fixture.path, "*")].map do |file_name|
71
+ # get a list of all the fixture files
72
+ files = []
73
+ Dir[File.join(ShopifyAPI::Mock::Fixture.path, "**", "*")].each do |f|
74
+ files << f unless File.directory? f
75
+ end
76
+
77
+ # map files to fixtures
78
+ files.map do |file_name|
70
79
  fixture_name = File.basename(file_name)
71
80
  @cache[fixture_name] ||= Fixture.new(file_name)
72
81
  end
@@ -83,7 +92,7 @@ module ShopifyAPI
83
92
  # @api public
84
93
  def find(name, ext = :json)
85
94
  fixture_name = "#{name.to_s}.#{ext.to_s}"
86
- file_name = File.join(self.path, fixture_name)
95
+ file_name = File.join(self.path, ext.to_s, fixture_name)
87
96
  return nil unless File.exists? file_name
88
97
  @cache[fixture_name] ||= Fixture.new(file_name)
89
98
  end
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <articles type="array">
3
+ <article>
4
+ <body-html>I have no idea what to write about, but it's going to rock!</body-html>
5
+ <created-at type="datetime">2008-12-31T19:00:00-05:00</created-at>
6
+ <author>John</author>
7
+ <title>Some crazy article I'm coming up with</title>
8
+ <updated-at type="datetime">2009-01-31T19:00:00-05:00</updated-at>
9
+ <blog-id type="integer">241253187</blog-id>
10
+ <summary-html nil="true"></summary-html>
11
+ <id type="integer">989034056</id>
12
+ <user-id type="integer" nil="true"></user-id>
13
+ <published-at type="datetime" nil="true"></published-at>
14
+ <tags>Mystery</tags>
15
+ </article>
16
+ <article>
17
+ <body-html>&lt;p&gt;Do &lt;em&gt;you&lt;/em&gt; have an &lt;strong&gt;IPod&lt;/strong&gt; yet?&lt;/p&gt;</body-html>
18
+ <created-at type="datetime">2008-07-31T20:00:00-04:00</created-at>
19
+ <author>Dennis</author>
20
+ <title>get on the train now</title>
21
+ <updated-at type="datetime">2008-07-31T20:00:00-04:00</updated-at>
22
+ <blog-id type="integer">241253187</blog-id>
23
+ <summary-html nil="true"></summary-html>
24
+ <id type="integer">134645308</id>
25
+ <user-id type="integer">799407056</user-id>
26
+ <published-at type="datetime">2008-07-31T20:00:00-04:00</published-at>
27
+ <tags>Announcing</tags>
28
+ </article>
29
+ </articles>
@@ -0,0 +1,135 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <assets type="array">
3
+ <asset>
4
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
5
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
6
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-body-green.gif?1</public-url>
7
+ <key>assets/bg-body-green.gif</key>
8
+ </asset>
9
+ <asset>
10
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
11
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
12
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-body-orange.gif?1</public-url>
13
+ <key>assets/bg-body-orange.gif</key>
14
+ </asset>
15
+ <asset>
16
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
17
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
18
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-body-pink.gif?1</public-url>
19
+ <key>assets/bg-body-pink.gif</key>
20
+ </asset>
21
+ <asset>
22
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
23
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
24
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-body.gif?1</public-url>
25
+ <key>assets/bg-body.gif</key>
26
+ </asset>
27
+ <asset>
28
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
29
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
30
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-content.gif?1</public-url>
31
+ <key>assets/bg-content.gif</key>
32
+ </asset>
33
+ <asset>
34
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
35
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
36
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-footer.gif?1</public-url>
37
+ <key>assets/bg-footer.gif</key>
38
+ </asset>
39
+ <asset>
40
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
41
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
42
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-main.gif?1</public-url>
43
+ <key>assets/bg-main.gif</key>
44
+ </asset>
45
+ <asset>
46
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
47
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
48
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/bg-sidebar.gif?1</public-url>
49
+ <key>assets/bg-sidebar.gif</key>
50
+ </asset>
51
+ <asset>
52
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
53
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
54
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/shop.css?1</public-url>
55
+ <key>assets/shop.css</key>
56
+ </asset>
57
+ <asset>
58
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
59
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
60
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/shop.css.liquid?1</public-url>
61
+ <key>assets/shop.css.liquid</key>
62
+ </asset>
63
+ <asset>
64
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
65
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
66
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/shop.js?1</public-url>
67
+ <key>assets/shop.js</key>
68
+ </asset>
69
+ <asset>
70
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
71
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
72
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/sidebar-devider.gif?1</public-url>
73
+ <key>assets/sidebar-devider.gif</key>
74
+ </asset>
75
+ <asset>
76
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
77
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
78
+ <public-url>http://static.shopify.com/s/files/1/6909/3384/t/1/assets/sidebar-menu.jpg?1</public-url>
79
+ <key>assets/sidebar-menu.jpg</key>
80
+ </asset>
81
+ <asset>
82
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
83
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
84
+ <public-url nil="true"></public-url>
85
+ <key>config/settings.html</key>
86
+ </asset>
87
+ <asset>
88
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
89
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
90
+ <public-url nil="true"></public-url>
91
+ <key>layout/theme.liquid</key>
92
+ </asset>
93
+ <asset>
94
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
95
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
96
+ <public-url nil="true"></public-url>
97
+ <key>templates/article.liquid</key>
98
+ </asset>
99
+ <asset>
100
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
101
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
102
+ <public-url nil="true"></public-url>
103
+ <key>templates/blog.liquid</key>
104
+ </asset>
105
+ <asset>
106
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
107
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
108
+ <public-url nil="true"></public-url>
109
+ <key>templates/cart.liquid</key>
110
+ </asset>
111
+ <asset>
112
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
113
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
114
+ <public-url nil="true"></public-url>
115
+ <key>templates/collection.liquid</key>
116
+ </asset>
117
+ <asset>
118
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
119
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
120
+ <public-url nil="true"></public-url>
121
+ <key>templates/index.liquid</key>
122
+ </asset>
123
+ <asset>
124
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
125
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
126
+ <public-url nil="true"></public-url>
127
+ <key>templates/page.liquid</key>
128
+ </asset>
129
+ <asset>
130
+ <created-at type="datetime">2010-07-12T15:31:50-04:00</created-at>
131
+ <updated-at type="datetime">2010-07-12T15:31:50-04:00</updated-at>
132
+ <public-url nil="true"></public-url>
133
+ <key>templates/product.liquid</key>
134
+ </asset>
135
+ </assets>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <blogs type="array">
3
+ <blog>
4
+ <created-at type="datetime">2011-09-06T11:52:08-04:00</created-at>
5
+ <handle>apple-blog</handle>
6
+ <template-suffix nil="true"></template-suffix>
7
+ <title>Mah Blog</title>
8
+ <updated-at type="datetime">2006-02-01T19:00:00-05:00</updated-at>
9
+ <feedburner-location nil="true"></feedburner-location>
10
+ <id type="integer">241253187</id>
11
+ <feedburner nil="true"></feedburner>
12
+ <commentable>no</commentable>
13
+ </blog>
14
+ </blogs>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <collect>
3
+ <position type="integer">2</position>
4
+ <created-at type="datetime">2011-09-06T11:53:10-04:00</created-at>
5
+ <product-id type="integer">921728736</product-id>
6
+ <featured type="boolean">false</featured>
7
+ <updated-at type="datetime">2011-09-06T11:53:10-04:00</updated-at>
8
+ <id type="integer">1012587629</id>
9
+ <collection-id type="integer">841564295</collection-id>
10
+ </collect>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <comments type="array">
3
+ <comment>
4
+ <body-html>&lt;p&gt;Hi author, I really &lt;em&gt;like&lt;/em&gt; what you're doing there.&lt;/p&gt;</body-html>
5
+ <created-at type="datetime">2011-09-06T11:52:08-04:00</created-at>
6
+ <author>Soleone</author>
7
+ <body>Hi author, I really _like_ what you're doing there.</body>
8
+ <updated-at type="datetime">2011-09-06T11:52:08-04:00</updated-at>
9
+ <blog-id type="integer">241253187</blog-id>
10
+ <id type="integer">653537639</id>
11
+ <article-id type="integer">134645308</article-id>
12
+ <ip>127.0.0.1</ip>
13
+ <published-at type="datetime" nil="true"></published-at>
14
+ <user-agent>Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_4; en-us) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1</user-agent>
15
+ <status>unapproved</status>
16
+ <email>sole@one.de</email>
17
+ </comment>
18
+ </comments>