pag_seguro 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,10 @@ module PagSeguro
22
22
  @max_age = options[:max_age]
23
23
  end
24
24
 
25
+ def self.checkout_payment_url(code)
26
+ "https://pagseguro.uol.com.br/v2/checkout/payment.html?code=#{code}"
27
+ end
28
+
25
29
  def checkout_xml
26
30
  xml_content = File.open( File.dirname(__FILE__) + "/checkout.xml.haml" ).read
27
31
  Haml::Engine.new(xml_content).render(nil, items: @items, payment: self, sender: @sender, shipping: @shipping)
@@ -32,7 +36,7 @@ module PagSeguro
32
36
  end
33
37
 
34
38
  def checkout_payment_url
35
- "https://pagseguro.uol.com.br/v2/checkout/payment.html?code=#{code}"
39
+ self.class.checkout_payment_url(code)
36
40
  end
37
41
 
38
42
  def code
@@ -1,3 +1,3 @@
1
1
  module PagSeguro
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -90,6 +90,10 @@ describe PagSeguro::Payment do
90
90
  end
91
91
 
92
92
  context "checking out" do
93
+ it "should generate a checkout url with an external code" do
94
+ PagSeguro::Payment.checkout_payment_url("aabbcc").should == "https://pagseguro.uol.com.br/v2/checkout/payment.html?code=aabbcc"
95
+ end
96
+
93
97
  it "should have a checkout_url_with_params" do
94
98
  PagSeguro::Payment.new("mymail", "mytoken").checkout_url_with_params.should == 'https://ws.pagseguro.uol.com.br/v2/checkout?email=mymail&token=mytoken'
95
99
  end
@@ -99,5 +103,34 @@ describe PagSeguro::Payment do
99
103
  payment.stub(:code).and_return("aabbcc")
100
104
  payment.checkout_payment_url.should == "https://pagseguro.uol.com.br/v2/checkout/payment.html?code=aabbcc"
101
105
  end
106
+
107
+ describe "parse_checkout_response" do
108
+ before do
109
+ @payment = PagSeguro::Payment.new("mymail", "mytoken")
110
+ @response = double("response")
111
+ @payment.stub(:send_checkout){ @response }
112
+ end
113
+
114
+ it "should raise PagSeguro::Errors::InvalidData if response code is 400" do
115
+ @response.stub(code: 400, body: "some error description")
116
+ lambda { @payment.send(:parse_checkout_response) }.should raise_error(PagSeguro::Errors::InvalidData)
117
+ end
118
+
119
+ it "should raise PagSeguro::Errors::Unauthorized if response code is 400" do
120
+ @response.stub(code: 401)
121
+ lambda { @payment.send(:parse_checkout_response) }.should raise_error(PagSeguro::Errors::Unauthorized)
122
+ end
123
+
124
+ it "should not raise errors if response code is 200" do
125
+ @response.stub(code: 200, body: "some response body")
126
+ lambda { @payment.send(:parse_checkout_response) }.should_not raise_error
127
+ end
128
+
129
+ it "should raise PagSeguro::Errors::UnknownError if response code is not 200, 400 or 401" do
130
+ @response.stub(code: 300, body: "some response body")
131
+ lambda { @payment.send(:parse_checkout_response) }.should raise_error(PagSeguro::Errors::UnknownError)
132
+ end
133
+ end
134
+
102
135
  end
103
136
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pag_seguro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-02-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
16
- requirement: &2152283540 !ruby/object:Gem::Requirement
16
+ requirement: &2152459520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152283540
24
+ version_requirements: *2152459520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: haml
27
- requirement: &2152283060 !ruby/object:Gem::Requirement
27
+ requirement: &2152458800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2152283060
35
+ version_requirements: *2152458800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: nokogiri
38
- requirement: &2152282300 !ruby/object:Gem::Requirement
38
+ requirement: &2152458100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2152282300
46
+ version_requirements: *2152458100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rest-client
49
- requirement: &2152281580 !ruby/object:Gem::Requirement
49
+ requirement: &2152457160 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 1.6.7
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2152281580
57
+ version_requirements: *2152457160
58
58
  description:
59
59
  email:
60
60
  - stefano.diem@gmail.com