stone_ecommerce 1.0.3 → 1.2.3

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gateway/Address/billing_address.rb +25 -23
  3. data/lib/gateway/Address/buyer_address.rb +28 -25
  4. data/lib/gateway/Address/delivery_address.rb +24 -22
  5. data/lib/gateway/BoletoTransaction/boleto_transaction.rb +28 -30
  6. data/lib/gateway/BoletoTransaction/boleto_transaction_options.rb +14 -11
  7. data/lib/gateway/BoletoTransaction/boleto_transaction_report_file.rb +20 -17
  8. data/lib/gateway/CreditCardTransaction/credit_card.rb +19 -18
  9. data/lib/gateway/CreditCardTransaction/credit_card_transaction.rb +21 -19
  10. data/lib/gateway/CreditCardTransaction/credit_card_transaction_options.rb +17 -15
  11. data/lib/gateway/CreditCardTransaction/credit_card_transaction_report_file.rb +29 -26
  12. data/lib/gateway/CreditCardTransaction/manage_credit_card_transaction.rb +11 -8
  13. data/lib/gateway/CreditCardTransaction/retry_sale_credit_card_transaction.rb +10 -8
  14. data/lib/gateway/Gateway.rb +514 -334
  15. data/lib/gateway/InstantBuyData/create_instant_buy_data_request.rb +31 -0
  16. data/lib/gateway/InstantBuyData/update_instant_buy_data_request.rb +11 -0
  17. data/lib/gateway/Merchant/merchant.rb +10 -8
  18. data/lib/gateway/OnlineDebit/online_debit_transaction_report_file.rb +19 -16
  19. data/lib/gateway/Order/order.rb +11 -8
  20. data/lib/gateway/Order/order_transaction_report_file.rb +8 -5
  21. data/lib/gateway/Parsers/boleto_transaction_parser.rb +28 -25
  22. data/lib/gateway/Parsers/credit_card_transaction_parser.rb +37 -34
  23. data/lib/gateway/Parsers/header_parser.rb +13 -10
  24. data/lib/gateway/Parsers/online_debit_transaction_parser.rb +26 -23
  25. data/lib/gateway/Parsers/trailer_parser.rb +13 -11
  26. data/lib/gateway/Person/buyer.rb +22 -22
  27. data/lib/gateway/Person/create_buyer_request.rb +23 -0
  28. data/lib/gateway/Person/person.rb +34 -32
  29. data/lib/gateway/Recurrency/recurrency.rb +18 -16
  30. data/lib/gateway/Sale/create_sale_request.rb +26 -24
  31. data/lib/gateway/Sale/manage_sale_request.rb +13 -11
  32. data/lib/gateway/Sale/query_sale_request.rb +27 -25
  33. data/lib/gateway/Sale/request_data.rb +16 -14
  34. data/lib/gateway/Sale/retry_sale_options.rb +12 -10
  35. data/lib/gateway/Sale/retry_sale_request.rb +15 -14
  36. data/lib/gateway/Sale/sale_data.rb +0 -2
  37. data/lib/gateway/Sale/sale_order_data.rb +14 -12
  38. data/lib/gateway/SalesOption.rb +13 -11
  39. data/lib/gateway/ShoppingCart/shopping_cart.rb +18 -16
  40. data/lib/gateway/ShoppingCart/shopping_cart_item.rb +15 -13
  41. data/lib/gateway/Trailer.rb +8 -5
  42. data/lib/gateway/header.rb +7 -4
  43. data/lib/gateway/post_notification.rb +23 -20
  44. data/lib/gateway/transaction_report_file.rb +43 -40
  45. data/lib/stone_ecommerce.rb +6 -14
  46. data/spec/integration/gateway_spec.rb +376 -85
  47. data/spec/spec_helper.rb +96 -96
  48. data/stone_ecommerce.gemspec +2 -2
  49. metadata +6 -20
  50. data/lib/gateway/AntiFraud/anti_fraud_analysis_result.rb +0 -47
  51. data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_data.rb +0 -51
  52. data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_history_data.rb +0 -41
  53. data/lib/gateway/BaseRequest.rb +0 -11
  54. data/lib/gateway/BaseResponse.rb +0 -17
  55. data/lib/gateway/BoletoTransaction/boleto_transaction_data.rb +0 -44
  56. data/lib/gateway/BoletoTransaction/boleto_transaction_result.rb +0 -35
  57. data/lib/gateway/CreditCardTransaction/credit_card_transaction_data.rb +0 -104
  58. data/lib/gateway/ErrorItem.rb +0 -17
  59. data/lib/gateway/ErrorReport.rb +0 -18
  60. data/lib/gateway/InstantBuy/credit_card_data.rb +0 -41
  61. data/lib/gateway/InstantBuy/get_instant_buy_data_response.rb +0 -18
  62. data/lib/gateway/Sale/create_sale_response.rb +0 -25
  63. data/lib/gateway/Sale/manage_sale_response.rb +0 -15
  64. data/lib/gateway/Sale/query_sale_response.rb +0 -18
  65. data/lib/gateway/Sale/retry_sale_response.rb +0 -14
  66. data/lib/gateway/address.rb +0 -25
@@ -1,17 +1,19 @@
1
- class SalesOption
1
+ module Gateway
2
2
 
3
- attr_accessor :IsAntiFraudEnabled
3
+ class SalesOption
4
4
 
5
- attr_accessor :AntiFraudServiceCode
5
+ attr_accessor :IsAntiFraudEnabled
6
6
 
7
- attr_accessor :Retries
7
+ attr_accessor :AntiFraudServiceCode
8
8
 
9
- attr_accessor :CurrencyIso
9
+ attr_accessor :Retries
10
10
 
11
- def to_json
12
- hash = {}
13
- instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
14
- hash
15
- end
11
+ attr_accessor :CurrencyIso
16
12
 
17
- end
13
+ def to_json
14
+ hash = {}
15
+ instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
16
+ hash
17
+ end
18
+ end
19
+ end
@@ -1,26 +1,28 @@
1
- class ShoppingCartCollection
1
+ module Gateway
2
2
 
3
- attr_accessor :FreighCostInCents
3
+ class ShoppingCartCollection
4
4
 
5
- attr_accessor :EstimatedDeliveryDate
5
+ attr_accessor :FreighCostInCents
6
6
 
7
- attr_accessor :DeliveryDeadline
7
+ attr_accessor :EstimatedDeliveryDate
8
8
 
9
- attr_accessor :ShippingCompany
9
+ attr_accessor :DeliveryDeadline
10
10
 
11
- attr_accessor :DeliveryAddress
11
+ attr_accessor :ShippingCompany
12
12
 
