Skip to content

Commit 7202bad

Browse files
committed
[bang] Adds methods for invoices and subscriptions
1 parent 23c371d commit 7202bad

File tree

4 files changed

+41
-4
lines changed

4 files changed

+41
-4
lines changed

lib/razorpay/invoice.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,24 @@ def edit(options = {})
3737
self.class.edit id, options
3838
end
3939

40+
def edit!(options = {})
41+
with_a_bang { edit options }
42+
end
43+
4044
def issue
4145
self.class.issue id
4246
end
4347

48+
def issue!
49+
with_a_bang { issue }
50+
end
51+
4452
def cancel
4553
self.class.cancel id
4654
end
55+
56+
def cancel!
57+
with_a_bang { cancel }
58+
end
4759
end
4860
end

lib/razorpay/subscription.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,9 @@ def self.cancel(id, options = {})
2828
def cancel(options = {})
2929
self.class.cancel id, options
3030
end
31+
32+
def cancel!(options = {})
33+
with_a_bang { cancel options }
34+
end
3135
end
3236
end

test/razorpay/test_invoice.rb

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ def test_invoice_can_be_issued_by_invoice_instance
6666
assert_invoice_details(invoice)
6767
end
6868

69+
def test_invoice_can_be_issued_by_invoice_instance!
70+
stub_post(%r{invoices\/#{@invoice_id}\/issue$}, 'issue_invoice', {})
71+
invoice = Razorpay::Invoice.fetch(@invoice_id)
72+
invoice.issue!
73+
assert_equal 'issued', invoice.status
74+
refute_nil invoice.issued_at
75+
end
76+
6977
def test_invoice_can_be_cancelled_by_invoice_id
7078
stub_post(%r{invoices\/#{@invoice_id}\/cancel$}, 'cancel_invoice', {})
7179
invoice = Razorpay::Invoice.cancel(@invoice_id)
@@ -90,15 +98,21 @@ def test_invoice_can_be_cancelled_by_invoice_instance
9098
assert_invoice_details(invoice)
9199
end
92100

93-
def test_edit_invoice
101+
def test_invoice_can_be_cancelled_by_invoice_instance!
102+
stub_post(%r{invoices\/#{@invoice_id}\/cancel$}, 'cancel_invoice', {})
103+
invoice = Razorpay::Invoice.fetch(@invoice_id)
104+
invoice.cancel!
105+
assert_equal 'cancelled', invoice.status
106+
refute_nil invoice.cancelled_at
107+
end
108+
109+
def test_edit_invoice!
94110
invoice = Razorpay::Invoice.fetch(@invoice_id)
95111
assert_instance_of Razorpay::Invoice, invoice, 'invoice not an instance of Razorpay::Invoice class'
96112
assert_nil invoice.invoice_number
97-
98113
update_invoice_data = { invoice_number: '12345678' }
99114
stub_patch(%r{invoices/#{@invoice_id}$}, 'update_invoice', update_invoice_data)
100-
101-
invoice = invoice.edit(update_invoice_data)
115+
invoice.edit!(update_invoice_data)
102116
assert_instance_of Razorpay::Invoice, invoice, 'invoice not an instance of Razorpay::Invoice class'
103117
refute_nil invoice.invoice_number
104118
end

test/razorpay/test_subscription.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,13 @@ def test_subscription_can_be_cancelled_by_subscription_instance
7979
assert_subscription_details(subscription)
8080
end
8181

82+
def test_subscription_can_be_cancelled_by_subscription_instance!
83+
stub_post(%r{subscriptions\/#{@subscription_id}\/cancel$}, 'cancel_subscription', {})
84+
subscription = Razorpay::Subscription.fetch(@subscription_id)
85+
subscription.cancel!
86+
assert_equal 'cancelled', subscription.status
87+
end
88+
8289
private
8390

8491
def assert_subscription_details(subscription)

0 commit comments

Comments
 (0)