ianlevesque-remit 0.0.6

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 (46) hide show
  1. data/LICENSE +20 -0
  2. data/README.markdown +91 -0
  3. data/lib/remit/common.rb +88 -0
  4. data/lib/remit/data_types.rb +166 -0
  5. data/lib/remit/error_codes.rb +118 -0
  6. data/lib/remit/get_pipeline.rb +195 -0
  7. data/lib/remit/ipn_request.rb +49 -0
  8. data/lib/remit/operations/cancel_token.rb +18 -0
  9. data/lib/remit/operations/discard_results.rb +18 -0
  10. data/lib/remit/operations/fund_prepaid.rb +31 -0
  11. data/lib/remit/operations/get_account_activity.rb +60 -0
  12. data/lib/remit/operations/get_account_balance.rb +29 -0
  13. data/lib/remit/operations/get_all_credit_instruments.rb +18 -0
  14. data/lib/remit/operations/get_all_prepaid_instruments.rb +18 -0
  15. data/lib/remit/operations/get_debt_balance.rb +23 -0
  16. data/lib/remit/operations/get_outstanding_debt_balance.rb +22 -0
  17. data/lib/remit/operations/get_payment_instruction.rb +21 -0
  18. data/lib/remit/operations/get_prepaid_balance.rb +23 -0
  19. data/lib/remit/operations/get_results.rb +27 -0
  20. data/lib/remit/operations/get_token_by_caller.rb +19 -0
  21. data/lib/remit/operations/get_token_usage.rb +18 -0
  22. data/lib/remit/operations/get_tokens.rb +20 -0
  23. data/lib/remit/operations/get_total_prepaid_liability.rb +22 -0
  24. data/lib/remit/operations/get_transaction.rb +42 -0
  25. data/lib/remit/operations/install_payment_instruction.rb +22 -0
  26. data/lib/remit/operations/pay.rb +35 -0
  27. data/lib/remit/operations/refund.rb +36 -0
  28. data/lib/remit/operations/reserve.rb +30 -0
  29. data/lib/remit/operations/retry_transaction.rb +18 -0
  30. data/lib/remit/operations/settle.rb +20 -0
  31. data/lib/remit/operations/settle_debt.rb +30 -0
  32. data/lib/remit/operations/subscribe_for_caller_notification.rb +18 -0
  33. data/lib/remit/operations/unsubscribe_for_caller_notification.rb +17 -0
  34. data/lib/remit/operations/write_off_debt.rb +28 -0
  35. data/lib/remit/pipeline_response.rb +53 -0
  36. data/lib/remit.rb +133 -0
  37. data/spec/integrations/get_account_activity_spec.rb +36 -0
  38. data/spec/integrations/get_tokens_spec.rb +38 -0
  39. data/spec/integrations/integrations_helper.rb +8 -0
  40. data/spec/spec_helper.rb +36 -0
  41. data/spec/units/get_pipeline_spec.rb +165 -0
  42. data/spec/units/get_results_spec.rb +49 -0
  43. data/spec/units/ipn_request_spec.rb +32 -0
  44. data/spec/units/pay_spec.rb +133 -0
  45. data/spec/units/units_helper.rb +4 -0
  46. metadata +106 -0
