killbill-client 2.4.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +24 -118
  3. data/.github/CONTRIBUTING.md +20 -0
  4. data/.github/FUNDING.yml +3 -0
  5. data/.github/workflows/ci.yml +145 -0
  6. data/.github/workflows/release.yml +46 -0
  7. data/README.md +2 -1
  8. data/bin/retry +21 -0
  9. data/docker/docker-compose.ci.mysql.yml +21 -0
  10. data/docker/docker-compose.ci.postgresql.yml +21 -0
  11. data/killbill_client.gemspec +2 -1
  12. data/lib/killbill_client.rb +2 -0
  13. data/lib/killbill_client/api/api.rb +1 -1
  14. data/lib/killbill_client/api/net_http_adapter.rb +30 -16
  15. data/lib/killbill_client/models/account.rb +12 -24
  16. data/lib/killbill_client/models/admin.rb +131 -0
  17. data/lib/killbill_client/models/bundle.rb +2 -0
  18. data/lib/killbill_client/models/credit.rb +5 -5
  19. data/lib/killbill_client/models/custom_field.rb +17 -0
  20. data/lib/killbill_client/models/gen/account_attributes.rb +0 -1
  21. data/lib/killbill_client/models/gen/{block_price_override_attributes.rb → block_price_attributes.rb} +1 -1
  22. data/lib/killbill_client/models/gen/invoice_attributes.rb +1 -0
  23. data/lib/killbill_client/models/gen/invoice_item_attributes.rb +1 -0
  24. data/lib/killbill_client/models/gen/overdue_state_attributes.rb +0 -1
  25. data/lib/killbill_client/models/gen/{phase_price_override_attributes.rb → phase_price_attributes.rb} +2 -2
  26. data/lib/killbill_client/models/gen/require_gen.rb +52 -53
  27. data/lib/killbill_client/models/gen/subscription_attributes.rb +2 -0
  28. data/lib/killbill_client/models/gen/{tier_price_override_attributes.rb → tier_price_attributes.rb} +2 -2
  29. data/lib/killbill_client/models/gen/{usage_price_override_attributes.rb → usage_price_attributes.rb} +2 -2
  30. data/lib/killbill_client/models/helpers/custom_field_helper.rb +1 -1
  31. data/lib/killbill_client/models/invoice.rb +7 -7
  32. data/lib/killbill_client/models/invoice_item.rb +4 -1
  33. data/lib/killbill_client/models/invoice_payment.rb +3 -0
  34. data/lib/killbill_client/models/models.rb +1 -0
  35. data/lib/killbill_client/models/resource.rb +1 -1
  36. data/lib/killbill_client/models/subscription.rb +23 -1
  37. data/lib/killbill_client/version.rb +1 -16
  38. data/spec/killbill_client/http_adapter_spec.rb +38 -0
  39. data/spec/killbill_client/remote/model_spec.rb +15 -12
  40. metadata +30 -9
  41. data/lib/killbill_client/models/gen/credit_attributes.rb +0 -43
  42. data/lib/killbill_client/models/gen/invoice_email_attributes.rb +0 -35
@@ -51,7 +51,6 @@ module KillBillClient
51
51
  attribute :phone
52
52
  attribute :notes
53
53
  attribute :is_migrated
54
- attribute :is_notified_for_invoices
55
54
  attribute :account_balance
56
55
  attribute :account_cba
57
56
  attribute :audit_logs
@@ -27,7 +27,7 @@
27
27
 
28
28
  module KillBillClient
29
29
  module Model
30
- class BlockPriceOverrideAttributes < Resource
30
+ class BlockPriceAttributes < Resource
31
31
  attribute :unit_name
32
32
  attribute :size
33
33
  attribute :price
@@ -42,6 +42,7 @@ module KillBillClient
42
42
  attribute :bundle_keys
43
43
  attribute :credits
44
44
  attribute :items
45
+ attribute :tracking_ids
45
46
  attribute :is_parent_invoice