13
- attr_accessor :ShoppingCartItemCollection
13
+ attr_accessor :DeliveryAddress
14
14
 
15
- def initialize
16
- @ShoppingCartItemCollection = Array.new
17
- @DeliveryAddress = DeliveryAddress.new
18
- end
15
+ attr_accessor :ShoppingCartItemCollection
19
16
 
20
- def to_json
21
- hash = {}
22
- instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
23
- hash
24
- end
17
+ def initialize
18
+ @ShoppingCartItemCollection = Array.new
19
+ @DeliveryAddress = DeliveryAddress.new
20
+ end
25
21
 
22
+ def to_json
23
+ hash = {}
24
+ instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
25
+ hash
26
+ end
27
+ end
26
28
  end
@@ -1,23 +1,25 @@
1
- class ShoppingCartItemCollection
1
+ module Gateway
2
2
 
3
- attr_accessor :ItemReference
3
+ class ShoppingCartItemCollection
4
4
 
5
- attr_accessor :Quantity
5
+ attr_accessor :ItemReference
6
6
 
7
- attr_accessor :UnitCostInCents
7
+ attr_accessor :Quantity
8
8
 
9
- attr_accessor :TotalCostInCents
9
+ attr_accessor :UnitCostInCents
10
10
 
11
- attr_accessor :Name
11
+ attr_accessor :TotalCostInCents
12
12
 
13
- attr_accessor :Description
13
+ attr_accessor :Name
14
14
 
15
- attr_accessor :DiscountAmountInCents
15
+ attr_accessor :Description
16
16
 
17
- def to_json
18
- hash = {}
19
- instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
20
- hash
21
- end
17
+ attr_accessor :DiscountAmountInCents
22
18
 
19
+ def to_json
20
+ hash = {}
21
+ instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
22
+ hash
23
+ end
24
+ end
23
25
  end
@@ -1,6 +1,9 @@
1
- class Trailer
2
- attr_accessor :OrderDataCount
3
- attr_accessor :CreditCardTransactionDataCount
4
- attr_accessor :BoletoTransactionDataCount
5
- attr_accessor :OnlineDebitTransactionDataCount
1
+ module Gateway
2
+
3
+ class Trailer
4
+ attr_accessor :OrderDataCount
5
+ attr_accessor :CreditCardTransactionDataCount
6
+ attr_accessor :BoletoTransactionDataCount
7
+ attr_accessor :OnlineDebitTransactionDataCount
8
+ end
6
9
  end
@@ -1,5 +1,8 @@
1
- class Header
2
- attr_accessor :TransactionProcessedDate
3
- attr_accessor :ReportFileCreateDate
4
- attr_accessor :Version
1
+ module Gateway
2
+
3
+ class Header
4
+ attr_accessor :TransactionProcessedDate
5
+ attr_accessor :ReportFileCreateDate
6
+ attr_accessor :Version
7
+ end
5
8
  end
@@ -1,29 +1,32 @@
1
1
  require 'nori'
2
2
 
3
+ module Gateway
4
+
3
5
  # Class who handles Gateway post notification XML
4
- class PostNotification
6
+ class PostNotification
5
7
 
6
- # This method parse the Xml sent by Gateway when notify a change in a transaction.
7
- #
8
- # @param request [String] XML received in the Gateway POST request.
9
- # @return [Hash<Symbol, String>] A hash collection containing the XML data parsed.
10
- def self.ParseNotification(xml)
8
+ # This method parse the Xml sent by Gateway when notify a change in a transaction.
9
+ #
10
+ # @param request [String] XML received in the Gateway POST request.
11
+ # @return [Hash<Symbol, String>] A hash collection containing the XML data parsed.
12
+ def self.ParseNotification(xml)
11
13
 
12
- nori = Nori.new(:convert_tags_to => lambda { |tag| PostNotification.to_underscore(tag).to_sym })
13
- xml_hash = nori.parse(CGI::unescapeHTML(xml))
14
+ nori = Nori.new(:convert_tags_to => lambda { |tag| PostNotification.to_underscore(tag).to_sym })
15
+ xml_hash = nori.parse(CGI::unescapeHTML(xml))
14
16
 
15
- return xml_hash
16
- end
17
+ return xml_hash
18
+ end
17
19
 
18
- # Converts a string in Camel Case format to lower case with underscore.
19
- #
20
- # @param Example: 'StatusNotification' outputs 'status_notification'
21
- # @returns [String] lower case string separated with underscore
22
- def self.to_underscore(camel_case_string)
23
- return camel_case_string.gsub(/::/, '/').
24
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
25
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
26
- tr("-", "_").
27
- downcase
20
+ # Converts a string in Camel Case format to lower case with underscore.
21
+ #
22
+ # @param Example: 'StatusNotification' outputs 'status_notification'
23
+ # @returns [String] lower case string separated with underscore
24
+ def self.to_underscore(camel_case_string)
25
+ return camel_case_string.gsub(/::/, '/').
26
+ gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
27
+ gsub(/([a-z\d])([A-Z])/, '\1_\2').
28
+ tr("-", "_").
29
+ downcase
30
+ end
28
31
  end
29
32
  end
