activemerchant-paymentech-orbital 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,131 @@
1
+ require 'test_helper'
2
+
3
+ class GatewayTest < Test::Unit::TestCase
4
+ context "Initializing" do
5
+ [ :login, :password, :merchant_id, :bin, :terminal_id ].each do |attr|
6
+ should "require #{attr}" do
7
+ assert_raises(ArgumentError) do
8
+ gateway(:"#{attr}" => nil)
9
+ end
10
+ end
11
+ end
12
+
13
+ should "add currency_exponent to options" do
14
+ assert_not_nil gateway.options[:currency_exponent]
15
+ end
16
+
17
+ should "add currency_code to options" do
18
+ assert_not_nil gateway.options[:currency_code]
19
+ end
20
+ end
21
+
22
+ context "Authorizing" do
23
+ setup do
24
+ @gateway = gateway
25
+ @credit_card = Factory(:credit_card)
26
+ @gateway.authorize(0, @credit_card)
27
+ end
28
+
29
+ should "assign instance variable request" do
30
+ assert_not_nil @gateway.request
31
+ end
32
+
33
+ should "instance variable request should be Request::NewOrder" do
34
+ assert @gateway.request.is_a?(ActiveMerchant::Billing::PaymentechOrbital::Request::NewOrder)
35
+ end
36
+ end
37
+
38
+ context "Purchasing" do
39
+ setup do
40
+ @gateway = gateway
41
+ @credit_card = Factory(:credit_card)
42
+ @gateway.purchase(100, @credit_card)
43
+ end
44
+
45
+ should "assign instance variable request" do
46
+ assert_not_nil @gateway.request
47
+ end
48
+
49
+ should "instance variable request should be Request::NewOrder" do
50
+ assert @gateway.request.is_a?(ActiveMerchant::Billing::PaymentechOrbital::Request::NewOrder)
51
+ end
52
+ end
53
+
54
+ context "Refunding" do
55
+ setup do
56
+ @gateway = gateway
57
+ @credit_card = Factory(:credit_card)
58
+ @gateway.refund(100, @credit_card)
59
+ end
60
+
61
+ should "assign instance variable request" do
62
+ assert_not_nil @gateway.request
63
+ end
64
+
65
+ should "instance variable request should be Request::NewOrder" do
66
+ assert @gateway.request.is_a?(ActiveMerchant::Billing::PaymentechOrbital::Request::NewOrder)
67
+ end
68
+ end
69
+
70
+ context "Interacting with a saved profile" do
71
+ setup do
72
+ @gateway = gateway
73
+ @gateway.profile(:read, nil)
74
+ end
75
+
76
+ should "assign instance variable request" do
77
+ assert_not_nil @gateway.request
78
+ end
79
+
80
+ should "instance variable request should be Request::ProfileManagement" do
81
+ assert @gateway.request.is_a?(ActiveMerchant::Billing::PaymentechOrbital::Request::ProfileManagement)
82
+ end
83
+ end
84
+
85
+ context "Voiding" do
86
+ setup do
87
+ @gateway = gateway
88
+ @gateway.void("1", "1", 100)
89
+ end
90
+
91
+ should "assign instance variable request" do
92
+ assert_not_nil @gateway.request
93
+ end
94
+
95
+ should "instance variable request should be Request::Void" do
96
+ assert @gateway.request.is_a?(ActiveMerchant::Billing::PaymentechOrbital::Request::Void)
97
+ end
98
+ end
99
+
100
+ context "Sending an end of day request" do
101
+ setup do
102
+ @gateway = gateway
103
+ @gateway.end_of_day
104
+ end
105
+
106
+ should "assign instance variable request" do
107
+ assert_not_nil @gateway.request
108
+ end
109
+
110
+ should "instance variable request should be Request::ProfileManagement" do
111
+ assert @gateway.request.is_a?(ActiveMerchant::Billing::PaymentechOrbital::Request::EndOfDay)
112
+ end
113
+ end
114
+
115
+ context "Committing" do
116
+ setup do
117
+ @gateway = gateway
118
+ @request = new_order_request
119
+ @gateway.instance_variable_set("@request", @request)
120
+ @gateway.send(:commit, "sale", @request)
121
+ end
122
+
123
+ should "assign instance variable response" do
124
+ assert_not_nil @gateway.response
125
+ end
126
+
127
+ should "assign an instance of Response::Base as response instance variable" do
128
+ assert @gateway.response.is_a?(ActiveMerchant::Billing::PaymentechOrbital::Response)
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,30 @@
1
+ require 'test_helper'
2
+
3
+ class EndOfDayTest < Test::Unit::TestCase
4
+ context "Initializing" do
5
+ setup do
6
+ @request = end_of_day_request
7
+ end
8
+
9
+ [ :options ].each do |attr|
10
+ should "set @#{attr} instance variable" do
11
+ assert_not_nil @request.send(attr)
12
+ end
13
+ end
14
+ end
15
+
16
+ context "A base request" do
17
+ setup do
18
+ @request = end_of_day_request
19
+ end
20
+
21
+ should "delegate to options" do
22
+ assert_delegates_to_ostruct(@request, @request.options, *[
23
+ :login, :password, :merchant_id,
24
+ :bin, :terminal_id, :currency_code,
25
+ :currency_exponent, :customer_ref_num,
26
+ :order_id
27
+ ])
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,40 @@
1
+ require 'test_helper'
2
+
3
+ class NewOrderTest < Test::Unit::TestCase
4
+ context "Initializing" do
5
+ setup do
6
+ @request = new_order_request
7
+ end
8
+
9
+ [ :message_type, :money, :credit_card, :options ].each do |attr|
10
+ should "set @#{attr} instance variable" do
11
+ assert_not_nil @request.send(attr)
12
+ end
13
+ end
14
+ end
15
+
16
+ context "A base request" do
17
+ setup do
18
+ @request = new_order_request
19
+ end
20
+
21
+ should "delegate to options" do
22
+ assert_delegates_to_ostruct(@request, @request.options, *[
23
+ :login, :password, :merchant_id, :bin, :terminal_id, :currency_code,
24
+ :currency_exponent, :customer_ref_num, :order_id,
25
+ :industry_type, :mb_type, :recurring_start_date,
26
+ :recurring_end_date, :recurring_end_date_flag,
27
+ :recurring_max_billings, :recurring_frequency,
28
+ :deferred_bill_date, :soft_descriptors
29
+ ])
30
+ end
31
+
32
+ should "be recurring if industry_type is RC" do
33
+ assert new_order_request(:industry_type => "RC").recurring?
34
+ end
35
+
36
+ should "not be recurring if industry_type is RC" do
37
+ assert !new_order_request(:industry_type => "EC").recurring?
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ class ProfileManagementTest < Test::Unit::TestCase
4
+ context "Initializing" do
5
+ setup do
6
+ @request = profile_management_request
7
+ end
8
+
9
+ [ :action, :credit_card, :options ].each do |attr|
10
+ should "set @#{attr} instance variable" do
11
+ assert_not_nil @request.send(attr)
12
+ end
13
+ end
14
+ end
15
+
16
+ context "A base request" do
17
+ setup do
18
+ @request = profile_management_request
19
+ end
20
+
21
+ should "delegate to options" do
22
+ assert_delegates_to_ostruct(@request, @request.options, *[
23
+ :login, :password, :merchant_id,
24
+ :bin, :terminal_id, :currency_code,
25
+ :currency_exponent, :customer_ref_num,
26
+ :order_id
27
+ ])
28
+ end
29
+
30
+ should "return a different customer profile action based its action instance variable" do
31
+ assert_equal "C", profile_management_request(:create).send(:customer_profile_action)
32
+ assert_equal "R", profile_management_request(:retrieve).send(:customer_profile_action)
33
+ assert_equal "U", profile_management_request(:update).send(:customer_profile_action)
34
+ assert_equal "D", profile_management_request(:delete).send(:customer_profile_action)
35
+ end
36
+
37
+ should "be writing? when action is create or update" do
38
+ assert profile_management_request(:create).send(:writing?)
39
+ assert profile_management_request(:update).send(:writing?)
40
+ end
41
+
42
+ should "not be writing? when action is retrieve or delete" do
43
+ assert !profile_management_request(:retrieve).send(:writing?)
44
+ assert !profile_management_request(:delete).send(:writing?)
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,28 @@
1
+ require 'test_helper'
2
+
3
+ class VoidTest < Test::Unit::TestCase
4
+ context "Initializing" do
5
+ setup do
6
+ @request = void_request
7
+ end
8
+
9
+ [ :tx_ref_num, :tx_ref_idx, :money, :options ].each do |attr|
10
+ should "set @#{attr} instance variable" do
11
+ assert_not_nil @request.send(attr)
12
+ end
13
+ end
14
+ end
15
+
16
+ context "A base request" do
17
+ setup do
18
+ @request = void_request
19
+ end
20
+
21
+ should "delegate to options" do
22
+ assert_delegates_to_ostruct(@request, @request.options, *[
23
+ :login, :password, :merchant_id, :bin, :terminal_id, :currency_code,
24
+ :currency_exponent, :customer_ref_num, :order_id
25
+ ])
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ require 'test_helper'
2
+
3
+ class RequestTest < Test::Unit::TestCase
4
+ context "Initializing" do
5
+ setup do
6
+ @request = ActiveMerchant::Billing::PaymentechOrbital::Request::Base.new(
7
+ Options(:request_options)
8
+ )
9
+ end
10
+
11
+ should "set @options instance variable" do
12
+ assert_not_nil @request.options
13
+ end
14
+ end
15
+
16
+ context "A base request" do
17
+ setup do
18
+ @request = base_request
19
+ end
20
+
21
+ should "delegate to options" do
22
+ assert_delegates_to_ostruct(@request, @request.options, *[
23
+ :login, :password, :merchant_id, :bin, :terminal_id, :currency_code,
24
+ :currency_exponent, :customer_ref_num, :order_id
25
+ ])
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'activemerchant-paymentech-orbital'
4
+ require 'options'
5
+ require 'mocks/active_merchant/billing/gateway'
6
+ require 'test/unit'
7
+ require 'shoulda'
8
+ require 'factory_girl'
9
+ require 'rr'
10
+
11
+ ActiveMerchant::Billing::Base.mode = :test
12
+
13
+ class Test::Unit::TestCase
14
+ include RR::Adapters::TestUnit
15
+
16
+ def assert_delegates_to_ostruct(delegator, delegatee, *methods)
17
+ methods.each do |method|
18
+ mock(delegatee).method_missing(method)
19
+ delegator.send(:"#{method}")
20
+ end
21
+ end
22
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activemerchant-paymentech-orbital
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - John Corrigan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-03 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activemerchant
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.4.2
24
+ version:
25
+ description: A gem to provide a ruby interface for Chase Paymentech Orbital payment gateway.
26
+ email: john@mintdigital.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - LICENSE
33
+ - README.rdoc
34
+ files:
35
+ - .document
36
+ - .gitignore
37
+ - LICENSE
38
+ - README.rdoc
39
+ - Rakefile
40
+ - VERSION
41
+ - activemerchant-paymentech-orbital.gemspec
42
+ - lib/active_merchant/billing/paymentech_orbital.rb
43
+ - lib/active_merchant/billing/paymentech_orbital/request.rb
44
+ - lib/active_merchant/billing/paymentech_orbital/request/end_of_day.rb
45
+ - lib/active_merchant/billing/paymentech_orbital/request/new_order.rb
46
+ - lib/active_merchant/billing/paymentech_orbital/request/profile_management.rb
47
+ - lib/active_merchant/billing/paymentech_orbital/request/void.rb
48
+ - lib/active_merchant/billing/paymentech_orbital/response.rb
49
+ - lib/activemerchant-paymentech-orbital.rb
50
+ - test/activemerchant-paymentech-orbital_test.rb
51
+ - test/factories.rb
52
+ - test/mocks/active_merchant/billing/gateway.rb
53
+ - test/options.rb
54
+ - test/payment_orbital/gateway_test.rb
55
+ - test/payment_orbital/request/end_of_day_test.rb
56
+ - test/payment_orbital/request/new_order_test.rb
57
+ - test/payment_orbital/request/profile_management_test.rb
58
+ - test/payment_orbital/request/void_test.rb
59
+ - test/payment_orbital/request_test.rb
60
+ - test/test_helper.rb
61
+ has_rdoc: true
62
+ homepage: http://github.com/johnideal/activemerchant-paymentech-orbital
63
+ licenses: []
64
+
65
+ post_install_message:
66
+ rdoc_options:
67
+ - --charset=UTF-8
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: "0"
75
+ version:
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: "0"
81
+ version:
82
+ requirements: []
83
+
84
+ rubyforge_project:
85
+ rubygems_version: 1.3.5
86
+ signing_key:
87
+ specification_version: 3
88
+ summary: A gem to provide a ruby interface for Chase Paymentech Orbital payment gateway.
89
+ test_files:
90
+ - test/activemerchant-paymentech-orbital_test.rb
91
+ - test/factories.rb
92
+ - test/mocks/active_merchant/billing/gateway.rb
93
+ - test/options.rb
94
+ - test/payment_orbital/gateway_test.rb
95
+ - test/payment_orbital/request/end_of_day_test.rb
96
+ - test/payment_orbital/request/new_order_test.rb
97
+ - test/payment_orbital/request/profile_management_test.rb
98
+ - test/payment_orbital/request/void_test.rb
99
+ - test/payment_orbital/request_test.rb
100
+ - test/test_helper.rb