spec/client_spec.rb in venice-0.2.0 vs spec/client_spec.rb in venice-0.3.0
- old
+ new
@@ -6,28 +6,95 @@
describe "#verify!" do
context "no shared_secret" do
before do
client.shared_secret = nil
+ Venice::Receipt.stub :new
end
it "should only include the receipt_data" do
- client.should_receive(:perform_post).with('receipt-data' => receipt_data)
+ Net::HTTP.any_instance.should_receive(:request) do |post|
+ post.body.should eq({'receipt-data' => receipt_data}.to_json)
+ post
+ end
client.verify! receipt_data
end
end
context "with a shared secret" do
let(:secret) { "shhhhhh" }
before do
- client.shared_secret = secret
+ Venice::Receipt.stub :new
end
- it "should include the secret in the post" do
- client.should_receive(:perform_post).with('receipt-data' => receipt_data, 'password' => secret)
- client.verify! receipt_data
+ context "set secret manually" do
+ before do
+ client.shared_secret = secret
+ end
+
+ it "should include the secret in the post" do
+ Net::HTTP.any_instance.should_receive(:request) do |post|
+ post.body.should eq({'receipt-data' => receipt_data, 'password' => secret}.to_json)
+ post
+ end
+ client.verify! receipt_data
+ end
end
+
+ context "set secret when verification" do
+ let(:options) { {shared_secret: secret} }
+
+ it "should include the secret in the post" do
+ Net::HTTP.any_instance.should_receive(:request) do |post|
+ post.body.should eq({'receipt-data' => receipt_data, 'password' => secret}.to_json)
+ post
+ end
+ client.verify! receipt_data, options
+ end
+ end
+
end
+
+ context "with a latest receipt info attribute" do
+ before do
+ client.stub(:json_response_from_verifying_data).and_return(response)
+ end
+
+ let(:response) do
+ {
+ 'status' => 0,
+ 'receipt' => {},
+ 'latest_receipt' => "<encoded string>",
+ 'latest_receipt_info' => [
+ {
+ "original_purchase_date_pst" => "2012-12-30 09:39:24 America/Los_Angeles",
+ "unique_identifier" => "0000b01147b8",
+ "original_transaction_id" => "1000000061051565",
+ "expires_date" => "1365114731000",
+ "transaction_id" => "1000000070104252",
+ "quantity" => "1",
+ "product_id" => "com.ficklebits.nsscreencast.monthly_sub",
+ "original_purchase_date_ms" => "1356889164000",
+ "bid" => "com.ficklebits.nsscreencast",
+ "web_order_line_item_id" => "1000000026812043",
+ "bvrs" => "0.1",
+ "expires_date_formatted" => "2013-04-04 22:32:11 Etc/GMT",
+ "purchase_date" => "2013-04-04 22:27:11 Etc/GMT",
+ "purchase_date_ms" => "1365114431000",
+ "expires_date_formatted_pst" => "2013-04-04 15:32:11 America/Los_Angeles",
+ "purchase_date_pst" => "2013-04-04 15:27:11 America/Los_Angeles",
+ "original_purchase_date" => "2012-12-30 17:39:24 Etc/GMT",
+ "item_id" => "590265423"
+ }
+ ]
+ }
+ end
+
+ it "should create a latest receipt" do
+ receipt = client.verify! 'asdf'
+ receipt.latest_receipt_info.should_not be_nil
+ end
+ end
+
end
end
-