@@ -1,45 +1,48 @@
1
- class TransactionReportFile
2
- def TransactionReportFileParser(file_to_parse)
3
- response = {}
4
- response['CreditCardTransaction'] = []
5
- response['OnlineDebitTransaction'] = []
6
- response['BoletoTransaction'] = []
7
-
8
- header_parser = HeaderParser.new
9
- credit_card_parser = CreditCardTransactionParser.new
10
- boleto_parser = BoletoTransactionParser.new
11
- online_debit_parser = OnlineDebitTransactionParser.new
12
- trailer_parser = TrailerParser.new
13
-
14
- begin
15
- response_splited = file_to_parse.split("\n")
16
-
17
- response_splited.each do |item|
18
-
19
- to_parse_item = item.split(',')
20
- if to_parse_item[0] == '01'
21
- response['Header'] = header_parser.Parse(to_parse_item)
22
- end
23
-
24
- if to_parse_item[0] == '20'
25
- response['CreditCardTransaction'] << credit_card_parser.Parse(to_parse_item)
26
- end
27
-
28
- if to_parse_item[0] == '40'
29
- response['OnlineDebitTransaction'] << online_debit_parser.Parse(to_parse_item)
30
- end
31
-
32
- if to_parse_item[0] == '30'
33
- response['BoletoTransaction'] << boleto_parser.Parse(to_parse_item)
34
- end
35
-
36
- if to_parse_item[0] == '99'
37
- response['Trailer'] = trailer_parser.Parse(to_parse_item)
1
+ module Gateway
2
+
3
+ class TransactionReportFile
4
+ def TransactionReportFileParser(file_to_parse)
5
+ response = {}
6
+ response['CreditCardTransaction'] = []
7
+ response['OnlineDebitTransaction'] = []
8
+ response['BoletoTransaction'] = []
9
+
10
+ header_parser = HeaderParser.new
11
+ credit_card_parser = CreditCardTransactionParser.new
12
+ boleto_parser = BoletoTransactionParser.new
13
+ online_debit_parser = OnlineDebitTransactionParser.new
14
+ trailer_parser = TrailerParser.new
15
+
16
+ begin
17
+ response_splited = file_to_parse.split("\n")
18
+
19
+ response_splited.each do |item|
20
+
21
+ to_parse_item = item.split(',')
22
+ if to_parse_item[0] == '01'
23
+ response['Header'] = header_parser.Parse(to_parse_item)
24
+ end
25
+
26
+ if to_parse_item[0] == '20'
27
+ response['CreditCardTransaction'] << credit_card_parser.Parse(to_parse_item)
28
+ end
29
+
30
+ if to_parse_item[0] == '40'
31
+ response['OnlineDebitTransaction'] << online_debit_parser.Parse(to_parse_item)
32
+ end
33
+
34
+ if to_parse_item[0] == '30'
35
+ response['BoletoTransaction'] << boleto_parser.Parse(to_parse_item)
36
+ end
37
+
38
+ if to_parse_item[0] == '99'
39
+ response['Trailer'] = trailer_parser.Parse(to_parse_item)
40
+ end
38
41
  end
42
+ rescue Exception => err
43
+ return err
39
44
  end
40
- rescue Exception=>err
41
- return err
45
+ return response
42
46
  end
43
- return response
44
47
  end
45
48
  end
@@ -7,31 +7,20 @@ require 'nori'
7
7
  require 'rspec'
8
8
  require 'rexml/document'
9
9
 
10
- require_relative 'gateway/address'
11
- require_relative 'gateway/Address/billing_address'
12
- require_relative 'gateway/Address/buyer_address'
13
- require_relative 'gateway/Address/delivery_address'
14
-
15
- require_relative 'gateway/AntiFraud/anti_fraud_analysis_result'
16
- require_relative 'gateway/AntiFraud/query_sale_anti_fraud_analysis_data'
17
- require_relative 'gateway/AntiFraud/query_sale_anti_fraud_analysis_history_data'
18
-
19
10
  require_relative 'gateway/BoletoTransaction/boleto_transaction'
20
- require_relative 'gateway/BoletoTransaction/boleto_transaction_data'
21
11
  require_relative 'gateway/BoletoTransaction/boleto_transaction_options'
22
- require_relative 'gateway/BoletoTransaction/boleto_transaction_result'
23
12
  require_relative 'gateway/BoletoTransaction/boleto_transaction_report_file'
24
13
 
25
14
  require_relative 'gateway/CreditCardTransaction/credit_card'
26
15
  require_relative 'gateway/CreditCardTransaction/credit_card_transaction'
27
- require_relative 'gateway/CreditCardTransaction/credit_card_transaction_data'
28
16
  require_relative 'gateway/CreditCardTransaction/credit_card_transaction_options'
29
17
  require_relative 'gateway/CreditCardTransaction/manage_credit_card_transaction'
30
18
  require_relative 'gateway/CreditCardTransaction/retry_sale_credit_card_transaction'
31
19
  require_relative 'gateway/CreditCardTransaction/credit_card_transaction_report_file'
32
20
 
33
- require_relative 'gateway/InstantBuy/credit_card_data'
34
- require_relative 'gateway/InstantBuy/get_instant_buy_data_response'
21
+ require_relative 'gateway/Address/billing_address'
22
+ require_relative 'gateway/Address/buyer_address'
23
+ require_relative 'gateway/Address/delivery_address'
35
24
 
36
25
  require_relative 'gateway/Merchant/merchant'
37
26
 
@@ -68,3 +57,6 @@ require_relative 'gateway/Gateway'
68
57
  require_relative 'gateway/header'
69
58
  require_relative 'gateway/Trailer'
70
59
  require_relative 'gateway/transaction_report_file'
60
+ require_relative 'gateway/InstantBuyData/create_instant_buy_data_request'
61
+ require_relative 'gateway/InstantBuyData/update_instant_buy_data_request'
62
+ require_relative 'gateway/Person/create_buyer_request'
@@ -2,13 +2,14 @@ require_relative '../../lib/stone_ecommerce'
2
2
  require_relative 'test_helper'
3
3
 
4
4
  merchant_key = '8A2DD57F-1ED9-4153-B4CE-69683EFADAD5'
5
- gateway = Gateway.new(:production, merchant_key)
5
+
6
+ gateway = Gateway::Gateway.new(:production, merchant_key)
6
7
 
7
8
  RSpec.describe Gateway do
8
9
  it 'should create a sale with boleto' do
9
- createSaleRequest = CreateSaleRequest.new
10
+ createSaleRequest = Gateway::CreateSaleRequest.new
10
11
 
11
- boletoTransaction = BoletoTransaction.new
12
+ boletoTransaction = Gateway::BoletoTransaction.new
12
13
  boletoTransaction.AmountInCents = 100
13
14
  boletoTransaction.BankNumber = '237'
14
15
  boletoTransaction.DocumentNumber = '12345678901'
@@ -25,9 +26,9 @@ RSpec.describe Gateway do
25
26
  end
26
27
 
27
28
  it 'should create a sale with credit card' do
28
- createSaleRequest = CreateSaleRequest.new
29
+ createSaleRequest = Gateway::CreateSaleRequest.new
29
30
 
30
- buyerAddress = BuyerAddress.new
31
+ buyerAddress = Gateway::BuyerAddress.new
31
32
  buyerAddress.AddressType = 'Residential'
32
33
  buyerAddress.City = 'Rio de Janeiro'
33
34
  buyerAddress.Complement = '10 Andar'
@@ -38,7 +39,7 @@ RSpec.describe Gateway do
38
39
  buyerAddress.Street = 'Rua da Quitanda'
39
40
  buyerAddress.ZipCode = '20091005'
40
41
 
41
- creditCardTransaction = CreditCardTransaction.new
42
+ creditCardTransaction = Gateway::CreditCardTransaction.new
42
43
  creditCardTransaction.AmountInCents = 100
43
44
  creditCardTransaction.InstallmentCount = 1
44
45
  creditCardTransaction.TransactionReference = 'CreditCard One RubySDK Test'
@@ -84,7 +85,7 @@ RSpec.describe Gateway do
84
85
 
