gecko-ruby 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rubocop.yml +9 -0
  4. data/.travis.yml +5 -0
  5. data/CHANGELOG.md +41 -0
  6. data/CONTRIBUTING.md +0 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +144 -0
  10. data/Rakefile +19 -0
  11. data/gecko-ruby.gemspec +34 -0
  12. data/generate.thor +81 -0
  13. data/lib/gecko-ruby.rb +1 -0
  14. data/lib/gecko.rb +31 -0
  15. data/lib/gecko/client.rb +132 -0
  16. data/lib/gecko/helpers/association_helper.rb +69 -0
  17. data/lib/gecko/helpers/inspection_helper.rb +51 -0
  18. data/lib/gecko/helpers/record_helper.rb +29 -0
  19. data/lib/gecko/helpers/serialization_helper.rb +61 -0
  20. data/lib/gecko/helpers/validation_helper.rb +91 -0
  21. data/lib/gecko/record/account.rb +66 -0
  22. data/lib/gecko/record/address.rb +33 -0
  23. data/lib/gecko/record/base.rb +66 -0
  24. data/lib/gecko/record/base_adapter.rb +365 -0
  25. data/lib/gecko/record/company.rb +41 -0
  26. data/lib/gecko/record/contact.rb +25 -0
  27. data/lib/gecko/record/currency.rb +23 -0
  28. data/lib/gecko/record/exceptions.rb +15 -0
  29. data/lib/gecko/record/fulfillment.rb +42 -0
  30. data/lib/gecko/record/fulfillment_line_item.rb +26 -0
  31. data/lib/gecko/record/image.rb +38 -0
  32. data/lib/gecko/record/invoice.rb +29 -0
  33. data/lib/gecko/record/invoice_line_item.rb +18 -0
  34. data/lib/gecko/record/location.rb +23 -0
  35. data/lib/gecko/record/order.rb +50 -0
  36. data/lib/gecko/record/order_line_item.rb +35 -0
  37. data/lib/gecko/record/product.rb +27 -0
  38. data/lib/gecko/record/purchase_order.rb +43 -0
  39. data/lib/gecko/record/purchase_order_line_item.rb +29 -0
  40. data/lib/gecko/record/tax_type.rb +21 -0
  41. data/lib/gecko/record/user.rb +44 -0
  42. data/lib/gecko/record/variant.rb +96 -0
  43. data/lib/gecko/version.rb +3 -0
  44. data/test/client_test.rb +29 -0
  45. data/test/fixtures/vcr_cassettes/accounts.yml +57 -0
  46. data/test/fixtures/vcr_cassettes/accounts_current.yml +57 -0
  47. data/test/fixtures/vcr_cassettes/addresses.yml +68 -0
  48. data/test/fixtures/vcr_cassettes/addresses_count.yml +58 -0
  49. data/test/fixtures/vcr_cassettes/companies.yml +62 -0
  50. data/test/fixtures/vcr_cassettes/companies_count.yml +58 -0
  51. data/test/fixtures/vcr_cassettes/contacts.yml +60 -0
  52. data/test/fixtures/vcr_cassettes/contacts_count.yml +58 -0
  53. data/test/fixtures/vcr_cassettes/currencies.yml +62 -0
  54. data/test/fixtures/vcr_cassettes/currencies_count.yml +58 -0
  55. data/test/fixtures/vcr_cassettes/fulfillments.yml +59 -0
  56. data/test/fixtures/vcr_cassettes/fulfillments_count.yml +58 -0
  57. data/test/fixtures/vcr_cassettes/images.yml +59 -0
  58. data/test/fixtures/vcr_cassettes/images_count.yml +58 -0
  59. data/test/fixtures/vcr_cassettes/invoice_line_items.yml +63 -0
  60. data/test/fixtures/vcr_cassettes/invoice_line_items_count.yml +62 -0
  61. data/test/fixtures/vcr_cassettes/invoices.yml +63 -0
  62. data/test/fixtures/vcr_cassettes/invoices_count.yml +62 -0
  63. data/test/fixtures/vcr_cassettes/locations.yml +65 -0
  64. data/test/fixtures/vcr_cassettes/locations_count.yml +58 -0
  65. data/test/fixtures/vcr_cassettes/order_line_items.yml +63 -0
  66. data/test/fixtures/vcr_cassettes/order_line_items_count.yml +62 -0
  67. data/test/fixtures/vcr_cassettes/orders.yml +62 -0
  68. data/test/fixtures/vcr_cassettes/orders_count.yml +58 -0
  69. data/test/fixtures/vcr_cassettes/products.yml +79 -0
  70. data/test/fixtures/vcr_cassettes/products_count.yml +58 -0
  71. data/test/fixtures/vcr_cassettes/products_new_invalid.yml +54 -0
  72. data/test/fixtures/vcr_cassettes/products_new_valid.yml +58 -0
  73. data/test/fixtures/vcr_cassettes/purchase_order_line_items.yml +64 -0
  74. data/test/fixtures/vcr_cassettes/purchase_order_line_items_count.yml +62 -0
  75. data/test/fixtures/vcr_cassettes/purchase_orders.yml +63 -0
  76. data/test/fixtures/vcr_cassettes/purchase_orders_count.yml +62 -0
  77. data/test/fixtures/vcr_cassettes/tax_types.yml +74 -0
  78. data/test/fixtures/vcr_cassettes/tax_types_count.yml +62 -0
  79. data/test/fixtures/vcr_cassettes/users.yml +60 -0
  80. data/test/fixtures/vcr_cassettes/users_count.yml +58 -0
  81. data/test/fixtures/vcr_cassettes/users_current.yml +54 -0
  82. data/test/fixtures/vcr_cassettes/variants.yml +60 -0
  83. data/test/fixtures/vcr_cassettes/variants_count.yml +58 -0
  84. data/test/gecko_test.rb +7 -0
  85. data/test/helpers/association_helper_test.rb +56 -0
  86. data/test/helpers/inspection_helper_test.rb +27 -0
  87. data/test/helpers/serialization_helper_test.rb +30 -0
  88. data/test/helpers/validation_helper_test.rb +24 -0
  89. data/test/record/account_adapter_test.rb +43 -0
  90. data/test/record/address_adapter_test.rb +14 -0
  91. data/test/record/address_test.rb +18 -0
  92. data/test/record/company_adapter_test.rb +14 -0
  93. data/test/record/company_test.rb +18 -0
  94. data/test/record/contact_adapter_test.rb +14 -0
  95. data/test/record/contact_test.rb +18 -0
  96. data/test/record/currency_adapter_test.rb +14 -0
  97. data/test/record/currency_test.rb +18 -0
  98. data/test/record/fulfillment_adapter_test.rb +24 -0
  99. data/test/record/fulfillment_line_item_adapter_test.rb +21 -0
  100. data/test/record/fulfillment_line_item_test.rb +18 -0
  101. data/test/record/fulfillment_test.rb +27 -0
  102. data/test/record/image_adapter_test.rb +14 -0
  103. data/test/record/image_test.rb +25 -0
  104. data/test/record/invoice_adapter_test.rb +14 -0
  105. data/test/record/invoice_line_item_adapter_test.rb +20 -0
  106. data/test/record/invoice_line_item_test.rb +18 -0
  107. data/test/record/invoice_test.rb +18 -0
  108. data/test/record/location_adapter_test.rb +14 -0
  109. data/test/record/location_test.rb +18 -0
  110. data/test/record/order_adapter_test.rb +14 -0
  111. data/test/record/order_line_item_adapter_test.rb +14 -0
  112. data/test/record/order_line_item_test.rb +18 -0
  113. data/test/record/order_test.rb +18 -0
  114. data/test/record/product_adapter_test.rb +32 -0
  115. data/test/record/product_test.rb +18 -0
  116. data/test/record/purchase_order_adapter_test.rb +14 -0
  117. data/test/record/purchase_order_line_item_adapter_test.rb +14 -0
  118. data/test/record/purchase_order_line_item_test.rb +18 -0
  119. data/test/record/purchase_order_test.rb +18 -0
  120. data/test/record/tax_type_adapter_test.rb +14 -0
  121. data/test/record/tax_type_test.rb +18 -0
  122. data/test/record/user_adapter_test.rb +27 -0
  123. data/test/record/user_test.rb +18 -0
  124. data/test/record/variant_adapter_test.rb +14 -0
  125. data/test/record/variant_test.rb +44 -0
  126. data/test/support/let.rb +10 -0
  127. data/test/support/shared_adapter_examples.rb +159 -0
  128. data/test/support/shared_record_examples.rb +21 -0
  129. data/test/support/testing_adapter.rb +11 -0
  130. data/test/support/vcr_support.rb +7 -0
  131. data/test/test_helper.rb +21 -0
  132. metadata +430 -0
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::FulfillmentLineItemTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { 'fulfillment_line_items' }
8
+ let(:record_class) { Gecko::Record::FulfillmentLineItem }
9
+
10
+ def setup
11
+ @json = load_vcr_hash('fulfillments', 'fulfillment_line_items').first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::FulfillmentLineItem, @record)
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::FulfillmentTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { 'fulfillments' }
8
+ let(:record_class) { Gecko::Record::Fulfillment }
9
+
10
+ def setup
11
+ @json = load_vcr_hash('fulfillments', 'fulfillments').first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::Fulfillment, @record)
17
+ end
18
+
19
+ def test_serialization
20
+ json_keys = %w(
21
+ order_id shipping_address_id billing_address_id status exchange_rate
22
+ delivery_type tracking_number notes tracking_url tracking_company packed_at
23
+ shipped_at received_at receipt
24
+ ).map(&:to_sym)
25
+ assert_equal json_keys.sort, @record.as_json[:fulfillment].keys.sort
26
+ end
27
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::ImageAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.Image }
8
+ let(:plural_name) { "images" }
9
+ let(:record_class) { Gecko::Record::Image }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::ImageAdapter, @client.Image)
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::ImageTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { "images" }
8
+ let(:record_class) { Gecko::Record::Image }
9
+
10
+ def setup
11
+ @json = load_vcr_hash("images", "images").first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::Image, @record)
17
+ end
18
+
19
+ def test_url
20
+ @record = record_class.new(client, base_path: "https://example.com", file_name: "Gecko.jpg")
21
+ assert_equal("https://example.com/Gecko.jpg", @record.url)
22
+ assert_equal("https://example.com/Gecko.jpg", @record.url(:full))
23
+ assert_equal("https://example.com/thumbnail_Gecko.jpg", @record.url(:thumbnail))
24
+ end
25
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::InvoiceAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.Invoice }
8
+ let(:plural_name) { "invoices" }
9
+ let(:record_class) { Gecko::Record::Invoice }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::InvoiceAdapter, @client.Invoice)
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::InvoiceLineItemAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.InvoiceLineItem }
8
+ let(:plural_name) { "invoice_line_items" }
9
+ let(:record_class) { Gecko::Record::InvoiceLineItem }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::InvoiceLineItemAdapter, @client.InvoiceLineItem)
13
+ end
14
+
15
+ private
16
+
17
+ def random_attribute
18
+ :quantity
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::InvoiceLineItemTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { "invoice_line_items" }
8
+ let(:record_class) { Gecko::Record::InvoiceLineItem }
9
+
10
+ def setup
11
+ @json = load_vcr_hash("invoice_line_items", "invoice_line_items").first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::InvoiceLineItem, @record)
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::InvoiceTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { "invoices" }
8
+ let(:record_class) { Gecko::Record::Invoice }
9
+
10
+ def setup
11
+ @json = load_vcr_hash("invoices", "invoices").first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::Invoice, @record)
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::LocationAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.Location }
8
+ let(:plural_name) { 'locations' }
9
+ let(:record_class) { Gecko::Record::Location }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::LocationAdapter, @client.Location)
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::LocationTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { 'locations' }
8
+ let(:record_class) { Gecko::Record::Location }
9
+
10
+ def setup
11
+ @json = load_vcr_hash('locations', 'locations').first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::Location, @record)
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::OrderAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.Order }
8
+ let(:plural_name) { 'orders' }
9
+ let(:record_class) { Gecko::Record::Order }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::OrderAdapter, @client.Order)
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::OrderLineItemAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.OrderLineItem }
8
+ let(:plural_name) { 'order_line_items' }
9
+ let(:record_class) { Gecko::Record::OrderLineItem }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::OrderLineItemAdapter, @client.OrderLineItem)
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::OrderLineItemTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { 'order_line_items' }
8
+ let(:record_class) { Gecko::Record::OrderLineItem }
9
+
10
+ def setup
11
+ @json = load_vcr_hash('order_line_items', 'order_line_items').first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::OrderLineItem, @record)
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::OrderTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { 'orders' }
8
+ let(:record_class) { Gecko::Record::Order }
9
+
10
+ def setup
11
+ @json = load_vcr_hash('orders', 'orders').first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::Order, @record)
17
+ end
18
+ end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::ProductAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.Product }
8
+ let(:plural_name) { 'products' }
9
+ let(:record_class) { Gecko::Record::Product }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::ProductAdapter, @client.Product)
13
+ end
14
+
15
+ def test_saves_new_record
16
+ VCR.use_cassette(plural_name + '_new_valid') do
17
+ record = adapter.build(name: 'Gary')
18
+ assert record.save
19
+ assert record.id
20
+ assert adapter.has_record_for_id?(record.id)
21
+ end
22
+ end
23
+
24
+ def test_invalid_new_record
25
+ VCR.use_cassette(plural_name + '_new_invalid') do
26
+ record = adapter.build(product_type: 'Gecko')
27
+ assert !record.save
28
+ assert !record.id
29
+ assert_equal record.errors[:name], ["can't be blank"]
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::ProductTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { 'products' }
8
+ let(:record_class) { Gecko::Record::Product }
9
+
10
+ def setup
11
+ @json = load_vcr_hash('products', 'products').first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::Product, @record)
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::PurchaseOrderAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.PurchaseOrder }
8
+ let(:plural_name) { "purchase_orders" }
9
+ let(:record_class) { Gecko::Record::PurchaseOrder }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::PurchaseOrderAdapter, @client.PurchaseOrder)
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::PurchaseOrderLineItemAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.PurchaseOrderLineItem }
8
+ let(:plural_name) { "purchase_order_line_items" }
9
+ let(:record_class) { Gecko::Record::PurchaseOrderLineItem }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::PurchaseOrderLineItemAdapter, @client.PurchaseOrderLineItem)
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::PurchaseOrderLineItemTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { "purchase_order_line_items" }
8
+ let(:record_class) { Gecko::Record::PurchaseOrderLineItem }
9
+
10
+ def setup
11
+ @json = load_vcr_hash("purchase_order_line_items", "purchase_order_line_items").first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::PurchaseOrderLineItem, @record)
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::PurchaseOrderTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { "purchase_orders" }
8
+ let(:record_class) { Gecko::Record::PurchaseOrder }
9
+
10
+ def setup
11
+ @json = load_vcr_hash("purchase_orders", "purchase_orders").first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::PurchaseOrder, @record)
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::TaxTypeAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.TaxType }
8
+ let(:plural_name) { "tax_types" }
9
+ let(:record_class) { Gecko::Record::TaxType }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::TaxTypeAdapter, @client.TaxType)
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::TaxTypeTest < Minitest::Test
4
+ include VCRHelper
5
+ include SharedRecordExamples
6
+
7
+ let(:plural_name) { "tax_types" }
8
+ let(:record_class) { Gecko::Record::TaxType }
9
+
10
+ def setup
11
+ @json = load_vcr_hash("tax_types", "tax_types").first
12
+ @record = record_class.new(client, @json)
13
+ end
14
+
15
+ def test_initializes_record
16
+ assert_instance_of(Gecko::Record::TaxType, @record)
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class Gecko::Record::UserAdapterTest < Minitest::Test
4
+ include TestingAdapter
5
+ include SharedAdapterExamples
6
+
7
+ let(:adapter) { @client.User }
8
+ let(:plural_name) { 'users' }
9
+ let(:record_class) { Gecko::Record::User }
10
+
11
+ def test_initializes_adapter
12
+ assert_instance_of(Gecko::Record::UserAdapter, @client.User)
13
+ end
14
+
15
+ # Can't build users via API
16
+ undef :test_build
17
+ undef :test_build_with_attributes
18
+ undef :test_saving_new_record
19
+ undef :test_saving_new_invalid_record
20
+
21
+ def test_current
22
+ VCR.use_cassette('users#current') do
23
+ assert_instance_of(Gecko::Record::User, @client.User.current)
24
+ assert(@client.User.current, 'User.current is identity mapped')
25
+ end
26
+ end
27
+ end