shopify-mock 0.1.0 → 0.1.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.
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>