46
47
  attribute :parent_invoice_id
47
48
  attribute :parent_account_id
@@ -52,6 +52,7 @@ module KillBillClient
52
52
  attribute :currency
53
53
  attribute :quantity
54
54
  attribute :item_details
55
+ attribute :catalog_effective_date
55
56
  attribute :child_items
56
57
  attribute :audit_logs
57
58
  end
@@ -30,7 +30,6 @@ module KillBillClient
30
30
  class OverdueStateAttributes < Resource
31
31
  attribute :name
32
32
  attribute :external_message
33
- attribute :days_between_payment_retries
34
33
  attribute :is_disable_entitlement_and_changes_blocked
35
34
  attribute :is_block_changes
36
35
  attribute :is_clear_state
@@ -27,13 +27,13 @@
27
27
 
28
28
  module KillBillClient
29
29
  module Model
30
- class PhasePriceOverrideAttributes < Resource
30
+ class PhasePriceAttributes < Resource
31
31
  attribute :plan_name
32
32
  attribute :phase_name
33
33
  attribute :phase_type
34
34
  attribute :fixed_price
35
35
  attribute :recurring_price
36
- attribute :usage_overrides
36
+ attribute :usage_prices
37
37
  end
38
38
  end
39
39
  end
@@ -24,7 +24,27 @@
24
24
  # File automatically generated by killbill-java-parser (git@github.com:killbill/killbill-java-parser.git)
25
25
  #
26
26
 
27
- require 'killbill_client/models/gen/invoice_dry_run_attributes'
27
+
28
+ require 'killbill_client/models/gen/invoice_item_attributes'
29
+ require 'killbill_client/models/gen/combo_hosted_payment_page_attributes'
30
+ require 'killbill_client/models/gen/simple_plan_attributes'
31
+ require 'killbill_client/models/gen/bundle_timeline_attributes'
32
+ require 'killbill_client/models/gen/payment_transaction_attributes'
33
+ require 'killbill_client/models/gen/unit_usage_record_attributes'
34
+ require 'killbill_client/models/gen/usage_record_attributes'
35
+ require 'killbill_client/models/gen/subscription_usage_record_attributes'
36
+ require 'killbill_client/models/gen/rolled_up_unit_attributes'
37
+ require 'killbill_client/models/gen/rolled_up_usage_attributes'
38
+ require 'killbill_client/models/gen/role_definition_attributes'
39
+ require 'killbill_client/models/gen/usage_price_attributes'
40
+ require 'killbill_client/models/gen/combo_payment_transaction_attributes'
41
+ require 'killbill_client/models/gen/hosted_payment_page_fields_attributes'
42
+ require 'killbill_client/models/gen/plan_detail_attributes'
43
+ require 'killbill_client/models/gen/invoice_payment_transaction_attributes'
44
+ require 'killbill_client/models/gen/overdue_attributes'
45
+ require 'killbill_client/models/gen/tier_price_attributes'
46
+ require 'killbill_client/models/gen/tag_definition_attributes'
47
+ require 'killbill_client/models/gen/hosted_payment_page_billing_address_attributes'
28
48
  require 'killbill_client/models/gen/unit_attributes'
29
49
  require 'killbill_client/models/gen/product_attributes'
30
50
  require 'killbill_client/models/gen/plan_attributes'
@@ -37,67 +57,46 @@ require 'killbill_client/models/gen/price_attributes'
37
57
  require 'killbill_client/models/gen/price_list_attributes'
38
58
  require 'killbill_client/models/gen/duration_attributes'
39
59
  require 'killbill_client/models/gen/catalog_attributes'
60
+ require 'killbill_client/models/gen/custom_field_attributes'
61
+ require 'killbill_client/models/gen/overdue_state_attributes'
62
+ require 'killbill_client/models/gen/overdue_condition_attributes'
63
+ require 'killbill_client/models/gen/bundle_attributes'
64
+ require 'killbill_client/models/gen/invoice_attributes'
40
65
  require 'killbill_client/models/gen/payment_attributes'