85
86
  it 'should create a sale with all types of transactions and all fields filled' do
86
87
  # creates boleto transaction object
87
- boletoTransaction = BoletoTransaction.new
88
+ boletoTransaction = Gateway::BoletoTransaction.new
88
89
 
89
90
  # 100 reais in cents
90
91
  boletoTransaction.AmountInCents = 10000
@@ -105,7 +106,7 @@ RSpec.describe Gateway do
105
106
 
106
107
 
107
108
  # create credit card transaction object
108
- creditCardTransaction = CreditCardTransaction.new
109
+ creditCardTransaction = Gateway::CreditCardTransaction.new
109
110
 
110
111
  # 100 reais in cents
111
112
  creditCardTransaction.AmountInCents = 10000
@@ -129,7 +130,7 @@ RSpec.describe Gateway do
129
130
  creditCardTransaction.Options.PaymentMethodCode = 1
130
131
  creditCardTransaction.Options.SoftDescriptorText = 'Jedi Mega Store'
131
132
 
132
- shoppingCartItem = ShoppingCartItemCollection.new
133
+ shoppingCartItem = Gateway::ShoppingCartItemCollection.new
133
134
  shoppingCartItem.Description = 'Red Lightsaber'
134
135
  shoppingCartItem.DiscountAmountInCents = 0
135
136
  shoppingCartItem.ItemReference = 'NumeroDoProduto'
@@ -138,7 +139,7 @@ RSpec.describe Gateway do
138
139
  shoppingCartItem.TotalCostInCents = 18000
139
140
  shoppingCartItem.UnitCostInCents = 18000
140
141
 
141
- shoppingCartCollection = ShoppingCartCollection.new
142
+ shoppingCartCollection = Gateway::ShoppingCartCollection.new
142
143
  shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
143
144
  shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
144
145
  shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
@@ -154,12 +155,12 @@ RSpec.describe Gateway do
154
155
  shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
155
156
 
156
157
  # creates request object for transaction creation
157
- createSaleRequest = CreateSaleRequest.new
158
+ createSaleRequest = Gateway::CreateSaleRequest.new
158
159
 
159
160
  # adds to the boleto transaction collection
160
161
  createSaleRequest.BoletoTransactionCollection << boletoTransaction
161
162
 
162
- buyerAddress = BuyerAddress.new
163
+ buyerAddress = Gateway::BuyerAddress.new
163
164
  buyerAddress.AddressType = 'Residential'
164
165
  buyerAddress.City = 'Tatooine'
165
166
  buyerAddress.Complement = ''
@@ -212,7 +213,7 @@ RSpec.describe Gateway do
212
213
 
213
214
  it 'should create an anti fraud transaction' do
214
215
  # create credit card transaction object
215
- creditCardTransaction = CreditCardTransaction.new
216
+ creditCardTransaction = Gateway::CreditCardTransaction.new
216
217
 
217
218
  # 100 reais in cents
218
219
  creditCardTransaction.AmountInCents = 10000
@@ -232,7 +233,7 @@ RSpec.describe Gateway do
232
233
  creditCardTransaction.CreditCard.SecurityCode = '123'
233
234
  creditCardTransaction.InstallmentCount = 1
234
235
 
235
- shoppingCartItem = ShoppingCartItemCollection.new
236
+ shoppingCartItem = Gateway::ShoppingCartItemCollection.new
236
237
  shoppingCartItem.Description = 'Red Lightsaber'
237
238
  shoppingCartItem.DiscountAmountInCents = 0
238
239
  shoppingCartItem.ItemReference = 'NumeroDoProduto'
@@ -241,7 +242,7 @@ RSpec.describe Gateway do
241
242
  shoppingCartItem.TotalCostInCents = 18000
242
243
  shoppingCartItem.UnitCostInCents = 0
243
244
 
244
- shoppingCartCollection = ShoppingCartCollection.new
245
+ shoppingCartCollection = Gateway::ShoppingCartCollection.new
245
246
  shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
246
247
  shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
247
248
  shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
@@ -254,9 +255,9 @@ RSpec.describe Gateway do
254
255
  shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem
255
256
 
256
257
  # creates request object for transaction creation
257
- createSaleRequest = CreateSaleRequest.new
258
+ createSaleRequest = Gateway::CreateSaleRequest.new
258
259
 
259
- buyerAddress = BuyerAddress.new
260
+ buyerAddress = Gateway::BuyerAddress.new
260
261
  buyerAddress.AddressType = 'Residential'
261
262
  buyerAddress.City = 'Tatooine'
262
263
  buyerAddress.Complement = ''
@@ -296,10 +297,10 @@ RSpec.describe Gateway do
296
297
  end
297
298
 
298
299
  it 'should consult the order with order key' do
299
- querySaleRequest = QuerySaleRequest.new
300
- createSaleRequest = CreateSaleRequest.new
300
+ querySaleRequest = Gateway::QuerySaleRequest.new
301
+ createSaleRequest = Gateway::CreateSaleRequest.new
301
302
 
302
- boletoTransaction = BoletoTransaction.new
303
+ boletoTransaction = Gateway::BoletoTransaction.new
303
304
  boletoTransaction.AmountInCents = 100
304
305
  boletoTransaction.BankNumber = '237'
305
306
  boletoTransaction.DocumentNumber = '12345678901'
@@ -313,7 +314,7 @@ RSpec.describe Gateway do
313
314
  boleto_response = gateway.CreateSale(createSaleRequest)
314
315
 
315
316
  querySaleRequest.OrderKey = boleto_response['OrderResult']['OrderKey']
316
- responseQuery = gateway.Query(QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)
317
+ responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)
317
318
 
318
319
  orderKey = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderKey"]
319
320
 
@@ -321,10 +322,10 @@ RSpec.describe Gateway do
321
322
  end
322
323
 
323
324
  it 'should consult the order with order reference' do
324
- querySaleRequest = QuerySaleRequest.new
325
- createSaleRequest = CreateSaleRequest.new
325
+ querySaleRequest = Gateway::QuerySaleRequest.new
326
+ createSaleRequest = Gateway::CreateSaleRequest.new
326
327
 
327
- boletoTransaction = BoletoTransaction.new
328
+ boletoTransaction = Gateway::BoletoTransaction.new
328
329
  boletoTransaction.AmountInCents = 100
329
330
  boletoTransaction.BankNumber = '237'
330
331
  boletoTransaction.DocumentNumber = '12345678901'
@@ -339,7 +340,7 @@ RSpec.describe Gateway do
339
340
  boleto_response = gateway.CreateSale(createSaleRequest)
340
341
 
