| 
					
				 | 
			
			
				@@ -19,17 +19,33 @@ class ApiVersionTest < Test::Unit::TestCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  test "coerce_to_version raises when coercing a string that doesn't match a known version" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    refute ShopifyAPI::ApiVersion.versions.nil? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_raises ShopifyAPI::ApiVersion::UnknownVersion do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  test "coerce_to_version removes unpersisted versions from version set if mode is set to :predefined_only" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::ApiVersion.coercion_mode = :define_on_unknown 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert ShopifyAPI::ApiVersion.versions.values.all?(&:persisted?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 5, ShopifyAPI::ApiVersion.versions.size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::ApiVersion.coerce_to_version('2019-30') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refute ShopifyAPI::ApiVersion.versions.values.all?(&:persisted?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 6, ShopifyAPI::ApiVersion.versions.size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::ApiVersion.coercion_mode = :predefined_only 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert ShopifyAPI::ApiVersion.versions.values.all?(&:persisted?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 5, ShopifyAPI::ApiVersion.versions.size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  test "coerce_to_version does not raise when coercing a string if no versions are defined when coercion_mode is :define_on_unknown" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::ApiVersion.clear_defined_versions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::ApiVersion.coercion_mode = :define_on_unknown 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal :define_on_unknown, ShopifyAPI::ApiVersion.coercion_mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_nothing_raised do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ShopifyAPI::ApiVersion.coerce_to_version('made up version') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  test "coerce_to_version does not raise when coercing a string if no versions are defined" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ShopifyAPI::ApiVersion.clear_defined_versions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_nil ShopifyAPI::ApiVersion.versions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_nothing_raised  do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  test "coerce_to_version does raise when coercing a string if no versions are defined when coercion_mode is :predefined_only" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refute ShopifyAPI::ApiVersion.versions['made up version'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::ApiVersion.coercion_mode = :predefined_only 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_raises ShopifyAPI::ApiVersion::UnknownVersion do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ShopifyAPI::ApiVersion.coerce_to_version('made up version') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,20 +93,22 @@ class ApiVersionTest < Test::Unit::TestCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "2019-01" => ShopifyAPI::ApiVersion.new(handle: '2019-01', supported: true, latest_supported: false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "2019-04" => ShopifyAPI::ApiVersion.new(handle: '2019-04', supported: true, latest_supported: false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "2019-07" => ShopifyAPI::ApiVersion.new(handle: '2019-07', supported: true, latest_supported: true), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        "2019-10" => ShopifyAPI::ApiVersion.new(handle: '2019-10', supported: true, latest_supported: false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        "unstable" => ShopifyAPI::ApiVersion.new(handle: 'unstable', supported: true, latest_supported: false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "2019-10" => ShopifyAPI::ApiVersion.new(handle: '2019-10', supported: false, latest_supported: false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "unstable" => ShopifyAPI::ApiVersion.new(handle: 'unstable', supported: false, latest_supported: false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    silence_warnings do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    refute_equal( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ShopifyAPI::ApiVersion.new(handle: '2019-01'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ShopifyAPI::ApiVersion.latest_stable_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      refute_equal( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ShopifyAPI::ApiVersion.new(handle: '2019-01'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ShopifyAPI::ApiVersion.latest_stable_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ShopifyAPI::ApiVersion.new(handle: '2019-07'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ShopifyAPI::ApiVersion.latest_stable_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      assert_equal( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ShopifyAPI::ApiVersion.new(handle: '2019-07'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ShopifyAPI::ApiVersion.latest_stable_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   test "NullVersion raises ApiVersionNotSetError" do 
			 |