41
- require 'killbill_client/models/gen/tag_definition_attributes'
42
- require 'killbill_client/models/gen/payment_transaction_attributes'
43
- require 'killbill_client/models/gen/bulk_subscriptions_bundle_attributes'
44
- require 'killbill_client/models/gen/simple_plan_attributes'
45
66
  require 'killbill_client/models/gen/node_command_attributes'
46
- require 'killbill_client/models/gen/hosted_payment_page_customer_attributes'
47
- require 'killbill_client/models/gen/invoice_email_attributes'
48
- require 'killbill_client/models/gen/invoice_payment_attributes'
49
- require 'killbill_client/models/gen/stack_trace_element_attributes'
50
- require 'killbill_client/models/gen/billing_exception_attributes'
51
- require 'killbill_client/models/gen/usage_price_override_attributes'
67
+ require 'killbill_client/models/gen/payment_method_plugin_detail_attributes'
68
+ require 'killbill_client/models/gen/payment_method_attributes'
69
+ require 'killbill_client/models/gen/node_command_property_attributes'
52
70
  require 'killbill_client/models/gen/tenant_key_value_attributes'
53
- require 'killbill_client/models/gen/credit_attributes'
54
- require 'killbill_client/models/gen/account_timeline_attributes'
55
- require 'killbill_client/models/gen/tag_attributes'
71
+ require 'killbill_client/models/gen/phase_price_attributes'
72
+ require 'killbill_client/models/gen/overdue_state_config_attributes'
73
+ require 'killbill_client/models/gen/invoice_payment_attributes'
74
+ require 'killbill_client/models/gen/blocking_state_attributes'
75
+ require 'killbill_client/models/gen/audit_log_attributes'
56
76
  require 'killbill_client/models/gen/payment_attempt_attributes'
77
+ require 'killbill_client/models/gen/node_info_attributes'
57
78
  require 'killbill_client/models/gen/notification_attributes'
58
- require 'killbill_client/models/gen/overdue_state_attributes'
59
- require 'killbill_client/models/gen/custom_field_attributes'
60
- require 'killbill_client/models/gen/role_definition_attributes'
61
- require 'killbill_client/models/gen/tier_price_override_attributes'
62
- require 'killbill_client/models/gen/invoice_item_attributes'
63
- require 'killbill_client/models/gen/plugin_property_attributes'
64
- require 'killbill_client/models/gen/admin_payment_attributes'
65
79
  require 'killbill_client/models/gen/event_subscription_attributes'
66
80
  require 'killbill_client/models/gen/subscription_attributes'
81
+ require 'killbill_client/models/gen/account_timeline_attributes'
82
+ require 'killbill_client/models/gen/plugin_service_info_attributes'
83
+ require 'killbill_client/models/gen/plugin_info_attributes'
67
84
  require 'killbill_client/models/gen/tenant_attributes'
68
- require 'killbill_client/models/gen/unit_usage_record_attributes'
69
- require 'killbill_client/models/gen/usage_record_attributes'
70
- require 'killbill_client/models/gen/subscription_usage_record_attributes'
71
- require 'killbill_client/models/gen/gateway_notification_attributes'
72
- require 'killbill_client/models/gen/audit_log_attributes'
73
- require 'killbill_client/models/gen/invoice_payment_transaction_attributes'
74
- require 'killbill_client/models/gen/account_attributes'
75
- require 'killbill_client/models/gen/invoice_attributes'
76
- require 'killbill_client/models/gen/block_price_override_attributes'
85
+ require 'killbill_client/models/gen/plugin_property_attributes'
86
+ require 'killbill_client/models/gen/user_roles_attributes'
77
87
  require 'killbill_client/models/gen/profiling_data_attributes_item'
78
88
  require 'killbill_client/models/gen/profiling_data_attributes'