341
342
  querySaleRequest.OrderReference = boleto_response['OrderResult']['OrderReference']
342
- responseQuery = gateway.Query(QuerySaleRequest.QuerySaleRequestEnum[:OrderReference], querySaleRequest.OrderReference)
343
+ responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderReference], querySaleRequest.OrderReference)
343
344
 
344
345
  orderReference = responseQuery["SaleDataCollection"][0]["OrderData"]["OrderReference"]
345
346
 
@@ -347,11 +348,11 @@ RSpec.describe Gateway do
347
348
  end
348
349
 
349
350
  it 'should do a retry method' do
350
- retrySaleRequest = RetrySaleRequest.new
351
- retrySaleCreditCardTransactionItem = RetrySaleCreditCardTransaction.new
351
+ retrySaleRequest = Gateway::RetrySaleRequest.new
352
+ retrySaleCreditCardTransactionItem = Gateway::RetrySaleCreditCardTransaction.new
352
353
 
353
- createSaleRequest = CreateSaleRequest.new
354
- creditCardTransactionItem = CreditCardTransaction.new
354
+ createSaleRequest = Gateway::CreateSaleRequest.new
355
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
355
356
  creditCardTransactionItem.AmountInCents = 100
356
357
  creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
357
358
  creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
@@ -392,8 +393,8 @@ RSpec.describe Gateway do
392
393
  end
393
394
 
394
395
  it 'should do a retry method with only order key' do
395
- createSaleRequest = CreateSaleRequest.new
396
- creditCardTransactionItem = CreditCardTransaction.new
396
+ createSaleRequest = Gateway::CreateSaleRequest.new
397
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
397
398
  creditCardTransactionItem.AmountInCents = 100
398
399
  creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
399
400
  creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
@@ -414,7 +415,7 @@ RSpec.describe Gateway do
414
415
  orderKey = responseCreate["OrderResult"]["OrderKey"]
415
416
  transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
416
417
 
417
- retrySaleRequest = RetrySaleRequest.new
418
+ retrySaleRequest = Gateway::RetrySaleRequest.new
418
419
 
419
420
  # monta o objeto de retentativa
420
421
  retrySaleRequest.OrderKey = orderKey
@@ -427,8 +428,8 @@ RSpec.describe Gateway do
427
428
  end
428
429
 
429
430
  it 'should cancel a transaction' do
430
- createSaleRequest = CreateSaleRequest.new
431
- creditCardTransactionItem = CreditCardTransaction.new
431
+ createSaleRequest = Gateway::CreateSaleRequest.new
432
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
432
433
  creditCardTransactionItem.AmountInCents = 100
433
434
  creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
434
435
  creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
@@ -453,13 +454,13 @@ RSpec.describe Gateway do
453
454
  transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
454
455
 
455
456
  # itens necessarios para cancelamento da transacao de cartao de credito
456
- cancelCreditCardTransactionItem = ManageCreditCardTransaction.new
457
+ cancelCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
457
458
  cancelCreditCardTransactionItem.AmountInCents = 100
458
459
  cancelCreditCardTransactionItem.TransactionKey = transactionKey
459
460
  cancelCreditCardTransactionItem.TransactionReference = 'RubySDK-CancelTest'
460
461
 
461
462
  # monta o objeto para cancelamento de transacao
462
- cancelSaleRequest = ManageSaleRequest.new
463
+ cancelSaleRequest = Gateway::ManageSaleRequest.new
463
464
  cancelSaleRequest.OrderKey = orderKey
464
465
  cancelSaleRequest.CreditCardTransactionCollection << cancelCreditCardTransactionItem
465
466
 
@@ -469,8 +470,8 @@ RSpec.describe Gateway do
469
470
  end
470
471
 
471
472
  it 'should capture a transaction' do
472
- createSaleRequest = CreateSaleRequest.new
473
- creditCardTransactionItem = CreditCardTransaction.new
473
+ createSaleRequest = Gateway::CreateSaleRequest.new
474
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
474
475
  creditCardTransactionItem.AmountInCents = 100
475
476
  creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
476
477
  creditCardTransactionItem.CreditCard.CreditCardNumber = '41111111111111'
@@ -495,13 +496,13 @@ RSpec.describe Gateway do
495
496
  transactionKey = responseCreate['CreditCardTransactionResultCollection'][0]['TransactionKey']
496
497
 
497
498
  # itens necessarios para captura da transacao de cartao de credito
498
- captureCreditCardTransactionItem = ManageCreditCardTransaction.new
499
+ captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
499
500
  captureCreditCardTransactionItem.AmountInCents = 100
500
501
  captureCreditCardTransactionItem.TransactionKey = transactionKey
501
502
  captureCreditCardTransactionItem.TransactionReference = 'RubySDK-CaptureTest'
502
503
 
503
504
  # monta o objeto para cancelamento de transacao
504
- captureSaleRequest = ManageSaleRequest.new
505
+ captureSaleRequest = Gateway::ManageSaleRequest.new
505
506
  captureSaleRequest.OrderKey = orderKey
506
507
  captureSaleRequest.CreditCardTransactionCollection << captureCreditCardTransactionItem
507
508
 
@@ -512,7 +513,7 @@ RSpec.describe Gateway do
512
513
  end
513
514
 
514
515
  it 'should do a parse xml to notification interpretation' do
515
- creditCardTransactionItem = CreditCardTransaction.new
516
+ creditCardTransactionItem = Gateway::CreditCardTransaction.new
516
517
  creditCardTransactionItem.AmountInCents = 100
517
518
  creditCardTransactionItem.TransactionReference = 'Ruby PostNotification Test'
518
519
  creditCardTransactionItem.InstallmentCount = 1
@@ -525,7 +526,7 @@ RSpec.describe Gateway do
525
526
  creditCardTransactionItem.CreditCard.ExpYear = 20
526
527
  creditCardTransactionItem.Options.PaymentMethodCode = 1
527
528
 
528
- createSaleRequest = CreateSaleRequest.new
529
+ createSaleRequest = Gateway::CreateSaleRequest.new
529
530
  createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
530
531
 
531
532
  response_hash = gateway.CreateSale(createSaleRequest)
@@ -536,12 +537,12 @@ RSpec.describe Gateway do
536
537
  # expect(credit_card_result['CreditCardOperation']).to eq 'AuthOnly'
537
538
  # expect(credit_card_result['CreditCardTransactionStatus']).to eq 'AuthorizedPendingCapture'
538
539
 
539
- captureCreditCardTransactionItem = ManageCreditCardTransaction.new
540
+ captureCreditCardTransactionItem = Gateway::ManageCreditCardTransaction.new
540
541
  captureCreditCardTransactionItem.AmountInCents = creditCardTransactionItem.AmountInCents
