killbill-client 2.4.0 → 3.3.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.
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