79
- require 'killbill_client/models/gen/combo_payment_transaction_attributes'
80
- require 'killbill_client/models/gen/hosted_payment_page_fields_attributes'
81
- require 'killbill_client/models/gen/bundle_attributes'
82
- require 'killbill_client/models/gen/combo_hosted_payment_page_attributes'
83
- require 'killbill_client/models/gen/plan_detail_attributes'
84
- require 'killbill_client/models/gen/overdue_attributes'
85
- require 'killbill_client/models/gen/user_roles_attributes'
86
- require 'killbill_client/models/gen/bundle_timeline_attributes'
87
- require 'killbill_client/models/gen/plugin_service_info_attributes'
88
- require 'killbill_client/models/gen/plugin_info_attributes'
89
- require 'killbill_client/models/gen/phase_price_override_attributes'
89
+ require 'killbill_client/models/gen/admin_payment_attributes'
90
+ require 'killbill_client/models/gen/account_email_attributes'
90
91
  require 'killbill_client/models/gen/hosted_payment_page_form_descriptor_attributes'
91
- require 'killbill_client/models/gen/blocking_state_attributes'
92
- require 'killbill_client/models/gen/overdue_state_config_attributes'
93
- require 'killbill_client/models/gen/node_command_property_attributes'
94
- require 'killbill_client/models/gen/overdue_condition_attributes'
95
- require 'killbill_client/models/gen/hosted_payment_page_billing_address_attributes'
96
- require 'killbill_client/models/gen/rolled_up_unit_attributes'
97
- require 'killbill_client/models/gen/rolled_up_usage_attributes'
92
+ require 'killbill_client/models/gen/bulk_subscriptions_bundle_attributes'
93
+ require 'killbill_client/models/gen/subject_attributes'
94
+ require 'killbill_client/models/gen/stack_trace_element_attributes'
95
+ require 'killbill_client/models/gen/billing_exception_attributes'
96
+ require 'killbill_client/models/gen/hosted_payment_page_customer_attributes'
97
+ require 'killbill_client/models/gen/gateway_notification_attributes'
98
+ require 'killbill_client/models/gen/account_attributes'
99
+ require 'killbill_client/models/gen/invoice_dry_run_attributes'
98
100
  require 'killbill_client/models/gen/session_attributes'
99
- require 'killbill_client/models/gen/node_info_attributes'
100
- require 'killbill_client/models/gen/account_email_attributes'
101
- require 'killbill_client/models/gen/payment_method_plugin_detail_attributes'
102
- require 'killbill_client/models/gen/payment_method_attributes'
103
- require 'killbill_client/models/gen/subject_attributes'
101
+ require 'killbill_client/models/gen/block_price_attributes'
102
+ require 'killbill_client/models/gen/tag_attributes'
@@ -30,6 +30,7 @@ module KillBillClient
30
30
  class SubscriptionAttributes < Resource
31
31
  attribute :account_id
32
32
  attribute :bundle_id
33
+ attribute :bundle_external_key
33
34
  attribute :subscription_id
34
35
  attribute :external_key
35
36
  attribute :start_date
@@ -48,6 +49,7 @@ module KillBillClient
48
49
  attribute :bill_cycle_day_local
49
50
  attribute :events
50
51
  attribute :price_overrides
52
+ attribute :prices
51
53
  attribute :audit_logs
52
54
  end
53
55
  end
@@ -27,8 +27,8 @@
27
27
 
28
28
  module KillBillClient
29
29
  module Model
30
- class TierPriceOverrideAttributes < Resource
31
- attribute :block_price_overrides
30
+ class TierPriceAttributes < Resource
31
+ attribute :block_prices
32
32
  end
33
33
  end
34
34
  end
@@ -27,12 +27,12 @@
27
27
 
28
28
  module KillBillClient
29
29
  module Model
30
- class UsagePriceOverrideAttributes < Resource
30
+ class UsagePriceAttributes < Resource
31
31
  attribute :usage_name
32
32
  attribute :usage_type
33
33
  attribute :billing_mode
