catarse_pagarme 2.5.1 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -257
  3. data/app/controllers/catarse_pagarme/application_controller.rb +6 -7
  4. data/app/controllers/catarse_pagarme/credit_cards_controller.rb +5 -5
  5. data/app/controllers/catarse_pagarme/notifications_controller.rb +6 -6
  6. data/app/controllers/catarse_pagarme/slip_controller.rb +6 -6
  7. data/app/helpers/catarse_pagarme/application_helper.rb +3 -3
  8. data/app/models/catarse_pagarme/credit_card_transaction.rb +1 -1
  9. data/app/models/catarse_pagarme/fee_calculator_concern.rb +12 -12
  10. data/app/models/catarse_pagarme/payment_concern.rb +9 -0
  11. data/app/models/catarse_pagarme/{contribution_delegator.rb → payment_delegator.rb} +17 -17
  12. data/app/models/catarse_pagarme/slip_transaction.rb +3 -2
  13. data/app/models/catarse_pagarme/transaction_base.rb +14 -13
  14. data/lib/catarse_pagarme/engine.rb +1 -1
  15. data/lib/catarse_pagarme/version.rb +1 -1
  16. data/spec/controllers/catarse_pagarme/credit_cards_controller_spec.rb +5 -5
  17. data/spec/controllers/catarse_pagarme/notifications_controller_spec.rb +11 -6
  18. data/spec/controllers/catarse_pagarme/slip_controller_spec.rb +6 -6
  19. data/spec/dummy/app/models/contribution.rb +1 -24
  20. data/spec/dummy/app/models/payment.rb +55 -0
  21. data/spec/dummy/app/models/payment_engines.rb +7 -0
  22. data/spec/helpers/catarse_pagarme/application_helper_spec.rb +2 -2
  23. data/spec/models/catarse_pagarme/credit_card_transaction_spec.rb +23 -23
  24. data/spec/models/catarse_pagarme/{contribution_delegator_spec.rb → payment_delegator_spec.rb} +28 -55
  25. data/spec/models/catarse_pagarme/slip_transaction_spec.rb +35 -29
  26. data/spec/support/factories.rb +16 -6
  27. metadata +8 -6
  28. data/app/models/catarse_pagarme/contribution_concern.rb +0 -9
@@ -1,17 +1,18 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe CatarsePagarme::ContributionDelegator do
3
+ describe CatarsePagarme::PaymentDelegator do
4
4
  let(:contribution) { create(:contribution, value: 10) }
5
- let(:delegator) { contribution.pagarme_delegator }
5
+ let(:payment) { contribution.payments.first }
6
+ let(:delegator) { payment.pagarme_delegator }
6
7
 
7
- context "instance of CatarsePagarme::ContributionDelegator" do
8
- it { expect(delegator).to be_a CatarsePagarme::ContributionDelegator }
8
+ context "instance of CatarsePagarme::paymentDelegator" do
9
+ it { expect(delegator).to be_a CatarsePagarme::PaymentDelegator }
9
10
  end
10
11
 
11
12
  context "#value_for_transaction" do
12
13
  subject { delegator.value_for_transaction }
13
14
 
14
- it "should convert contribution value to pagarme value format" do
15
+ it "should convert payment value to pagarme value format" do
15
16
  expect(subject).to eq(1000)
16
17
  end
17
18
  end
@@ -24,7 +25,7 @@ describe CatarsePagarme::ContributionDelegator do
24
25
  CatarsePagarme.configuration.stub(:interest_rate).and_return(1.8)
25
26
  end
26
27
 
27
- it "should return the contribution value with installments tax" do
28
+ it "should return the payment value with installments tax" do
28
29
  expect(subject).to eq(1057)
29
30
  end
30
31
  end
@@ -49,26 +50,20 @@ describe CatarsePagarme::ContributionDelegator do
49
50
  delegator.stub(:transaction).and_return(fake_transaction)
50
51
  end
51
52
 
52
- context 'when choice is nil' do
53
- let(:contribution) { create(:contribution, value: 10, payment_choice: nil) }
54
- subject { delegator.get_fee }
55
- it { expect(subject).to eq(nil) }
56
- end
57
-
58
53
  context 'when choice is credit card and acquirer_name is nil' do