541
542
  captureCreditCardTransactionItem.TransactionKey = credit_card_result['TransactionKey']
542
543
  captureCreditCardTransactionItem.TransactionReference = creditCardTransactionItem.TransactionReference
543
544
 
544
- captureSale = ManageSaleRequest.new
545
+ captureSale = Gateway::ManageSaleRequest.new
545
546
  captureSale.OrderKey = response_hash['OrderResult']['OrderKey']
546
547
  captureSale.CreditCardTransactionCollection << captureCreditCardTransactionItem
547
548
 
@@ -612,39 +613,41 @@ RSpec.describe Gateway do
612
613
  expect(response.nil?).to eq false
613
614
  end
614
615
 
615
- # it 'should bring the transaction report file' do
616
- # date = Date.new(2015, 9, 19)
617
- # result = gateway.TransactionReportFile(date)
618
- # split_commas = result.split(',')
619
- #
620
- # expect(split_commas[1]).to eq '20150919'
621
- # end
622
- #
623
- # it 'should parse the transaction report file received' do
624
- # date = Date.new(2015, 9, 19)
625
- # request_to_parse = gateway.TransactionReportFile(date)
626
- # result = gateway.TransactionReportFileParser(request_to_parse)
627
- #
628
- # expect(result['Header'].TransactionProcessedDate).to eq '20150919'
629
- # end
630
- #
631
- # it 'should save the transaction report file at selected path' do
632
- # date = Date.new(2015, 9, 19)
633
- #
634
- # file = Tempfile.new('Test')
635
- # gateway.TransactionReportFileDownloader(date, 'Test', file.path)
636
- #
637
- # file_path = file.path.to_s + 'Test.txt'
638
- # file_exist = File.exist?(file_path)
639
- #
640
- # file.close
641
- # file.unlink
642
- #
643
- # expect(file_exist).to eq true
644
- # end
645
-
646
- it 'should consult transaction with instant buy key' do
647
- credit_card_transaction = CreditCardTransaction.new
616
+ =begin
617
+ it 'should bring the transaction report file' do
618
+ date = Date.new(2015, 9, 19)
619
+ result = gateway.TransactionReportFile(date)
620
+ split_commas = result.split(',')
621
+
622
+ expect(split_commas[1]).to eq '20150919'
623
+ end
624
+
625
+ it 'should parse the transaction report file received' do
626
+ date = Date.new(2015, 9, 19)
627
+ request_to_parse = gateway.TransactionReportFile(date)
628
+ result = gateway.TransactionReportFileParser(request_to_parse)
629
+
630
+ expect(result['Header'].TransactionProcessedDate).to eq '20150919'
631
+ end
632
+
633
+ it 'should save the transaction report file at selected path' do
634
+ date = Date.new(2015, 9, 19)
635
+
636
+ file = Tempfile.new('Test')
637
+ gateway.TransactionReportFileDownloader(date, 'Test', file.path)
638
+
639
+ file_path = file.path.to_s + 'Test.txt'
640
+ file_exist = File.exist?(file_path)
641
+
642
+ file.close
643
+ file.unlink
644
+
645
+ expect(file_exist).to eq true
646
+ end
647
+ =end
648
+
649
+ it 'should get credit card instant buy key deprecated' do
650
+ credit_card_transaction = Gateway::CreditCardTransaction.new
648
651
  credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
649
652
  credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
650
653
  credit_card_transaction.CreditCard.ExpMonth = 10
@@ -653,7 +656,7 @@ RSpec.describe Gateway do
653
656
  credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
654
657
  credit_card_transaction.AmountInCents = 100
655
658
 
656
- sale_request = CreateSaleRequest.new
659
+ sale_request = Gateway::CreateSaleRequest.new
657
660
  sale_request.CreditCardTransactionCollection << credit_card_transaction
658
661
 
659
662
  sale_response = gateway.CreateSale(sale_request)
@@ -667,9 +670,32 @@ RSpec.describe Gateway do
667
670
  expect(response['ErrorReport']).to eq nil
668
671
  end
669
672
 
670
- it 'should consult transaction with buyer key' do
673
+ it 'should get credit card instant buy key' do
674
+ credit_card_transaction = Gateway::CreditCardTransaction.new
675
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
676
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
677
+ credit_card_transaction.CreditCard.ExpMonth = 10
678
+ credit_card_transaction.CreditCard.ExpYear = 2018
679
+ credit_card_transaction.CreditCard.SecurityCode = '123'
680
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
681
+ credit_card_transaction.AmountInCents = 100
671
682
 
672
- credit_card_transaction = CreditCardTransaction.new
683
+ sale_request = Gateway::CreateSaleRequest.new
684
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
685
+
686
+ sale_response = gateway.CreateSale(sale_request)
687
+
688
+ expect(sale_response['ErrorReport']).to eq nil
689
+
690
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
691
+
692
+ response = gateway.GetCreditCard(instant_buy_key)
693
+
694
+ expect(response['ErrorReport']).to eq nil
695
+ end
696
+
697
+ it 'should delete credit card instant buy key' do
698
+ credit_card_transaction = Gateway::CreditCardTransaction.new
673
699
  credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
674
700
  credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
675
701
  credit_card_transaction.CreditCard.ExpMonth = 10
@@ -678,7 +704,32 @@ RSpec.describe Gateway do
678
704
  credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
679
705
  credit_card_transaction.AmountInCents = 100
680
706
 
681
- sale_request = CreateSaleRequest.new
707
+ sale_request = Gateway::CreateSaleRequest.new
708
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
709
+
710
+ sale_response = gateway.CreateSale(sale_request)
711
+
712
+ expect(sale_response['ErrorReport']).to eq nil
713
+
714
+ instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
715
+
716
+ response = gateway.DeleteCreditCard(instant_buy_key)
717
+
718
+ expect(response['Success']).to eq true
719
+ end
720
+
721
+ it 'should consult get credit card with buyer key deprecated' do
722
+
723
+ credit_card_transaction = Gateway::CreditCardTransaction.new
724
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
725
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
726
+ credit_card_transaction.CreditCard.ExpMonth = 10
727
+ credit_card_transaction.CreditCard.ExpYear = 2018
728
+ credit_card_transaction.CreditCard.SecurityCode = '123'
729
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
730
+ credit_card_transaction.AmountInCents = 100
731
+
732
+ sale_request = Gateway::CreateSaleRequest.new
682
733
  sale_request.Buyer.Name = 'Anakin Skywalker'
683
734
  sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
