require File.dirname(__FILE__) + '/../test_helper'
class OrdersServiceTestCase < Test::Unit::TestCase 
  def setup 
    @new_id = OrdersServiceClient.add_product( 
      "Casablanca 10:00pm", 
      50, 
      1000) 
    assert @new_id 
  end 

  def test_order_post 
    uri = URI.parse("#{MoviesWebServiceClient::HOST}/orders/create") 
    post_args = { 
      :showtime_product_id => @new_id, 
      :num_tickets => 4, 
      :billing_line_l => '123 Testahoma Lane', 
      :billing_city => 'Cambridge', 
      :billing_state => 'MA', 
      :billing_zip => '01239', 
      :credit_card_number => '55555555555555', 
      :credit_card_exp_month => '12', 
      :credit_card_exp-year => '2015', 
      :credit_card_type => 'american_express' 
    }
    resp, data = Net::HTTP.post_form(uri, post_args) 
    doc = XmlSimple.xml_in(data) 
    assert doc['confirmation code'] 
    assert doc['price']
  end 

  def test_order_get_fails 
    get_args = { 
      :showtime_product_id => @new_id, 
      :num_tickets => 4, 
      :billing_line_1 => '123 Testahoma Lane', 
      :billing_city => 'Cambridge', 
      :billing_state => 'MA', 
      :billing_zip => '01239', 
      :credit_card_number => '55555555555555', 
      :credit_card_exp_month => '12', 
      :credit_card_exp-year => '2015', 
      :credit_card_type => 'american_express' 
    }.collect{ |k, v| "#{k}=#{CGI.escape(v.to_s)}"}.join("&") 
    uri = URI.parse("#{MoviesWebServiceClient::HOST}/orders/create?#{get_args}") 

    resp = Net::HTTP.get_response(uri) 
    assert resp.kind_of? Net::HTTPMethodNotAllowed 
  end 
end


