spec/paypal/notification_spec.rb in paypal-recurring-0.1.4 vs spec/paypal/notification_spec.rb in paypal-recurring-0.1.5

- old
+ new

@@ -9,9 +9,82 @@ it "detects recurring payment" do subject.params[:txn_type] = "recurring_payment" subject.should be_recurring_payment end + it "detects recurring payment profile" do + subject.params[:txn_type] = "recurring_payment_profile_created" + subject.should be_recurring_payment_profile + end + + it "normalizes payment date" do + subject.params[:payment_date] = "20:37:06 Jul 04, 2011 PDT" # PDT = -0700 + subject.paid_at.strftime("%Y-%m-%d %H:%M:%S").should == "2011-07-05 03:37:06" + end + + it "returns currency" do + subject.params[:mc_currency] = "BRL" + subject.currency.should == "BRL" + end + + describe "#payment_date" do + it "returns date from time_created field" do + subject.params[:time_created] = "2011-07-05" + subject.payment_date.should == "2011-07-05" + end + + it "returns date from payment_date field" do + subject.params[:payment_date] = "2011-07-05" + subject.payment_date.should == "2011-07-05" + end + end + + describe "#fee" do + it "returns fee from mc_fee field" do + subject.params[:mc_fee] = "0.56" + subject.fee.should == "0.56" + end + + it "returns fee from payment_fee field" do + subject.params[:payment_fee] = "0.56" + subject.fee.should == "0.56" + end + end + + describe "#amount" do + it "returns amount from amount field" do + subject.params[:amount] = "9.00" + subject.amount.should == "9.00" + end + + it "returns amount from mc_gross field" do + subject.params[:mc_gross] = "9.00" + subject.amount.should == "9.00" + end + + it "returns amount from payment_gross field" do + subject.params[:payment_gross] = "9.00" + subject.amount.should == "9.00" + end + end + + describe "#reference" do + it "returns from recurring IPN" do + subject.params[:rp_invoice_id] = "abc" + subject.reference.should == "abc" + end + + it "returns from custom field" do + subject.params[:custom] = "abc" + subject.reference.should == "abc" + end + + it "returns from invoice field" do + subject.params[:invoice] = "abc" + subject.reference.should == "abc" + end + end + context "when successful" do use_vcr_cassette "notification/success" it "verifies notification" do subject.params = {"test_ipn"=>"1", "payment_type"=>"echeck", "payment_date"=>"06:16:11 Jun 27, 2011 PDT", "payment_status"=>"Completed", "pending_reason"=>"echeck", "address_status"=>"confirmed", "payer_status"=>"verified", "first_name"=>"John", "last_name"=>"Smith", "payer_email"=>"buyer@paypalsandbox.com", "payer_id"=>"TESTBUYERID01", "address_name"=>"John Smith", "address_country"=>"United States", "address_country_code"=>"US", "address_zip"=>"95131", "address_state"=>"CA", "address_city"=>"San Jose", "address_street"=>"123, any street", "business"=>"seller@paypalsandbox.com", "receiver_email"=>"seller@paypalsandbox.com", "receiver_id"=>"TESTSELLERID1", "residence_country"=>"US", "item_name"=>"something", "item_number"=>"AK-1234", "quantity"=>"1", "shipping"=>"3.04", "tax"=>"2.02", "mc_currency"=>"USD", "mc_fee"=>"0.44", "mc_gross"=>"12.34", "txn_type"=>"web_accept", "txn_id"=>"116271316", "notify_version"=>"2.1", "custom"=>"xyz123", "invoice"=>"abc1234", "charset"=>"windows-1252", "verify_sign"=>"A12AYqq6LElPcpXaQx48GiroLHnMAoQPnK0Z7aRwXUOpg1GfDaE15mFN"}