684
735
  sale_request.Buyer.DocumentNumber = '12345678901'
@@ -696,8 +747,184 @@ RSpec.describe Gateway do
696
747
  expect(response['ErrorReport']).to eq nil
697
748
  end
698
749
 
750
+ it 'should consult get credit card with buyer key' do
751
+
752
+ credit_card_transaction = Gateway::CreditCardTransaction.new
753
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
754
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
755
+ credit_card_transaction.CreditCard.ExpMonth = 10
756
+ credit_card_transaction.CreditCard.ExpYear = 2018
757
+ credit_card_transaction.CreditCard.SecurityCode = '123'
758
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
759
+ credit_card_transaction.AmountInCents = 100
760
+
761
+ sale_request = Gateway::CreateSaleRequest.new
762
+ sale_request.Buyer.Name = 'Anakin Skywalker'
763
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
764
+ sale_request.Buyer.DocumentNumber = '12345678901'
765
+ sale_request.Buyer.DocumentType = 'CPF'
766
+ sale_request.Buyer.PersonType = 'Person'
767
+ sale_request.Buyer.Gender = 'M'
768
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
769
+
770
+ sale_response = gateway.CreateSale(sale_request)
771
+
772
+ expect(sale_response['ErrorReport']).to eq nil
773
+
774
+ response = gateway.GetCreditCardWithBuyerKey(sale_response['BuyerKey'])
775
+
776
+ expect(response['ErrorReport']).to eq nil
777
+ end
778
+
779
+ it 'should create a credit card' do
780
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
781
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
782
+ create_instant_buy_data.ExpMonth = 10
783
+ create_instant_buy_data.ExpYear = 2018
784
+ create_instant_buy_data.SecurityCode = '123'
785
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
786
+ create_instant_buy_data.CreditCardBrand = 'Visa'
787
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
788
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
789
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
790
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
791
+ create_instant_buy_data.BillingAddress.District = 'Centro'
792
+ create_instant_buy_data.BillingAddress.Number = '123'
793
+ create_instant_buy_data.BillingAddress.State = 'RJ'
794
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
795
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
796
+
797
+ response = gateway.CreateCreditCard(create_instant_buy_data)
798
+
799
+ expect(response['ErrorReport']).to eq nil
800
+ end
801
+
802
+ it 'should create credit card with buyerkey in it' do
803
+ address = Gateway::BuyerAddress.new
804
+ address.AddressType = 'Residential'
805
+ address.City = 'Tatooine'
806
+ address.Complement = ''
807
+ address.Country = 'Brazil'
808
+ address.District = 'Mos Eisley'
809
+ address.Number = '123'
810
+ address.State = 'RJ'
811
+ address.Street = 'Mos Eisley Cantina'
812
+ address.ZipCode = '20001000'
813
+
814
+ buyer_request = Gateway::CreateBuyerRequest.new
815
+ buyer_request.AddressCollection << address
816
+ buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
817
+ buyer_request.BuyerCategory = 'Normal'
818
+ buyer_request.BuyerReference = 'C3PO'
819
+ buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
820
+ buyer_request.DocumentNumber = '12345678901'
821
+ buyer_request.DocumentType = 'CPF'
822
+ buyer_request.Email = 'lskywalker@r2d2.com'
823
+ buyer_request.EmailType = 'Personal'
824
+ buyer_request.FacebookId = 'lukeskywalker8917'
825
+ buyer_request.Gender = 'M'
826
+ buyer_request.HomePhone = '(21)123456789'
827
+ buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
828
+ buyer_request.MobilePhone = '(21)987654321'
829
+ buyer_request.Name = 'Luke Skywalker'
830
+ buyer_request.PersonType = 'Person'
831
+ buyer_request.TwitterId = '@lukeskywalker8917'
832
+ buyer_request.WorkPhone = '(21)28467902'
833
+
834
+ new_buyer_response = gateway.CreateBuyer(buyer_request)
835
+ buyer_key = new_buyer_response['BuyerKey']
836
+
837
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
838
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
839
+ create_instant_buy_data.ExpMonth = 10
840
+ create_instant_buy_data.ExpYear = 2018
841
+ create_instant_buy_data.SecurityCode = '123'
842
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
843
+ create_instant_buy_data.CreditCardBrand = 'Visa'
844
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
845
+ create_instant_buy_data.BuyerKey = buyer_key
846
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
847
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
848
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
849
+ create_instant_buy_data.BillingAddress.District = 'Centro'
850
+ create_instant_buy_data.BillingAddress.Number = '123'
851
+ create_instant_buy_data.BillingAddress.State = 'RJ'
852
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
853
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
854
+
855
+ response = gateway.CreateCreditCard(create_instant_buy_data)
856
+
857
+ expect(response['Success']).to eq true
858
+ end
859
+
860
+ it 'should create a credit card without billing address' do
861
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
862
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
863
+ create_instant_buy_data.ExpMonth = 10
864
+ create_instant_buy_data.ExpYear = 2018
865
+ create_instant_buy_data.SecurityCode = '123'
866
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
867
+ create_instant_buy_data.CreditCardBrand = 'Visa'
868
+
869
+ response = gateway.CreateCreditCard(create_instant_buy_data)
870
+
871
+ expect(response['ErrorReport']).to eq nil
872
+ end
873
+
874
+ it 'should update the credit card' do
875
+ create_instant_buy_data = Gateway::CreateInstantBuyDataRequest.new
876
+ create_instant_buy_data.CreditCardNumber = '4111111111111111'
877
+ create_instant_buy_data.ExpMonth = 10
878
+ create_instant_buy_data.ExpYear = 2018
879
+ create_instant_buy_data.SecurityCode = '123'
880
+ create_instant_buy_data.HolderName = 'Luke Skywalker'
881
+ create_instant_buy_data.CreditCardBrand = 'Visa'
882
+ create_instant_buy_data.IsOneDollarAuthEnabled = false
883
+ create_instant_buy_data.BillingAddress.City = 'Rio de Janeiro'
884
+ create_instant_buy_data.BillingAddress.Complement = 'Em frente ao Aeroporto'
885
+ create_instant_buy_data.BillingAddress.Country = 'Brazil'
886
+ create_instant_buy_data.BillingAddress.District = 'Centro'
887
+ create_instant_buy_data.BillingAddress.Number = '123'
888
+ create_instant_buy_data.BillingAddress.State = 'RJ'
889
+ create_instant_buy_data.BillingAddress.Street = 'Av. General Justo'
890
+ create_instant_buy_data.BillingAddress.ZipCode = '20270004'
891
+
892
+ create_credit_card = gateway.CreateCreditCard(create_instant_buy_data)
893
+
894
+ credit_card_transaction = Gateway::CreditCardTransaction.new
895
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
896
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
897
+ credit_card_transaction.CreditCard.ExpMonth = 10
898
+ credit_card_transaction.CreditCard.ExpYear = 2018
899
+ credit_card_transaction.CreditCard.SecurityCode = '123'
900
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
901
+ credit_card_transaction.AmountInCents = 100
902
+
903
+ sale_request = Gateway::CreateSaleRequest.new
904
+ sale_request.Buyer.Name = 'Anakin Skywalker'
905
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
906
+ sale_request.Buyer.DocumentNumber = '12345678901'
907
+ sale_request.Buyer.DocumentType = 'CPF'
908
+ sale_request.Buyer.PersonType = 'Person'
909
+ sale_request.Buyer.Gender = 'M'
910
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
911
+
912
+ sale_response = gateway.CreateSale(sale_request)
913
+
914
+ instant_buy_key = create_credit_card['InstantBuyKey']
915
+
916
+ buyer_key = sale_response['BuyerKey']
917
+
918
+ update_instant_buy_data_request = Gateway::UpdateInstantBuyDataRequest.new
919
+ update_instant_buy_data_request.BuyerKey = buyer_key
920
+
921
+ response = gateway.UpdateCreditCard(instant_buy_key, update_instant_buy_data_request)
922
+
923
+ expect(response['Success']).to eq true
924
+ end
925
+
699
926
  it 'should do a credit card transaction with instant buy key' do