@@ -0,0 +1,133 @@
1
+ require File.dirname(__FILE__) + '/units_helper'
2
+
3
+ describe "the Pay API" do
4
+ describe "a successful response" do
5
+ it_should_behave_like 'a successful response'
6
+
7
+ before do
8
+ doc = <<-XML
9
+ <ns3:PayResponse xmlns:ns3="http://fps.amazonaws.com/doc/2007-01-08/">
10
+ <ns3:TransactionResponse>
11
+ <TransactionId>abc123</TransactionId>
12
+ <Status>Initiated</Status>
13
+ </ns3:TransactionResponse>
14
+ <Status>Success</Status>
15
+ <RequestId>foo</RequestId>
16
+ </ns3:PayResponse>
17
+ XML
18
+
19
+ @response = Remit::Pay::Response.new(doc)
20
+ end
21
+
22
+ it "has a transaction response" do
23
+ @response.transaction_response.should_not be_nil
24
+ end
25
+
26
+ it "has a transaction id" do
27
+ @response.transaction_response.transaction_id.should == 'abc123'
28
+ end
29
+
30
+ it "has a transaction status" do
31
+ @response.transaction_response.status.should == 'Initiated'
32
+ end
33
+
34
+ it "has status shortcuts" do
35
+ @response.transaction_response.should be_initiated
36
+ end
37
+ end
38
+
39
+ describe "for a failed request" do
40
+ before do
41
+ doc = <<-XML
42
+ <?xml version=\"1.0\"?>
43
+ <ns3:PayResponse xmlns:ns3=\"http://fps.amazonaws.com/doc/2007-01-08/\">
44
+ <Status>Failure</Status>
45
+ <Errors>
46
+ <Errors>
47
+ <ErrorType>Business</ErrorType>
48
+ <IsRetriable>false</IsRetriable>
49
+ <ErrorCode>InvalidParams</ErrorCode>
50
+ <ReasonText>callerTokenId can not be empty</ReasonText>
51
+ </Errors>
52
+ </Errors>
53
+ <RequestId>7966a2d9-5ce9-4902-aefc-b01d254c931a:0</RequestId>
54
+ </ns3:PayResponse>
55
+ XML
56
+
57
+ @response = Remit::Pay::Response.new(doc)
58
+ @error = @response.errors.first
59
+ end
60
+
61
+ it_should_behave_like 'a failed response'
62
+
63
+ describe "with an invalid params error" do
64
+ it "should be a service error" do
65
+ @error.should be_kind_of(Remit::ServiceError)
66
+ end
67
+
68
+ it "should have an error type of 'Business'" do
69
+ @error.error_type.should == 'Business'
70
+ end
71
+
72
+ it "should have an error code of 'InvalidParams'" do
73
+ @error.error_code.should == 'InvalidParams'
74
+ end
75
+
76
+ it "should not be retriable" do
77
+ @error.is_retriable.should == 'false'
78
+ end
79
+
80
+ it "should have reason text" do
81
+ @error.reason_text.should == 'callerTokenId can not be empty'
82
+ end
83
+ end
84
+ end
85
+
86
+ describe "for a failed request" do
87
+ before do
88
+ doc = <<-XML
89
+ <?xml version=\"1.0\"?>
90
+ <ns3:PayResponse xmlns:ns3=\"http://fps.amazonaws.com/doc/2007-01-08/\">
91
+ <Status>Failure</Status>
92
+ <Errors>
93
+ <Errors>
94
+ <ErrorType>Business</ErrorType>
95
+ <IsRetriable>false</IsRetriable>
96
+ <ErrorCode>TokenUsageError</ErrorCode>
97
+ <ReasonText>The token \"45XU7TLBN995ZQA2U1PS1ZCTJXJMJ3H1GH6VZAB82C1BGLK9X3AXUQDA3QDLJVPX\" has violated its usage policy.</ReasonText>
98
+ </Errors>
99
+ </Errors>
100
+ <RequestId>78acff80-b740-4b57-9301-18d0576e6855:0
101
+ </RequestId>
102
+ </ns3:PayResponse>
103
+ XML
104
+
105
+ @response = Remit::Pay::Response.new(doc)
106
+ @error = @response.errors.first
107
+ end
108
+
109
+ it_should_behave_like 'a failed response'
110
+
111
+ describe "with a token usage error" do
112
+ it "should be a service error" do
113
+ @error.should be_kind_of(Remit::ServiceError)
114
+ end
115
+
116
+ it "should have an error type of 'Business'" do
117
+ @error.error_type.should == 'Business'
118
+ end
119
+
120
+ it "should have an error code of 'TokenUsageError'" do
121
+ @error.error_code.should == 'TokenUsageError'
122
+ end
123
+
124
+ it "should not be retriable" do
125
+ @error.is_retriable.should == 'false'
126
+ end
127
+
128
+ it "should have reason text" do
129
+ @error.reason_text.should == 'The token "45XU7TLBN995ZQA2U1PS1ZCTJXJMJ3H1GH6VZAB82C1BGLK9X3AXUQDA3QDLJVPX" has violated its usage policy.'
130
+ end
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,4 @@
1
+ ACCESS_KEY = 'foo'
2
+ SECRET_KEY = 'bar'
3
+
4
+ require File.dirname(__FILE__) + '/../spec_helper'
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ianlevesque-remit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ platform: ruby
6
+ authors:
7
+ - Tyler Hunt
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-27 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: relax
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.7
24
+ version:
25
+ description:
26
+ email: tyler@tylerhunt.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - LICENSE
33
+ - README.markdown
34
+ files:
35
+ - lib/remit.rb
36
+ - lib/remit/common.rb
37
+ - lib/remit/data_types.rb
38
+ - lib/remit/error_codes.rb
39
+ - lib/remit/get_pipeline.rb
40
+ - lib/remit/ipn_request.rb
41
+ - lib/remit/operations/cancel_token.rb
42
+ - lib/remit/operations/discard_results.rb
43
+ - lib/remit/operations/fund_prepaid.rb
44
+ - lib/remit/operations/get_account_activity.rb
45
+ - lib/remit/operations/get_account_balance.rb
46
+ - lib/remit/operations/get_all_credit_instruments.rb
47
+ - lib/remit/operations/get_all_prepaid_instruments.rb
48
+ - lib/remit/operations/get_debt_balance.rb
49
+ - lib/remit/operations/get_outstanding_debt_balance.rb
50
+ - lib/remit/operations/get_payment_instruction.rb
51
+ - lib/remit/operations/get_prepaid_balance.rb
52
+ - lib/remit/operations/get_results.rb
53
+ - lib/remit/operations/get_token_by_caller.rb
54
+ - lib/remit/operations/get_token_usage.rb
55
+ - lib/remit/operations/get_tokens.rb
56
+ - lib/remit/operations/get_total_prepaid_liability.rb
57
+ - lib/remit/operations/get_transaction.rb
58
+ - lib/remit/operations/install_payment_instruction.rb
59
+ - lib/remit/operations/pay.rb
60
+ - lib/remit/operations/refund.rb
61
+ - lib/remit/operations/reserve.rb
62
+ - lib/remit/operations/retry_transaction.rb
63
+ - lib/remit/operations/settle.rb
64
+ - lib/remit/operations/settle_debt.rb
65
+ - lib/remit/operations/subscribe_for_caller_notification.rb
66
+ - lib/remit/operations/unsubscribe_for_caller_notification.rb
67
+ - lib/remit/operations/write_off_debt.rb
68
+ - lib/remit/pipeline_response.rb
69
+ - LICENSE
70
+ - README.markdown
71
+ has_rdoc: true
72
+ homepage: http://github.com/tylerhunt/remit
73
+ post_install_message:
74
+ rdoc_options:
75
+ - --charset=UTF-8
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ version:
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
89
+ version:
90
+ requirements: []
91
+
92
+ rubyforge_project: remit
93
+ rubygems_version: 1.2.0
94
+ signing_key:
95
+ specification_version: 2
96
+ summary: An API for using the Amazon Flexible Payment Service (FPS).
97
+ test_files:
98
+ - spec/integrations/get_account_activity_spec.rb
99
+ - spec/integrations/get_tokens_spec.rb
100
+ - spec/units/get_pipeline_spec.rb
101
+ - spec/units/get_results_spec.rb
102
+ - spec/units/ipn_request_spec.rb
103
+ - spec/units/pay_spec.rb
104
+ - spec/integrations/integrations_helper.rb
105
+ - spec/spec_helper.rb
106
+ - spec/units/units_helper.rb