59
- let(:contribution) { create(:contribution, value: 10, payment_choice: CatarsePagarme::PaymentType::CREDIT_CARD, acquirer_name: nil) }
54
+ let(:payment) { create(:payment, value: 10, payment_method: CatarsePagarme::PaymentType::CREDIT_CARD, gateway_data: {acquirer_name: nil}) }
60
55
  subject { delegator.get_fee }
61
56
  it { expect(subject).to eq(nil) }
62
57
  end
63
58
 
64
59
  context 'when choice is slip' do
65
- let(:contribution) { create(:contribution, value: 10, payment_choice: CatarsePagarme::PaymentType::SLIP, acquirer_name: nil) }
60
+ let(:payment) { create(:payment, value: 10, payment_method: CatarsePagarme::PaymentType::SLIP, gateway_data: {acquirer_name: nil}) }
66
61
  subject { delegator.get_fee }
67
62
  it { expect(subject).to eq(2.00) }
68
63
  end
69
64
 
70
65
  context 'when choice is credit card' do
71
- let(:contribution) { create(:contribution, value: 10, payment_choice: CatarsePagarme::PaymentType::CREDIT_CARD, acquirer_name: 'stone', card_brand: 'visa', installments: 1) }
66
+ let(:payment) { create(:payment, value: 10, payment_method: CatarsePagarme::PaymentType::CREDIT_CARD, gateway_data: {acquirer_name: 'stone', card_brand: 'visa'}, installments: 1) }
72
67
  subject { delegator.get_fee }
73
68
  it { expect(subject).to eq(0.76) }
74
69
  end
@@ -88,41 +83,19 @@ describe CatarsePagarme::ContributionDelegator do
88
83
 
89
84
  %w(paid authorized).each do |status|
90
85
  context "when status is #{status}" do
91
- context "and contribution is already confirmed" do
92
- before do
93
- contribution.stub(:confirmed?).and_return(true)
94
- contribution.should_not_receive(:confirm)
95
- end
96
-
97
- it { delegator.change_status_by_transaction(status) }
98
- end
99
-
100
- context "and contribution is not confirmed" do
101
- before do
102
- contribution.stub(:confirmed?).and_return(false)
103
- contribution.should_receive(:confirm)
104
- end
105
-
106
- it { delegator.change_status_by_transaction(status) }
107
- end
108
- end
109
- end
110
-
111
- %w(waiting_payment processing).each do |status|
112
- context "when status is #{status}" do
113
- context "and contribution is already waiting confirmation" do
86
+ context "and payment is already paid" do
114
87
  before do
115
- contribution.stub(:waiting_confirmation?).and_return(true)
116
- contribution.should_not_receive(:waiting)
88
+ payment.stub(:paid?).and_return(true)
89
+ payment.should_not_receive(:pay)
117
90
  end
118
91
 
119
92
  it { delegator.change_status_by_transaction(status) }
120
93
  end
121
94
 
122
- context "and contribution is pending" do
95
+ context "and payment is not paid" do
123
96
  before do
124
- contribution.stub(:waiting_confirmation?).and_return(false)
125
- contribution.should_receive(:waiting)
97
+ payment.stub(:paid?).and_return(false)
98
+ payment.should_receive(:pay)
126
99
  end
127
100
 
128
101
  it { delegator.change_status_by_transaction(status) }
@@ -131,19 +104,19 @@ describe CatarsePagarme::ContributionDelegator do
131
104
  end
132
105
 
133
106
  context "when status is refunded" do
134
- context "and contribution is already refunded" do
107
+ context "and payment is already refunded" do
135
108
  before do
136
- contribution.stub(:refunded?).and_return(true)
137
- contribution.should_not_receive(:refund)
109
+ payment.stub(:refunded?).and_return(true)
110
+ payment.should_not_receive(:refund)
138
111
  end
139
112
 
140
113
  it { delegator.change_status_by_transaction('refunded') }
141
114
  end
142
115
 
143
- context "and contribution is not refunded" do
116
+ context "and payment is not refunded" do
144
117
  before do
145
- contribution.stub(:refunded?).and_return(false)
146
- contribution.should_receive(:refund)
118
+ payment.stub(:refunded?).and_return(false)
119
+ payment.should_receive(:refund)
147
120
  end
