digicert 0.1.0 → 0.1.1

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 (138) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.hound.yml +3 -0
  4. data/.rspec +0 -1
  5. data/.rubocop.yml +629 -0
  6. data/.sample.env +4 -0
  7. data/.sample.pryrc +3 -0
  8. data/.travis.yml +5 -2
  9. data/LICENSE.txt +21 -0
  10. data/README.md +812 -9
  11. data/bin/console +2 -5
  12. data/bin/rspec +17 -0
  13. data/digicert.gemspec +7 -14
  14. data/lib/digicert.rb +40 -2
  15. data/lib/digicert/actions.rb +9 -0
  16. data/lib/digicert/actions/all.rb +27 -0
  17. data/lib/digicert/actions/base.rb +11 -0
  18. data/lib/digicert/actions/create.rb +25 -0
  19. data/lib/digicert/actions/fetch.rb +21 -0
  20. data/lib/digicert/actions/update.rb +25 -0
  21. data/lib/digicert/base.rb +35 -0
  22. data/lib/digicert/base_order.rb +39 -0
  23. data/lib/digicert/certificate.rb +43 -0
  24. data/lib/digicert/certificate_downloader.rb +137 -0
  25. data/lib/digicert/certificate_request.rb +19 -0
  26. data/lib/digicert/client_certificate/base.rb +17 -0
  27. data/lib/digicert/client_certificate/digital_signature_plus.rb +13 -0
  28. data/lib/digicert/client_certificate/email_security_plus.rb +13 -0
  29. data/lib/digicert/client_certificate/premium.rb +17 -0
  30. data/lib/digicert/config.rb +21 -0
  31. data/lib/digicert/configuration.rb +26 -0
  32. data/lib/digicert/container.rb +35 -0
  33. data/lib/digicert/container_template.rb +32 -0
  34. data/lib/digicert/csr_generator.rb +43 -0
  35. data/lib/digicert/debugger.rb +34 -0
  36. data/lib/digicert/domain.rb +59 -0
  37. data/lib/digicert/duplicate_certificate.rb +21 -0
  38. data/lib/digicert/duplicate_certificate_finder.rb +42 -0
  39. data/lib/digicert/email_validation.rb +35 -0
  40. data/lib/digicert/errors.rb +30 -0
  41. data/lib/digicert/errors/forbidden.rb +9 -0
  42. data/lib/digicert/errors/request_error.rb +37 -0
  43. data/lib/digicert/errors/server_error.rb +9 -0
  44. data/lib/digicert/errors/unauthorized.rb +9 -0
  45. data/lib/digicert/expiring_order.rb +21 -0
  46. data/lib/digicert/findable.rb +33 -0
  47. data/lib/digicert/order.rb +81 -0
  48. data/lib/digicert/order_cancellation.rb +25 -0
  49. data/lib/digicert/order_duplicator.rb +11 -0
  50. data/lib/digicert/order_manager.rb +39 -0
  51. data/lib/digicert/order_reissuer.rb +11 -0
  52. data/lib/digicert/organization.rb +43 -0
  53. data/lib/digicert/product.rb +14 -0
  54. data/lib/digicert/request.rb +123 -0
  55. data/lib/digicert/response.rb +30 -0
  56. data/lib/digicert/ssl_certificate/base.rb +9 -0
  57. data/lib/digicert/ssl_certificate/ssl_ev_plus.rb +13 -0
  58. data/lib/digicert/ssl_certificate/ssl_plus.rb +13 -0
  59. data/lib/digicert/ssl_certificate/ssl_wildcard.rb +13 -0
  60. data/lib/digicert/version.rb +23 -1
  61. data/spec/acceptance/certificate_download_spec.rb +68 -0
  62. data/spec/acceptance/duplicating_certificate_spec.rb +86 -0
  63. data/spec/acceptance/reissuing_certificate_spec.rb +104 -0
  64. data/spec/digicert/actions/all_spec.rb +26 -0
  65. data/spec/digicert/actions/create_spec.rb +47 -0
  66. data/spec/digicert/actions/fetch_spec.rb +28 -0
  67. data/spec/digicert/actions/update_spec.rb +39 -0
  68. data/spec/digicert/certificate_downloader_spec.rb +89 -0
  69. data/spec/digicert/certificate_request_spec.rb +49 -0
  70. data/spec/digicert/certificate_spec.rb +93 -0
  71. data/spec/digicert/client_certificate/digital_signature_plus_spec.rb +32 -0
  72. data/spec/digicert/client_certificate/email_security_plus_spec.rb +36 -0
  73. data/spec/digicert/client_certificate/premium_spec.rb +34 -0
  74. data/spec/digicert/config_spec.rb +39 -0
  75. data/spec/digicert/container_spec.rb +44 -0
  76. data/spec/digicert/container_template_spec.rb +32 -0
  77. data/spec/digicert/csr_generator_spec.rb +31 -0
  78. data/spec/digicert/domain_spec.rb +89 -0
  79. data/spec/digicert/duplicate_certificate_finder_spec.rb +27 -0
  80. data/spec/digicert/duplicate_certificate_spec.rb +15 -0
  81. data/spec/digicert/email_validation_spec.rb +26 -0
  82. data/spec/digicert/expiring_order_spec.rb +16 -0
  83. data/spec/digicert/findable_spec.rb +19 -0
  84. data/spec/digicert/order_cancellation_spec.rb +24 -0
  85. data/spec/digicert/order_duplicator_spec.rb +35 -0
  86. data/spec/digicert/order_reissuer_spec.rb +35 -0
  87. data/spec/digicert/order_spec.rb +134 -0
  88. data/spec/digicert/organization_spec.rb +61 -0
  89. data/spec/digicert/product_spec.rb +28 -0
  90. data/spec/digicert/request_spec.rb +47 -0
  91. data/spec/digicert/ssl_certificate/ssl_ev_plus_spec.rb +35 -0
  92. data/spec/digicert/ssl_certificate/ssl_plus_spec.rb +36 -0
  93. data/spec/digicert/ssl_certificate/ssl_wildcard_spec.rb +35 -0
  94. data/spec/fixtures/certificate.pem +79 -0
  95. data/spec/fixtures/certificate.zip +0 -0
  96. data/spec/fixtures/certificate_request.json +116 -0
  97. data/spec/fixtures/certificate_requests.json +59 -0
  98. data/spec/fixtures/certificate_revoked.json +13 -0
  99. data/spec/fixtures/container.json +15 -0
  100. data/spec/fixtures/container_created.json +3 -0
  101. data/spec/fixtures/container_template.json +15 -0
  102. data/spec/fixtures/container_templates.json +14 -0
  103. data/spec/fixtures/containers.json +14 -0
  104. data/spec/fixtures/domain.json +71 -0
  105. data/spec/fixtures/domain_created.json +3 -0
  106. data/spec/fixtures/domains.json +49 -0
  107. data/spec/fixtures/email_validations.json +17 -0
  108. data/spec/fixtures/empty.json +0 -0
  109. data/spec/fixtures/errors.json +6 -0
  110. data/spec/fixtures/expiring_orders.json +20 -0
  111. data/spec/fixtures/order.json +107 -0
  112. data/spec/fixtures/order_created.json +9 -0
  113. data/spec/fixtures/order_duplicated.json +8 -0
  114. data/spec/fixtures/order_duplications.json +57 -0
  115. data/spec/fixtures/order_reissued.json +8 -0
  116. data/spec/fixtures/orders.json +93 -0
  117. data/spec/fixtures/organization.json +35 -0
  118. data/spec/fixtures/organization_created.json +3 -0
  119. data/spec/fixtures/organizations.json +84 -0
  120. data/spec/fixtures/ping.json +3 -0
  121. data/spec/fixtures/product.json +71 -0
  122. data/spec/fixtures/products.json +100 -0
  123. data/spec/fixtures/rsa4096.key +51 -0
  124. data/spec/requests/certificate_duplication_spec.rb +41 -0
  125. data/spec/requests/certificate_generation_spec.rb +93 -0
  126. data/spec/requests/certificate_reissuing_spec.rb +38 -0
  127. data/spec/requests/container_management_spec.rb +36 -0
  128. data/spec/requests/domain_management_spec.rb +64 -0
  129. data/spec/requests/order_client_email_security_plus_spec.rb +38 -0
  130. data/spec/requests/order_management_spec.rb +24 -0
  131. data/spec/requests/order_ssl_ev_plus_spec.rb +57 -0
  132. data/spec/requests/order_ssl_wildcard_spec.rb +57 -0
  133. data/spec/requests/organization_management_spec.rb +22 -0
  134. data/spec/requests/product_management_spec.rb +24 -0
  135. data/spec/requests/request_management_spec.rb +24 -0
  136. data/spec/spec_helper.rb +35 -0
  137. data/spec/support/fake_digicert_api.rb +324 -0
  138. metadata +162 -5
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::Container do
4
+ describe ".all" do
5
+ it "retrieves the list of containers" do
6
+ stub_digicert_container_list_api
7
+ containers = Digicert::Container.all
8
+
9
+ expect(containers.first.id).not_to be_nil
10
+ expect(containers.first.name).to eq("Ribose Inc.")
11
+ end
12
+ end
13
+
14
+ describe ".create" do
15
+ it "creates a new sub container" do
16
+ stub_digicert_container_create_api(container_attributes)
17
+ container = Digicert::Container.create(container_attributes)
18
+
19
+ expect(container.id).not_to be_nil
20
+ end
21
+ end
22
+
23
+ describe ".fetch" do
24
+ it "retrieves the details for a container" do
25
+ container_id = 123_456_789
26
+
27
+ stub_digicert_container_fetch_api(container_id)
28
+ container = Digicert::Container.fetch(container_id)
29
+
30
+ expect(container.name).not_to be_nil
31
+ expect(container.parent_id).not_to be_nil
32
+ expect(container.allowed_domain_names.first).to eq("abc.xyz")
33
+ end
34
+ end
35
+
36
+ def container_attributes
37
+ {
38
+ container_id: 123_456_789,
39
+ name: "History Department",
40
+ template_id: 5,
41
+ description: "History, Civ, Ancient Languages",
42
+ }
43
+ end
44
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::ContainerTemplate do
4
+ describe ".all" do
5
+ it "retrieves the list of all container tempaltes" do
6
+ container_id = 123_456_789
7
+
8
+ stub_digicert_container_template_list_api(container_id)
9
+ container_templates = Digicert::ContainerTemplate.all(container_id)
10
+
11
+ expect(container_templates.count).to eq(2)
12
+ expect(container_templates.first.id).not_to be_nil
13
+ expect(container_templates.first.name).not_to be_nil
14
+ end
15
+ end
16
+
17
+ describe ".fetch" do
18
+ it "retrieves the specific container tempalte" do
19
+ template_id = 987_654_321
20
+ container_id = 123_456_789
21
+ stub_digicert_container_template_fetch_api(template_id, container_id)
22
+
23
+ container_template = Digicert::ContainerTemplate.fetch(
24
+ container_id: container_id, template_id: template_id,
25
+ )
26
+
27
+ expect(container_template.id).not_to be_nil
28
+ expect(container_template.name).not_to be_nil
29
+ expect(container_template.access_roles.first.name).to eq("Administrator")
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::CSRGenerator do
4
+ describe ".generate" do
5
+ it "returns the generated csr content" do
6
+ csr = Digicert::CSRGenerator.generate(
7
+ rsa_key: rsa_key_content,
8
+ organization: ribose_inc,
9
+ common_name: "ribosetest.com",
10
+ )
11
+
12
+ expect(csr.start_with?("-----BEGIN CERTIFICATE REQUEST")).to be_truthy
13
+ expect(csr.end_with?("--END CERTIFICATE REQUEST-----\n")).to be_truthy
14
+ end
15
+ end
16
+
17
+ def rsa_key_content
18
+ rsa_key_path = "../../fixtures/rsa4096.key"
19
+ File.read(File.expand_path(rsa_key_path, __FILE__))
20
+ end
21
+
22
+ def ribose_inc
23
+ double(
24
+ "Digicert::Organization",
25
+ name: "Ribose Inc.",
26
+ city: "Wilmington",
27
+ state: "Delaware",
28
+ country: "us",
29
+ )
30
+ end
31
+ end
@@ -0,0 +1,89 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::Domain do
4
+ describe ".create" do
5
+ it "creates a new domain for an organization" do
6
+ stub_digicert_domain_create_api(domain_attributes)
7
+ domain = Digicert::Domain.create(domain_attributes)
8
+
9
+ expect(domain.id).not_to be_nil
10
+ end
11
+ end
12
+
13
+ describe ".all" do
14
+ context "without any filters" do
15
+ it "retrieves the list of domains" do
16
+ stub_digicert_domain_list_api
17
+ domains = Digicert::Domain.all
18
+
19
+ expect(domains.count).to eq(2)
20
+ expect(domains.first.id).not_to be_nil
21
+ expect(domains.first.name).not_to be_nil
22
+ end
23
+ end
24
+
25
+ context "with custom filters" do
26
+ it "retrieves the filtered list" do
27
+ filter_params = { container_id: 123 }
28
+ stub_digicert_domain_list_api(filter_params)
29
+ domains = Digicert::Domain.all(filter_params)
30
+
31
+ expect(domains.count).to eq(2)
32
+ expect(domains.first.id).not_to be_nil
33
+ expect(domains.first.name).not_to be_nil
34
+ end
35
+ end
36
+ end
37
+
38
+ describe ".fetch" do
39
+ it "retrieves the specific domain" do
40
+ domain_id = 123_456_789
41
+ filters = { include_dcv: true, include_validation: true}
42
+
43
+ stub_digicert_domain_fetch_api(domain_id, filters)
44
+ domain = Digicert::Domain.fetch(domain_id, filters)
45
+
46
+ expect(domain.id).not_to be_nil
47
+ expect(domain.dcv.name_scope).not_to be_nil
48
+ expect(domain.validations.first.type).to eq("ev")
49
+ end
50
+ end
51
+
52
+ describe "#activate" do
53
+ it "activates a specific domain" do
54
+ domain_id = 123_456_789
55
+ domain = Digicert::Domain.find(domain_id)
56
+
57
+ stub_digicert_domain_activate_api(domain_id)
58
+ domain_activation = domain.activate
59
+
60
+ expect(domain_activation.code).to eq("204")
61
+ end
62
+ end
63
+
64
+ describe "#deactivate" do
65
+ it "deactivates a specific domain" do
66
+ domain_id = 123_456_789
67
+ domain = Digicert::Domain.find(domain_id)
68
+
69
+ stub_digicert_domain_deactivate_api(domain_id)
70
+ domain_deactivation = domain.deactivate
71
+
72
+ expect(domain_deactivation.code).to eq("204")
73
+ end
74
+ end
75
+
76
+ def domain_attributes
77
+ {
78
+ name: "digicert.com",
79
+ organization: { id: 117483 },
80
+ validations: [
81
+ {
82
+ type: "ev",
83
+ user: { id: 12 }
84
+ },
85
+ ],
86
+ dcv: { method: "email" },
87
+ }
88
+ end
89
+ end
@@ -0,0 +1,27 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::DuplicateCertificateFinder do
4
+ describe ".find" do
5
+ it "finds the duplicate certificate" do
6
+ request_id = 123_456_789
7
+
8
+ stub_digicert_certificate_request_fetch_api(request_id)
9
+ stub_digicert_order_duplications_api(order_id)
10
+
11
+ certificate = Digicert::DuplicateCertificateFinder.find_by(
12
+ request_id: request_id,
13
+ )
14
+
15
+ expect(certificate.id).not_to be_nil
16
+ end
17
+ end
18
+
19
+ def order_id
20
+ # Fetching an existing request returns the fixtures file we
21
+ # wrote as certificate_request.json, and that order_id is
22
+ # being used to fetched the duplications, so for this use
23
+ # case let's keep it simple and hardcode the value for now
24
+ #
25
+ @order_id ||= 542757
26
+ end
27
+ end
@@ -0,0 +1,15 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::DuplicateCertificate do
4
+ describe ".all" do
5
+ it "list all duplicate certificates" do
6
+ order_id = 123_456_789
7
+
8
+ stub_digicert_order_duplications_api(order_id)
9
+ certificates = Digicert::DuplicateCertificate.all(order_id: order_id)
10
+
11
+ expect(certificates.first.id).not_to be_nil
12
+ expect(certificates.first.status).to eq("approved")
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::EmailValidation do
4
+ describe ".all" do
5
+ it "retrieves the list of email with validation status" do
6
+ order_id = 123_456_789
7
+
8
+ stub_digicert_email_validations_api(order_id)
9
+ email_validations = Digicert::EmailValidation.all(order_id: order_id)
10
+
11
+ expect(email_validations.first.status).to eq("validated")
12
+ expect(email_validations.first.email).to eq("email@example.com")
13
+ end
14
+ end
15
+
16
+ describe ".valid?" do
17
+ it "validates the email through digicert" do
18
+ validation_attributes = { token: "token", email: "email@example.com" }
19
+ stub_digicert_email_validations_validate_api(validation_attributes)
20
+
21
+ expect(
22
+ Digicert::EmailValidation.valid?(validation_attributes),
23
+ ).to eq(true)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::ExpiringOrder do
4
+ describe ".all" do
5
+ it "retrieves all the expiring orders" do
6
+ container_id = 123_456_789
7
+
8
+ stub_digicert_order_expiring_api(container_id)
9
+ expiring_orders = Digicert::ExpiringOrder.all(container_id: container_id)
10
+
11
+ expect(expiring_orders.count).to eq(4)
12
+ expect(expiring_orders.first.order_count).to eq(10)
13
+ expect(expiring_orders.first.days_expiring).to eq(90)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+ require "digicert/base"
3
+
4
+ RSpec.describe "Digicert::TestFindable" do
5
+ describe ".find_by_object" do
6
+ it "initialize an instnace using the object" do
7
+ findable_object = double("order", id: 123_456_789)
8
+ new_object = Digicert::TestFindable.find_by_object(findable_object)
9
+
10
+ expect(new_object.class).to eq(Digicert::TestFindable)
11
+ end
12
+ end
13
+
14
+ module Digicert
15
+ class TestFindable < Digicert::Base
16
+ extend Digicert::Findable
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::OrderCancellation do
4
+ describe ".create" do
5
+ it "cancels an existing order" do
6
+ order_id = 123_456_789
7
+
8
+ stub_digicert_order_cancellation_api(order_id, cancellation_attributes)
9
+ order_cancellation = Digicert::OrderCancellation.create(
10
+ order_id: order_id, **cancellation_attributes,
11
+ )
12
+
13
+ expect(order_cancellation.code.to_i).to eq(204)
14
+ end
15
+ end
16
+
17
+ def cancellation_attributes
18
+ {
19
+ status: "CANCELED",
20
+ send_emails: true,
21
+ note: "This is a cancellation note",
22
+ }
23
+ end
24
+ end
@@ -0,0 +1,35 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::OrderDuplicator do
4
+ describe ".create" do
5
+ it "creates a duplicate of an existing order" do
6
+ stub_digicert_order_fetch_api(order_id)
7
+
8
+ stub_digicert_order_duplicate_api(order_id, order_attributes)
9
+ order = Digicert::OrderDuplicator.create(order_id: order_id)
10
+
11
+ expect(order.id).not_to be_nil
12
+ expect(order.requests.first.id).not_to be_nil
13
+ end
14
+ end
15
+
16
+ def order_id
17
+ 123_456_789
18
+ end
19
+
20
+ def order_attributes
21
+ {
22
+ certificate: {
23
+ common_name: order.certificate.common_name,
24
+ dns_names: order.certificate.dns_names,
25
+ csr: order.certificate.csr,
26
+ signature_hash: order.certificate.signature_hash,
27
+ server_platform: { id: order.certificate.server_platform.id },
28
+ }
29
+ }
30
+ end
31
+
32
+ def order
33
+ @order ||= Digicert::Order.fetch(order_id)
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::OrderReissuer do
4
+ describe ".create" do
5
+ it "reissue an existing order" do
6
+ stub_digicert_order_fetch_api(order_id)
7
+
8
+ stub_digicert_order_reissue_api(order_id, order_attributes)
9
+ order = Digicert::OrderReissuer.create(order_id: order_id)
10
+
11
+ expect(order.id).not_to be_nil
12
+ expect(order.requests.first.id).not_to be_nil
13
+ end
14
+ end
15
+
16
+ def order_id
17
+ 123_456_789
18
+ end
19
+
20
+ def order
21
+ @order ||= Digicert::Order.fetch(order_id)
22
+ end
23
+
24
+ def order_attributes
25
+ {
26
+ certificate: {
27
+ common_name: order.certificate.common_name,
28
+ dns_names: order.certificate.dns_names,
29
+ csr: order.certificate.csr,
30
+ signature_hash: order.certificate.signature_hash,
31
+ server_platform: { id: order.certificate.server_platform.id },
32
+ }
33
+ }
34
+ end
35
+ end
@@ -0,0 +1,134 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Digicert::Order do
4
+ describe ".fetch" do
5
+ it "retrieves a specific certificate order" do
6
+ order_id = 123_456_789
7
+
8
+ stub_digicert_order_fetch_api(order_id)
9
+ order = Digicert::Order.fetch(order_id)
10
+
11
+ expect(order.id).not_to be_nil
12
+ expect(order.status).to eq("approved")
13
+ expect(order.certificate.common_name).to eq("digicert.com")
14
+ end
15
+ end
16
+
17
+ describe ".all" do
18
+ it "retrieves the list of all certificate orders" do
19
+ stub_digicert_order_list_api
20
+ orders = Digicert::Order.all
21
+
22
+ expect(orders.first.id).not_to be_nil
23
+ expect(orders.first.status).to eq("issued")
24
+ expect(orders.first.certificate.common_name).to eq("digicert.com")
25
+ end
26
+ end
27
+
28
+ describe ".create" do
29
+ it "sends create message to certificate klass" do
30
+ name_id = "ssl_plus"
31
+ allow(Digicert::SSLCertificate::SSLPlus).to receive(:create)
32
+
33
+ Digicert::Order.create(name_id, order_attributes)
34
+
35
+ expect(
36
+ Digicert::SSLCertificate::SSLPlus,
37
+ ).to have_received(:create).with(order_attributes)
38
+ end
39
+ end
40
+
41
+ describe "#email_validations" do
42
+ it "sends all message to EmailValidation" do
43
+ order_id = 123_456_789
44
+ order = Digicert::Order.find(order_id)
45
+ allow(Digicert::EmailValidation).to receive(:all)
46
+
47
+ order.email_validations
48
+
49
+ expect(
50
+ Digicert::EmailValidation,
51
+ ).to have_received(:all).with(order_id: order_id)
52
+ end
53
+ end
54
+
55
+ describe "#reissue" do
56
+ it "sends Reissuer a create message" do
57
+ order_id = 123_456_789
58
+ order = Digicert::Order.find(order_id)
59
+ allow(Digicert::OrderReissuer).to receive(:create)
60
+
61
+ order.reissue
62
+
63
+ expect(
64
+ Digicert::OrderReissuer
65
+ ).to have_received(:create).with(order_id: order_id)
66
+ end
67
+ end
68
+
69
+ describe "#duplicate" do
70
+ it "sends the duplicator a create message" do
71
+ order_id = 123_456_789
72
+ order = Digicert::Order.find(order_id)
73
+ allow(Digicert::OrderDuplicator).to receive(:create)
74
+
75
+ order.duplicate
76
+
77
+ expect(
78
+ Digicert::OrderDuplicator
79
+ ).to have_received(:create).with(order_id: order_id)
80
+ end
81
+ end
82
+
83
+ describe "#duplicate_certificates" do
84
+ it "sends all message to order duplication" do
85
+ order_id = 123_456_789
86
+ order = Digicert::Order.find(order_id)
87
+ allow(Digicert::DuplicateCertificate).to receive(:all)
88
+
89
+ order.duplicate_certificates
90
+
91
+ expect(
92
+ Digicert::DuplicateCertificate
93
+ ).to have_received(:all).with(order_id: order_id)
94
+ end
95
+ end
96
+
97
+ describe "#cancel" do
98
+ it "sends the create methods to order cancellation" do
99
+ order_id = 123_456_789
100
+ note = "This is the cancellation note"
101
+
102
+ order = Digicert::Order.find(order_id)
103
+ allow(Digicert::OrderCancellation).to receive(:create)
104
+
105
+ order.cancel(note: note)
106
+
107
+ expect(
108
+ Digicert::OrderCancellation
109
+ ).to have_received(:create).with(order_id: order_id, note: note)
110
+ end
111
+ end
112
+
113
+ def order_attributes
114
+ {
115
+ certificate: {
116
+ organization_units: ["Developer Operations"],
117
+ server_platform: { id: 45 },
118
+ profile_option: "some_ssl_profile",
119
+
120
+ # Required for certificate
121
+ csr: "------ [CSR HERE] ------",
122
+ common_name: "digicert.com",
123
+ signature_hash: "sha256",
124
+ },
125
+ organization: { id: 117483 },
126
+ validity_years: 3,
127
+ custom_expiration_date: "2017-05-18",
128
+ comments: "Comments for the the approver",
129
+ disable_renewal_notifications: false,
130
+ renewal_of_order_id: 314152,
131
+ payment_method: "balance",
132
+ }
133
+ end
134
+ end