700
- credit_card_transaction = CreditCardTransaction.new
927
+ credit_card_transaction = Gateway::CreditCardTransaction.new
701
928
  credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
702
929
  credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
703
930
  credit_card_transaction.CreditCard.ExpMonth = 10
@@ -706,7 +933,7 @@ RSpec.describe Gateway do
706
933
  credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
707
934
  credit_card_transaction.AmountInCents = 100
708
935
 
709
- sale_request = CreateSaleRequest.new
936
+ sale_request = Gateway::CreateSaleRequest.new
710
937
  sale_request.CreditCardTransactionCollection << credit_card_transaction
711
938
 
712
939
  sale_response = gateway.CreateSale(sale_request)
@@ -716,12 +943,12 @@ RSpec.describe Gateway do
716
943
  instant_buy_key = sale_response['CreditCardTransactionResultCollection'][0]['CreditCard']['InstantBuyKey']
717
944
 
718
945
  # coleta dados do cartao
719
- creditCardTransaction = CreditCardTransaction.new
946
+ creditCardTransaction = Gateway::CreditCardTransaction.new
720
947
  creditCardTransaction.AmountInCents = 100
721
948
  creditCardTransaction.CreditCard.InstantBuyKey = instant_buy_key
722
949
 
723
950
  # cria a transacao
724
- createSaleRequest = CreateSaleRequest.new
951
+ createSaleRequest = Gateway::CreateSaleRequest.new
725
952
  createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
726
953
 
727
954
  # faz a requisicao de criação de transacao, retorna um hash com a resposta
@@ -730,4 +957,68 @@ RSpec.describe Gateway do
730
957
  expect(response['ErrorReport']).to eq nil
731
958
  end
732
959
 
960
+ it 'should get the buyer with buyer key' do
961
+ credit_card_transaction = Gateway::CreditCardTransaction.new
962
+ credit_card_transaction.CreditCard.CreditCardNumber = '4111111111111111'
963
+ credit_card_transaction.CreditCard.CreditCardBrand = 'Visa'
964
+ credit_card_transaction.CreditCard.ExpMonth = 10
965
+ credit_card_transaction.CreditCard.ExpYear = 2018
966
+ credit_card_transaction.CreditCard.SecurityCode = '123'
967
+ credit_card_transaction.CreditCard.HolderName = 'Luke Skywalker'
968
+ credit_card_transaction.AmountInCents = 100
969
+
970
+ sale_request = Gateway::CreateSaleRequest.new
971
+ sale_request.Buyer.Name = 'Anakin Skywalker'
972
+ sale_request.Buyer.Birthdate = Date.new(1994, 9, 26).strftime("%Y-%m-%dT%H:%M:%S")
973
+ sale_request.Buyer.DocumentNumber = '12345678901'
974
+ sale_request.Buyer.DocumentType = 'CPF'
975
+ sale_request.Buyer.PersonType = 'Person'
976
+ sale_request.Buyer.Gender = 'M'
977
+ sale_request.CreditCardTransactionCollection << credit_card_transaction
978
+
979
+ sale_response = gateway.CreateSale(sale_request)
980
+
981
+ expect(sale_response['ErrorReport']).to eq nil
982
+
983
+ response = gateway.GetBuyer(sale_response['BuyerKey'])
984
+
985
+ expect(response['ErrorReport']).to eq nil
986
+ end
987
+
988
+ it 'should create buyer with buyer request' do
989
+ address = Gateway::BuyerAddress.new
990
+ address.AddressType = 'Residential'
991
+ address.City = 'Tatooine'
992
+ address.Complement = ''
993
+ address.Country = 'Brazil'
994
+ address.District = 'Mos Eisley'
995
+ address.Number = '123'
996
+ address.State = 'RJ'
997
+ address.Street = 'Mos Eisley Cantina'
998
+ address.ZipCode = '20001000'
999
+
1000
+ buyer_request = Gateway::CreateBuyerRequest.new
1001
+ buyer_request.AddressCollection << address
1002
+ buyer_request.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
1003
+ buyer_request.BuyerCategory = 'Normal'
1004
+ buyer_request.BuyerReference = 'C3PO'
1005
+ buyer_request.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
1006
+ buyer_request.DocumentNumber = '12345678901'
1007
+ buyer_request.DocumentType = 'CPF'
1008
+ buyer_request.Email = 'lskywalker@r2d2.com'
1009
+ buyer_request.EmailType = 'Personal'
1010
+ buyer_request.FacebookId = 'lukeskywalker8917'
1011
+ buyer_request.Gender = 'M'
1012
+ buyer_request.HomePhone = '(21)123456789'
1013
+ buyer_request.LastBuyerUpdateInMerchant = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S")
1014
+ buyer_request.MobilePhone = '(21)987654321'
1015
+ buyer_request.Name = 'Luke Skywalker'
1016
+ buyer_request.PersonType = 'Person'
1017
+ buyer_request.TwitterId = '@lukeskywalker8917'
1018
+ buyer_request.WorkPhone = '(21)28467902'
1019
+
1020
+ response = gateway.CreateBuyer(buyer_request)
1021
+
1022
+ expect(response['Success']).to eq true
1023
+ end
733
1024
  end