148
121
 
149
122
  it { delegator.change_status_by_transaction('refunded') }
@@ -151,19 +124,19 @@ describe CatarsePagarme::ContributionDelegator do
151
124
  end
152
125
 
153
126
  context "when status is refused" do
154
- context "and contribution is already canceled" do
127
+ context "and payment is already canceled" do
155
128
  before do
156
- contribution.stub(:canceled?).and_return(true)
157
- contribution.should_not_receive(:cancel)
129
+ payment.stub(:refused?).and_return(true)
130
+ payment.should_not_receive(:refuse)
158
131
  end
159
132
 
160
133
  it { delegator.change_status_by_transaction('refused') }
161
134
  end
162
135
 
163
- context "and contribution is not canceled" do
136
+ context "and payment is not refused" do
164
137
  before do
165
- contribution.stub(:canceled?).and_return(false)
166
- contribution.should_receive(:cancel)
138
+ payment.stub(:refused?).and_return(false)
139
+ payment.should_receive(:refuse)
167
140
  end
168
141
 
169
142
  it { delegator.change_status_by_transaction('refused') }
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe CatarsePagarme::SlipTransaction do
4
- let(:contribution) { create(:contribution, value: 100) }
5
- let(:pagarme_transaction) {
6
- double({
4
+ let(:payment) { create(:payment, value: 100) }
5
+ let(:pagarme_transaction_attributes) {
6
+ {
7
7
  id: 'abcd',
8
8
  charge: true,
9
9
  status: 'paid',
@@ -12,13 +12,18 @@ describe CatarsePagarme::SlipTransaction do
12
12
  acquirer_name: 'pagarme',
13
13
  tid: '123123',
14
14
  card_brand: nil
15
- })
15
+ }
16
16
  }
17
+
18
+ let(:pagarme_transaction) {
19
+ double(pagarme_transaction_attributes)
20
+ }
21
+
17
22
  let(:valid_attributes) do
18
23
  {
19
24
  slip_payment: {
20
25
  payment_method: 'boleto',
21
- amount: contribution.pagarme_delegator.value_for_transaction,
26
+ amount: payment.pagarme_delegator.value_for_transaction,
22
27
  postback_url: 'http://test.foo'
23
28
  }, user: {
24
29
  bank_account_attributes: {
@@ -34,7 +39,7 @@ describe CatarsePagarme::SlipTransaction do
34
39
  {
35
40
  slip_payment: {
36
41
  payment_method: 'boleto',
37
- amount: contribution.pagarme_delegator.value_for_transaction,
42
+ amount: payment.pagarme_delegator.value_for_transaction,
38
43
  postback_url: 'http://test.foo'
39
44
  }, user: {
40
45
  bank_account_attributes: {
@@ -44,22 +49,23 @@ describe CatarsePagarme::SlipTransaction do
44
49
  }
45
50
  end
46
51
 
47
- let(:slip_transaction) { CatarsePagarme::SlipTransaction.new(valid_attributes, contribution) }
52
+ let(:slip_transaction) { CatarsePagarme::SlipTransaction.new(valid_attributes, payment) }
48
53
 
49
54
  before do
50
55
  PagarMe::Transaction.stub(:new).and_return(pagarme_transaction)
51
- CatarsePagarme::ContributionDelegator.any_instance.stub(:change_status_by_transaction).and_return(true)
56
+ pagarme_transaction.stub(:to_json).and_return(pagarme_transaction_attributes.to_json)
57
+ CatarsePagarme::PaymentDelegator.any_instance.stub(:change_status_by_transaction).and_return(true)
52
58
  end
53
59
 
54
60
  context "#user" do
55
61
  subject { slip_transaction.user }
56
- it { expect(subject).to eq(contribution.user) }
62
+ it { expect(subject).to eq(payment.user) }
57
63
  end
58
64
 
59
65
  context "#charge!" do
60
66
  context "with invalid attributes" do
61
67
  let(:slip_transaction) {
62
- CatarsePagarme::SlipTransaction.new(invalid_attributes, contribution)
68
+ CatarsePagarme::SlipTransaction.new(invalid_attributes, payment)
63
69
  }
64
70
 
65
71
  it "should raises an error" do
@@ -73,44 +79,44 @@ describe CatarsePagarme::SlipTransaction do
73
79
  before do
74
80
  slip_transaction.should_receive(:update_user_bank_account).and_call_original
75
81
  slip_transaction.user.should_receive(:update_attributes).and_return(true)
76
- contribution.should_receive(:update_attributes).at_least(1).and_call_original
82
+ payment.should_receive(:update_attributes).at_least(1).and_call_original
77
83
  PagarMe::Transaction.should_receive(:find_by_id).with(pagarme_transaction.id).and_return(pagarme_transaction)
78
- CatarsePagarme::ContributionDelegator.any_instance.should_receive(:change_status_by_transaction).with('paid')
84
+ CatarsePagarme::PaymentDelegator.any_instance.should_receive(:change_status_by_transaction).with('paid')
79
85
 
80
86
  slip_transaction.charge!
81
- contribution.reload
87
+ payment.reload
82
88
  end
83
89
 
84
- it "should update contribution payment_id" do
85
- expect(contribution.payment_id).to eq('abcd')
90
+ it "should update payment payment_id" do
91
+ expect(payment.gateway_id).to eq('abcd')
86
92
  end
87
93
 
88
- it "should update contribution payment_service_fee" do
89
- expect(contribution.payment_service_fee).to eq(0.0)
94
+ it "should update payment payment_service_fee" do
95
+ expect(payment.gateway_fee).to eq(0.0)
90
96
  end
91
97
 
92
- it "should update contribution payment_method" do
93
- expect(contribution.payment_method).to eq('Pagarme')
98
+ it "should update payment payment_method" do
99
+ expect(payment.gateway).to eq('Pagarme')
94
100
  end
95
101
 
96
- it "should update contribution slip_url" do
97
- expect(contribution.slip_url).to eq('boleto url')
102
+ it "should update payment slip_url" do
103
+ expect(payment.gateway_data["boleto_url"]).to eq('boleto url')
98
104
  end
99
105
 
100
- it "should update contribution payment_choice" do
101
- expect(contribution.payment_choice).to eq(CatarsePagarme::PaymentType::SLIP)
106
+ it "should update payment payment_choice" do
107
+ expect(payment.payment_method).to eq(CatarsePagarme::PaymentType::SLIP)
102
108
  end
103
109
 
104
- it "should update contribution acquirer_name" do
105
- expect(contribution.acquirer_name).to eq('pagarme')
110
+ it "should update payment acquirer_name" do
111
+ expect(payment.gateway_data["acquirer_name"]).to eq('pagarme')
106
112
  end
107
113
 
108
- it "should update contribution acquirer_tid" do
109
- expect(contribution.acquirer_tid).to eq('123123')
114
+ it "should update payment acquirer_tid" do
115
+ expect(payment.gateway_data["acquirer_tid"]).to eq('123123')
110
116
  end
111
117
 
112
- it "should update contribution installment_value" do
113
- expect(contribution.installment_value).to_not be_nil
118
+ it "should update payment installment_value" do
119
+ expect(payment.installment_value).to_not be_nil
114
120
  end
115
121
  end
116
122
  end
@@ -18,7 +18,6 @@ FactoryGirl.define do
18
18
  factory :user do |f|
19
19
  f.name "Foo bar"
20
20
  f.email { generate(:email) }
21
- f.bio "This is Foo bar's biography."
22
21
  end
23
22
 
24
23
  factory :credi_card do |f|
@@ -52,7 +51,7 @@ FactoryGirl.define do
52
51
  f.permalink { generate(:permalink) }
53
52
  f.association :user, factory: :user
54
53
  f.association :category, factory: :category
55
- f.about "Foo bar"
54
+ f.about_html "Foo bar"
56
55
  f.headline "Foo bar"
57
56
  f.goal 10000
58
57
  f.online_date Time.now
@@ -64,11 +63,22 @@ FactoryGirl.define do
64
63
  factory :contribution do |f|
65
64
  f.association :project, factory: :project
66
65
  f.association :user, factory: :user
67
- f.confirmed_at Time.now
68
66
  f.value 10.00
69
- f.state 'confirmed'
70
- f.credits false
71
- f.payment_id '1.2.3'
67
+ after :create do |contribution|
68
+ create(:payment, paid_at: Time.now, gateway_id: '1.2.3', state: 'paid', value: contribution.value, contribution: contribution)
69
+ end
70
+ end
71
+
72
+ factory :payment do |f|
73
+ f.association :contribution
74
+ f.gateway 'pagarme'
75
+ f.value 10.00
76
+ f.state 'paid'
77
+ f.installment_value 10.00
78
+ f.payment_method "CartaoDeCredito"
79
+ after :build do |payment|
80
+ payment.gateway = 'pagarme'
81
+ end
72
82
  end
73
83
  end
74
84
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: catarse_pagarme
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.1
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antônio Roberto Silva
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-25 00:00:00.000000000 Z
12
+ date: 2015-04-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -109,10 +109,10 @@ files:
109
109
  - app/controllers/catarse_pagarme/slip_controller.rb
110
110
  - app/helpers/catarse_pagarme/application_helper.rb
111
111
  - app/models/catarse_pagarme/bank_account_concern.rb
112
- - app/models/catarse_pagarme/contribution_concern.rb
113
- - app/models/catarse_pagarme/contribution_delegator.rb
114
112
  - app/models/catarse_pagarme/credit_card_transaction.rb
115
113
  - app/models/catarse_pagarme/fee_calculator_concern.rb
114
+ - app/models/catarse_pagarme/payment_concern.rb
115
+ - app/models/catarse_pagarme/payment_delegator.rb
116
116
  - app/models/catarse_pagarme/payment_type.rb
117
117
  - app/models/catarse_pagarme/slip_transaction.rb
118
118
  - app/models/catarse_pagarme/transaction_base.rb
@@ -149,6 +149,7 @@ files:
149
149
  - spec/dummy/app/models/concerns/.keep
150
150
  - spec/dummy/app/models/contribution.rb
151
151
  - spec/dummy/app/models/credit_card.rb
152
+ - spec/dummy/app/models/payment.rb
152
153
  - spec/dummy/app/models/payment_engines.rb
153
154
  - spec/dummy/app/models/payment_notification.rb
154
155
  - spec/dummy/app/models/project.rb
@@ -186,8 +187,8 @@ files:
186
187
  - spec/dummy/public/favicon.ico
187
188
  - spec/helpers/catarse_pagarme/application_helper_spec.rb
188
189
  - spec/models/catarse_pagarme/bank_account_concern_spec.rb
189
- - spec/models/catarse_pagarme/contribution_delegator_spec.rb
190
190
  - spec/models/catarse_pagarme/credit_card_transaction_spec.rb
191
+ - spec/models/catarse_pagarme/payment_delegator_spec.rb
191
192
  - spec/models/catarse_pagarme/slip_transaction_spec.rb
192
193
  - spec/spec_helper.rb
193
194
  - spec/support/factories.rb
@@ -235,6 +236,7 @@ test_files:
235
236
  - spec/dummy/app/models/concerns/.keep
236
237
  - spec/dummy/app/models/contribution.rb
237
238
  - spec/dummy/app/models/credit_card.rb
239
+ - spec/dummy/app/models/payment.rb
238
240
  - spec/dummy/app/models/payment_engines.rb
239
241
  - spec/dummy/app/models/payment_notification.rb
240
242
  - spec/dummy/app/models/project.rb
@@ -272,8 +274,8 @@ test_files:
272
274
  - spec/dummy/public/favicon.ico
273
275
  - spec/helpers/catarse_pagarme/application_helper_spec.rb
274
276
  - spec/models/catarse_pagarme/bank_account_concern_spec.rb
275
- - spec/models/catarse_pagarme/contribution_delegator_spec.rb
276
277
  - spec/models/catarse_pagarme/credit_card_transaction_spec.rb
278
+ - spec/models/catarse_pagarme/payment_delegator_spec.rb
277
279
  - spec/models/catarse_pagarme/slip_transaction_spec.rb
278
280
  - spec/spec_helper.rb
279
281
  - spec/support/factories.rb
@@ -1,9 +0,0 @@
1
- module CatarsePagarme::ContributionConcern
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- def pagarme_delegator
6
- CatarsePagarme::ContributionDelegator.new(self)
7
- end
8
- end
9
- end