34
34
  attribute :tier_block_policy
35
- attribute :tier_price_overrides
35
+ attribute :tier_prices
36
36
  end
37
37
  end
38
38
  end
@@ -71,7 +71,7 @@ module KillBillClient
71
71
  self.class.delete "#{url_prefix}/#{send(id_alias)}/customFields",
72
72
  {},
73
73
  {
74
- :customFieldList => custom_fields_param
74
+ :customField => custom_fields_param
75
75
  },
76
76
  {
77
77
  :user => user,
@@ -4,41 +4,41 @@ module KillBillClient
4
4
 
5
5
  include KillBillClient::Model::CustomFieldHelper
6
6
  include KillBillClient::Model::TagHelper
7
+ include KillBillClient::Model::AuditLogWithHistoryHelper
7
8
 
8
9
  KILLBILL_API_INVOICES_PREFIX = "#{KILLBILL_API_PREFIX}/invoices"
9
10
  KILLBILL_API_DRY_RUN_INVOICES_PREFIX = "#{KILLBILL_API_INVOICES_PREFIX}/dryRun"
10
11
 
11
12
  has_many :audit_logs, KillBillClient::Model::AuditLog
12
13
  has_many :items, KillBillClient::Model::InvoiceItem
13
- has_many :credits, KillBillClient::Model::Credit
14
+ has_many :credits, KillBillClient::Model::InvoiceItem
14
15
 
15
16
  has_custom_fields KILLBILL_API_INVOICES_PREFIX, :invoice_id
16
17
  has_tags KILLBILL_API_INVOICES_PREFIX, :invoice_id
18
+ has_audit_logs_with_history KILLBILL_API_INVOICES_PREFIX, :invoice_id
19
+
17
20
 
18
21
  class << self
19
- def find_by_id(invoice_id, with_items = true, audit = "NONE", options = {})
22
+ def find_by_id(invoice_id, audit = "NONE", options = {})
20
23
  get "#{KILLBILL_API_INVOICES_PREFIX}/#{invoice_id}",
21
24
  {
22
- :withItems => with_items,
23
25
  :audit => audit
24
26
  },
25
27
  options
26
28
  end
27
29
 
28
- def find_by_number(number, with_items = true, audit = "NONE", options = {})
30
+ def find_by_number(number, audit = "NONE", options = {})
29
31
  get "#{KILLBILL_API_INVOICES_PREFIX}/byNumber/#{number}",
30
32
  {
31
- :withItems => with_items,
32
33
  :audit => audit
33
34
  },
34
35
  options
35
36
  end
36
37
 
37
- def find_by_invoice_item_id(invoice_item_id, with_items = true, with_children_items = false, audit = "NONE", options = {})
38
+ def find_by_invoice_item_id(invoice_item_id, with_children_items = false, audit = "NONE", options = {})
38
39
  get "#{KILLBILL_API_INVOICES_PREFIX}/byItemId/#{invoice_item_id}",
39
40
  {
40
41
  :withChildrenItems => with_children_items,
41
- :withItems => with_items,
42
42
  :audit => audit
43
43
  },
44
44
  options
@@ -6,12 +6,15 @@ module KillBillClient
6
6
 
7
7
  include KillBillClient::Model::TagHelper
8
8
  include KillBillClient::Model::CustomFieldHelper
9
+ include KillBillClient::Model::AuditLogWithHistoryHelper
9
10
 
10
11
  has_custom_fields KILLBILL_API_INVOICE_ITEMS_PREFIX, :invoice_item_id
11
12
  has_tags KILLBILL_API_INVOICE_ITEMS_PREFIX, :invoice_item_id
12
-
13
13
  has_many :audit_logs, KillBillClient::Model::AuditLog
14
14
 
15
+ has_audit_logs_with_history KILLBILL_API_INVOICE_ITEMS_PREFIX, :invoice_item_id
16
+
17
+
15
18
  # DO NOT DELETE THIS METHOD
16
19
  def tags(included_deleted = false, audit = 'NONE', options = {})
17
20
  params = {}
@@ -4,6 +4,7 @@ module KillBillClient
4
4
 
5
5
  include KillBillClient::Model::CustomFieldHelper
6
6
  include KillBillClient::Model::TagHelper
7
+ include KillBillClient::Model::AuditLogWithHistoryHelper
7
8
 
8
9
  KILLBILL_API_INVOICE_PAYMENTS_PREFIX = "#{KILLBILL_API_PREFIX}/invoicePayments"
9
10
 
@@ -14,6 +15,8 @@ module KillBillClient
14
15
  has_custom_fields KILLBILL_API_INVOICE_PAYMENTS_PREFIX, :payment_id
15
16
  has_tags KILLBILL_API_INVOICE_PAYMENTS_PREFIX, :payment_id
16
17
 
18
+ has_audit_logs_with_history KILLBILL_API_INVOICE_PAYMENTS_PREFIX, :payment_id
19
+
17
20
  class << self
18
21
  def find_by_id(payment_id, with_plugin_info = false, with_attempts = false, options = {})
19
22
  get "#{KILLBILL_API_INVOICE_PAYMENTS_PREFIX}/#{payment_id}",
@@ -42,6 +42,7 @@ require 'killbill_client/models/usage_record'
42
42
  require 'killbill_client/models/rolled_up_usage'
43
43
  require 'killbill_client/models/account_timeline'
44
44
  require 'killbill_client/models/nodes_info'
45
+ require 'killbill_client/models/admin'
45
46
 
46
47
  require 'killbill_client/models/export'
47
48
 
@@ -9,7 +9,7 @@ module KillBillClient
9
9
  :session_id,
10
10
  :response
11
11
 
12
- KILLBILL_API_PREFIX = '/1.0/kb/'
12
+ KILLBILL_API_PREFIX = '/1.0/kb'
13
13
  KILLBILL_API_PAGINATION_PREFIX = 'pagination'
14
14
 
15
15
  @@attribute_names = {}
@@ -4,21 +4,42 @@ module KillBillClient
4
4
 
5
5
  include KillBillClient::Model::TagHelper
6
6
  include KillBillClient::Model::CustomFieldHelper
7
+ include KillBillClient::Model::AuditLogWithHistoryHelper
7
8
 
8
9
  KILLBILL_API_ENTITLEMENT_PREFIX = "#{KILLBILL_API_PREFIX}/subscriptions"
9
10
 
10
11
  has_many :events, KillBillClient::Model::EventSubscription
11
- has_many :price_overrides, KillBillClient::Model::PhasePriceOverrideAttributes
12
+ has_many :price_overrides, KillBillClient::Model::PhasePriceAttributes
12
13
 
13
14
  has_custom_fields KILLBILL_API_ENTITLEMENT_PREFIX, :subscription_id
14
15
  has_tags KILLBILL_API_ENTITLEMENT_PREFIX, :subscription_id
15
16
 
17
+ has_audit_logs_with_history KILLBILL_API_ENTITLEMENT_PREFIX, :subscription_id
18
+
16
19
  class << self
17
20
  def find_by_id(subscription_id, options = {})
18
21
  get "#{KILLBILL_API_ENTITLEMENT_PREFIX}/#{subscription_id}",
19
22
  {},
20
23
  options
21
24
  end
25
+
26
+ def find_by_external_key(external_key, options = {})
27
+ params = {}
28
+ params[:externalKey] = external_key
29
+
30
+ get "#{KILLBILL_API_ENTITLEMENT_PREFIX}",
31
+ params,
32
+ options
33
+ end
34
+
35
+
36
+ def event_audit_logs_with_history(event_id, options = {})
37
+ get "#{KILLBILL_API_ENTITLEMENT_PREFIX}/events/#{event_id}/auditLogsWithHistory",
38
+ {},
39
+ options,
40
+ AuditLog
41
+ end
42
+
22
43
  end
23
44
  #
24
45
  # Create a new entitlement
@@ -196,6 +217,7 @@ module KillBillClient
196
217
  :comment => comment,
197
218
  }.merge(options)
