digicert 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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