| 
					
				 | 
			
			
				@@ -3,12 +3,8 @@ require 'test_helper' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class VariantTest < Test::Unit::TestCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def setup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     super 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @version_unstable = ShopifyAPI::ApiVersion.find_version('unstable') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @version_2019_07 = ShopifyAPI::ApiVersion.find_version('2019-07') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @version_2019_10 = ShopifyAPI::ApiVersion.find_version('2019-10') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @version_2020_01 = ShopifyAPI::ApiVersion.find_version('2020-01') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake "products/632910392/variants/808950810", method: :get, body: load_fixture('variant') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_get_variants 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -19,181 +15,91 @@ class VariantTest < Test::Unit::TestCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_get_variant_namespaced 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    v = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal 632910392, v.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 632910392, @variant.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_get_variant 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake "variants/808950810", :method => :get, :body => load_fixture('variant') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    v = ShopifyAPI::Variant.find(808950810) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal 632910392, v.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 632910392, @variant.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_product_id_should_be_accessible_if_via_product_endpoint 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    v = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal 632910392, v.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 632910392, @variant.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_product_id_should_be_accessible_if_via_variant_endpoint 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fake "variants/808950810", :method => :get, :body => load_fixture('variant') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    v = ShopifyAPI::Variant.find(808950810) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal 632910392, v.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 632910392, @variant.product_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_delete_variant 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fake "products/632910392/variants/808950810", :method => :delete, :body => 'destroyed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    v = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert v.destroy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert @variant.destroy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_deprecated_inventory_fields_are_included_in_2019_07 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2019-07' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2019_07 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert variant.as_json.include?('inventory_quantity') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert @variant.as_json.include?('inventory_quantity') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_deprecated_inventory_fields_are_removed_in_2020_01 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2020-01' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2020_01 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    refute variant.as_json.include?('inventory_quantity') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refute @variant.as_json.include?('inventory_quantity') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_inventory_quantity_adjustment_passes_in_api_before_2019_10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2019-07' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2019_07 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant.inventory_quantity_adjustment = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @variant.inventory_quantity_adjustment = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_inventory_quantity_adjustment_fails_in_2019_10_api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2019-10' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2019_10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_raises(ShopifyAPI::ValidationException) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      variant.inventory_quantity_adjustment = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @variant.inventory_quantity_adjustment = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_inventory_quantity_adjustment_fails_in_the_unstable_api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = :unstable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_unstable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_raises(ShopifyAPI::ValidationException) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      variant.inventory_quantity_adjustment = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @variant.inventory_quantity_adjustment = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_inventory_quantity_passes_in_api_before_2019_10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2019-07' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2019_07 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant.inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @variant.inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_inventory_quantity_fails_in_2019_10_api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2019-10' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2019_10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_raises(ShopifyAPI::ValidationException) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      variant.inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @variant.inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_inventory_quantity_fails_in_the_unstable_api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = :unstable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_unstable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_raises(ShopifyAPI::ValidationException) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      variant.inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @variant.inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_old_inventory_quantity_passes_in_api_before_2019_10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2019-07' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2019_07 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant.old_inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @variant.old_inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_old_inventory_quantity_fails_in_2019_10_api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = '2019-10' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_2019_10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_raises(ShopifyAPI::ValidationException) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      variant.old_inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @variant.old_inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   def test_setting_variant_old_inventory_quantity_fails_in_the_unstable_api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ShopifyAPI::Base.api_version = :unstable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fake( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "products/632910392/variants/808950810", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      method: :get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      body: load_fixture('variant'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      api_version: @version_unstable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_raises(ShopifyAPI::ValidationException) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      variant.old_inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @variant.old_inventory_quantity = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end 
			 |