198
219
  end
220
+
199
221
  end
200
222
  end
201
223
  end
@@ -1,18 +1,3 @@
1
1
  module KillBillClient
2
- module Version
3
- MAJOR = 2
4
- MINOR = 4
5
- PATCH = 0
6
- PRE = nil
7
-
8
- VERSION = [MAJOR, MINOR, PATCH, PRE].compact.join('.').freeze
9
-
10
- class << self
11
- def inspect
12
- VERSION.dup
13
- end
14
-
15
- alias to_s inspect
16
- end
17
- end
2
+ VERSION = '3.3.0'
18
3
  end
@@ -1,6 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe KillBillClient::API do
4
+
5
+ before do
6
+ KillBillClient.url = nil
7
+ KillBillClient.disable_ssl_verification = nil
8
+ KillBillClient.read_timeout = nil
9
+ KillBillClient.connection_timeout = nil
10
+ end
11
+
4
12
  let(:expected_query_params) {
5
13
  [
6
14
  'controlPluginName=killbill-example-plugin',
@@ -55,11 +63,33 @@ describe KillBillClient::API do
55
63
  http_adapter = DummyForHTTPAdapter.new
56
64
  http_client = http_adapter.send(:create_http_client, uri)
57
65
  expect(http_client.read_timeout).to eq(60)
66
+ # The default value has changed from nil to 60 in 2.4
67
+ #expect(http_client.open_timeout).to eq(60)
58
68
  expect(http_client.use_ssl?).to be false
59
69
  expect(http_client.verify_mode).to be_nil
60
70
  end
61
71
 
72
+ it 'should set the global parameters for http client' do
73
+ KillBillClient.url = 'https://example.com'
74
+ KillBillClient.read_timeout = 123000
75
+ KillBillClient.connection_timeout = 456000
76
+ KillBillClient.disable_ssl_verification = true
77
+
78
+ http_adapter = DummyForHTTPAdapter.new
79
+ http_client = http_adapter.send(:create_http_client, ssl_uri, {})
80
+ expect(http_client.read_timeout).to eq(123)
81
+ expect(http_client.open_timeout).to eq(456)
82
+ expect(http_client.use_ssl?).to be true
83
+ expect(http_client.verify_mode).to eq(OpenSSL::SSL::VERIFY_NONE)
84
+ end
85
+
62
86
  it 'should set the correct parameters for http client' do
87
+ # These don't matter (overridden by options)
88
+ KillBillClient.url = 'https://example.com'
89
+ KillBillClient.read_timeout = 123000
90
+ KillBillClient.connection_timeout = 456000
91
+ KillBillClient.disable_ssl_verification = false
92
+
63
93
  http_adapter = DummyForHTTPAdapter.new
64
94
  http_client = http_adapter.send(:create_http_client, ssl_uri, options)
65
95
  expect(http_client.read_timeout).to eq(options[:read_timeout] / 1000)
@@ -68,6 +98,14 @@ describe KillBillClient::API do
68
98
  expect(http_client.verify_mode).to eq(OpenSSL::SSL::VERIFY_NONE)
69
99
  end
70
100
 
101
+ # See https://github.com/killbill/killbill-client-ruby/issues/69
102
+ it 'should construct URIs' do
103
+ KillBillClient.url = 'http://example.com:8080'
104
+
105
+ http_adapter = DummyForHTTPAdapter.new
106
+ uri = http_adapter.send(:build_uri, KillBillClient::Model::Account::KILLBILL_API_ACCOUNTS_PREFIX, options)
107
+ expect(uri).to eq(URI.parse("#{KillBillClient::API.base_uri.to_s}/1.0/kb/accounts"))
108
+ end
71
109
  end
72
110
 
73
111
  class DummyForHTTPAdapter