| 
					
				 | 
			
			
				@@ -0,0 +1,65 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+require 'test_helper' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class PriceRuleTest < Test::Unit::TestCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def setup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    super 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake 'price_rules/102586120', body: load_fixture('price_rule') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @price_rule = ShopifyAPI::PriceRule.find(102586120) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def test_get_price_rule 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake 'price_rules/102586120', method: :get, status: 200, body: load_fixture('price_rule') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    price_rule = ShopifyAPI::PriceRule.find(102586120) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 102586120, price_rule.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def test_get_all_price_rules 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake 'price_rules', method: :get, status: 200, body: load_fixture('price_rules') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    price_rules = ShopifyAPI::PriceRule.all 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 1, price_rules.length 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal 102586120, price_rules.first.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def test_get_all_discount_codes_for_a_price_rule 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake 'price_rules/102586120/discount_codes', method: :get, status: 200, body: load_fixture('discount_codes') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    price_rule = ShopifyAPI::PriceRule.find(102586120) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal "SUMMERSALE10", price_rule.discount_codes.first.code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def test_create_price_rule 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake 'price_rules', method: :post, status: 201, body: load_fixture('price_rule') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    price_rule = ShopifyAPI::PriceRule.create( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      target_type: "line_item", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      allocation_method: "across", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value_type: "fixed_amount", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      value: -10.0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      customer_selection: "all", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      starts_at: "2017-01-19T00:00:00Z" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal '{"price_rule":{"target_type":"line_item","allocation_method":"across","value_type":"fixed_amount","value":-10.0,"customer_selection":"all","starts_at":"2017-01-19T00:00:00Z"}}', FakeWeb.last_request.body 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal -10, price_rule.value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def test_update_price_rule 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    price_rule_response = ActiveSupport::JSON.decode(load_fixture('price_rule')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    price_rule_response['price_rule']['value'] = -50.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @price_rule.value = -50.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake 'price_rules/102586120', method: :put, status: 200, body: ActiveSupport::JSON.encode(price_rule_response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @price_rule.save 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal price_rule_response['price_rule']['value'], @price_rule.value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def test_delete_price_rule 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fake 'price_rules/102586120', method: :delete, body: 'destroyed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert @price_rule.destroy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+end 
			 |