digicert-cli 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.hound.yml +3 -0
- data/.rubocop.yml +637 -0
- data/.travis.yml +0 -1
- data/Gemfile +0 -2
- data/LICENSE.txt +21 -0
- data/README.md +218 -21
- data/bin/digicert +1 -2
- data/digicert-cli.gemspec +3 -12
- data/lib/digicert/cli.rb +33 -9
- data/lib/digicert/cli/auth.rb +6 -3
- data/lib/digicert/cli/base.rb +19 -0
- data/lib/digicert/cli/certificate.rb +75 -0
- data/lib/digicert/cli/certificate_downloader.rb +51 -0
- data/lib/digicert/cli/command.rb +14 -48
- data/lib/digicert/cli/commands/certificate.rb +37 -0
- data/lib/digicert/cli/commands/csr.rb +31 -0
- data/lib/digicert/cli/commands/order.rb +45 -0
- data/lib/digicert/cli/csr.rb +48 -0
- data/lib/digicert/cli/filter_builder.rb +54 -0
- data/lib/digicert/cli/order.rb +9 -23
- data/lib/digicert/cli/order_reissuer.rb +60 -11
- data/lib/digicert/cli/order_retriever.rb +48 -0
- data/lib/digicert/cli/rcfile.rb +48 -0
- data/lib/digicert/cli/util.rb +5 -1
- data/lib/digicert/cli/version.rb +23 -1
- data/spec/acceptance/certificate_spec.rb +66 -0
- data/spec/acceptance/config_spec.rb +16 -0
- data/spec/acceptance/csr_spec.rb +51 -0
- data/spec/acceptance/order_spec.rb +6 -21
- data/spec/acceptance/reissuing_order_spec.rb +33 -0
- data/spec/digicert/cli/certificate_downloader_spec.rb +30 -0
- data/spec/digicert/cli/certificate_spec.rb +104 -0
- data/spec/digicert/cli/csr_spec.rb +47 -0
- data/spec/digicert/cli/filter_builder_spec.rb +25 -0
- data/spec/digicert/cli/order_reissuer_spec.rb +74 -0
- data/spec/digicert/cli/order_retriever_spec.rb +23 -0
- data/spec/digicert/{order_spec.rb → cli/order_spec.rb} +2 -2
- data/spec/digicert/cli/rcfile_spec.rb +18 -0
- data/spec/digicert/cli_spec.rb +6 -5
- data/spec/fixtures/.digicertrc +2 -0
- data/spec/fixtures/rsa4096.csr +51 -0
- data/spec/fixtures/rsa4096.key +51 -0
- data/spec/spec_helper.rb +8 -1
- data/spec/support/disable-logging.rb +12 -0
- metadata +70 -22
- data/.sample.env +0 -1
- data/bin/console +0 -14
- data/legacy_cli.sh +0 -301
- data/lib/digicert/cli/command/order.rb +0 -50
- data/lib/digicert/cli/order_filterer.rb +0 -43
- data/spec/digicert/command_spec.rb +0 -16
- data/spec/digicert/order_filterer_spec.rb +0 -50
- data/spec/digicert/order_reissuer_spec.rb +0 -19
@@ -0,0 +1,48 @@
|
|
1
|
+
require "date"
|
2
|
+
|
3
|
+
module Digicert
|
4
|
+
module CLI
|
5
|
+
class OrderRetriever
|
6
|
+
def initialize(order_id, attributes)
|
7
|
+
@order_id = order_id
|
8
|
+
@wait_time = attributes[:wait_time] || 10
|
9
|
+
@number_of_times = attributes[:number_of_times] || 5
|
10
|
+
end
|
11
|
+
|
12
|
+
def fetch
|
13
|
+
fetch_order_in_interval
|
14
|
+
reissued_order
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.fetch(order_id, attributes)
|
18
|
+
new(order_id, **attributes).fetch
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :order_id, :number_of_times, :wait_time, :reissued_order
|
24
|
+
|
25
|
+
def fetch_order_in_interval
|
26
|
+
number_of_times.to_i.times do |number|
|
27
|
+
sleep wait_time.to_i
|
28
|
+
say("Fetch attempt #{number + 1}..")
|
29
|
+
order = Digicert::Order.fetch(order_id)
|
30
|
+
|
31
|
+
if recently_reissued?(order.last_reissued_date)
|
32
|
+
break @reissued_order = order
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def recently_reissued?(datetime)
|
38
|
+
if datetime
|
39
|
+
((Time.now - DateTime.parse(datetime).to_time) / 60).ceil < 3
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def say(message)
|
44
|
+
Digicert::CLI::Util.say(message)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "yaml"
|
2
|
+
require "singleton"
|
3
|
+
|
4
|
+
module Digicert
|
5
|
+
module CLI
|
6
|
+
class RCFile
|
7
|
+
include Singleton
|
8
|
+
attr_reader :path, :data
|
9
|
+
FILE_NAME = ".digicertrc".freeze
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@path = File.join(File.expand_path("~"), FILE_NAME)
|
13
|
+
@data = load_configuration
|
14
|
+
end
|
15
|
+
|
16
|
+
def set_key(api_key)
|
17
|
+
data[:api_key] = api_key
|
18
|
+
write_api_key_to_file
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.api_key
|
22
|
+
new.data[:api_key]
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.set_key(api_key)
|
26
|
+
new.set_key(api_key)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def load_configuration
|
32
|
+
YAML.load_file(path)
|
33
|
+
rescue Errno::ENOENT
|
34
|
+
default_configuration
|
35
|
+
end
|
36
|
+
|
37
|
+
def default_configuration
|
38
|
+
{ api_key: nil }
|
39
|
+
end
|
40
|
+
|
41
|
+
def write_api_key_to_file
|
42
|
+
File.open(path, File::RDWR | File::TRUNC | File::CREAT, 0o0600) do |rc|
|
43
|
+
rc.write(data.to_yaml)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/digicert/cli/util.rb
CHANGED
@@ -3,7 +3,7 @@ require "terminal-table"
|
|
3
3
|
module Digicert
|
4
4
|
module CLI
|
5
5
|
module Util
|
6
|
-
def self.make_it_pretty(headings:, rows:, table_wdith:
|
6
|
+
def self.make_it_pretty(headings:, rows:, table_wdith: 100)
|
7
7
|
Terminal::Table.new do |table|
|
8
8
|
table.headings = headings
|
9
9
|
table.style = { width: table_wdith }
|
@@ -11,6 +11,10 @@ module Digicert
|
|
11
11
|
table.rows = rows
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
def self.say(message, color = nil)
|
16
|
+
Thor::Shell::Basic.new.say(message, color)
|
17
|
+
end
|
14
18
|
end
|
15
19
|
end
|
16
20
|
end
|
data/lib/digicert/cli/version.rb
CHANGED
@@ -1,5 +1,27 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2017 Ribose Inc.
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
# of this software and associated documentation files (the "Software"), to deal
|
6
|
+
# in the Software without restriction, including without limitation the rights
|
7
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
# copies of the Software, and to permit persons to whom the Software is
|
9
|
+
# furnished to do so, subject to the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be included in
|
12
|
+
# all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
+
# THE SOFTWARE.
|
21
|
+
# ++
|
22
|
+
|
1
23
|
module Digicert
|
2
24
|
module CLI
|
3
|
-
VERSION = "0.
|
25
|
+
VERSION = "0.2.0".freeze
|
4
26
|
end
|
5
27
|
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe "Certificate" do
|
4
|
+
describe "fetch a certificate" do
|
5
|
+
it "returns certificate details for an order" do
|
6
|
+
command = %w(certificate fetch 123456 --quiet)
|
7
|
+
allow(certificate_klass).to receive_message_chain(:new, :fetch)
|
8
|
+
|
9
|
+
Digicert::CLI.start(command)
|
10
|
+
|
11
|
+
expect(certificate_klass.new).to have_received(:fetch)
|
12
|
+
expect(certificate_klass).to have_received(:new).with(
|
13
|
+
order_id: "123456", quiet: true,
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "downloading a certificate" do
|
19
|
+
it "downloads the certificate to provided path" do
|
20
|
+
command = %w(certificate fetch 123456 --output /tmp/downloads)
|
21
|
+
allow(Digicert::CLI::Certificate).to receive_message_chain(:new, :fetch)
|
22
|
+
|
23
|
+
Digicert::CLI.start(command)
|
24
|
+
|
25
|
+
expect(Digicert::CLI::Certificate).to have_received(:new).with(
|
26
|
+
order_id: "123456", output: "/tmp/downloads"
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "listing duplicate certificates" do
|
32
|
+
it "returns the list of duplicate certificates" do
|
33
|
+
command = %w(certificate duplicates 123456)
|
34
|
+
|
35
|
+
allow(
|
36
|
+
Digicert::CLI::Certificate,
|
37
|
+
).to receive_message_chain(:new, :duplicates)
|
38
|
+
|
39
|
+
Digicert::CLI.start(command)
|
40
|
+
|
41
|
+
expect(
|
42
|
+
Digicert::CLI::Certificate,
|
43
|
+
).to have_received(:new).with(order_id: "123456")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "downloading a certificate" do
|
48
|
+
it "downloads the certificate to output path" do
|
49
|
+
command = %w(certificate download --certificate_id 123 --output /tmp)
|
50
|
+
|
51
|
+
allow(
|
52
|
+
Digicert::CLI::Certificate,
|
53
|
+
).to receive_message_chain(:new, :download)
|
54
|
+
|
55
|
+
Digicert::CLI.start(command)
|
56
|
+
|
57
|
+
expect(
|
58
|
+
Digicert::CLI::Certificate,
|
59
|
+
).to have_received(:new).with(certificate_id: "123", output: "/tmp")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def certificate_klass
|
64
|
+
Digicert::CLI::Certificate
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe "Config" do
|
4
|
+
describe "configuring key" do
|
5
|
+
it "stores the provided api key" do
|
6
|
+
command = %w(config DIGICERT_SECRET_KEY)
|
7
|
+
allow(Digicert::CLI::RCFile).to receive(:set_key)
|
8
|
+
|
9
|
+
Digicert::CLI.start(command)
|
10
|
+
|
11
|
+
expect(
|
12
|
+
Digicert::CLI::RCFile,
|
13
|
+
).to have_received(:set_key).with("DIGICERT_SECRET_KEY")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe "CSR" do
|
4
|
+
describe "fetching a CSR" do
|
5
|
+
it "fetches the CSR for specified order" do
|
6
|
+
command = %w(csr fetch 123456)
|
7
|
+
allow(Digicert::CLI::CSR).to receive_message_chain(:new, :fetch)
|
8
|
+
|
9
|
+
Digicert::CLI.start(command)
|
10
|
+
|
11
|
+
expect(Digicert::CLI::CSR).to have_received(:new).with(order_id: "123456")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "generating CSR" do
|
16
|
+
context "with existing order" do
|
17
|
+
it "generates a new CSR for an existing order" do
|
18
|
+
allow(Digicert::CLI::CSR).to receive_message_chain(:new, :generate)
|
19
|
+
command = %w(csr generate -o 123456 --key ./spec/fixtures/rsa4096.key)
|
20
|
+
|
21
|
+
Digicert::CLI.start(command)
|
22
|
+
|
23
|
+
expect(Digicert::CLI::CSR).to have_received(:new).with(
|
24
|
+
order_id: "123456", key: "./spec/fixtures/rsa4096.key",
|
25
|
+
)
|
26
|
+
end end
|
27
|
+
|
28
|
+
context "with provided details" do
|
29
|
+
it "generates a new CSR with the details" do
|
30
|
+
command = %w(
|
31
|
+
csr generate
|
32
|
+
--order-id 123456
|
33
|
+
--common_name ribosetest.com
|
34
|
+
--key ./spec/fixtures/rsa4096.key
|
35
|
+
--san site1.ribosetest.com site2.ribosetest.com
|
36
|
+
)
|
37
|
+
|
38
|
+
allow(Digicert::CLI::CSR).to receive_message_chain(:new, :generate)
|
39
|
+
|
40
|
+
Digicert::CLI.start(command)
|
41
|
+
|
42
|
+
expect(Digicert::CLI::CSR).to have_received(:new).with(
|
43
|
+
order_id: "123456",
|
44
|
+
common_name: "ribosetest.com",
|
45
|
+
key: "./spec/fixtures/rsa4096.key",
|
46
|
+
san: ["site1.ribosetest.com", "site2.ribosetest.com"],
|
47
|
+
)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -3,38 +3,23 @@ require "spec_helper"
|
|
3
3
|
RSpec.describe "Order" do
|
4
4
|
describe "listing orders" do
|
5
5
|
it "retrieves the list of the orders" do
|
6
|
-
command = %w(order list
|
6
|
+
command = %w(order list --filter common_name:*.ribostetest.com)
|
7
|
+
allow(Digicert::CLI::Order).to receive_message_chain(:new, :list)
|
7
8
|
|
8
|
-
|
9
|
-
allow(Digicert::Order).to receive(:all).and_return([])
|
9
|
+
Digicert::CLI.start(command)
|
10
10
|
|
11
|
-
Digicert::CLI.
|
12
|
-
|
13
|
-
expect(Digicert::Order).to have_received(:all)
|
11
|
+
expect(Digicert::CLI::Order.new).to have_received(:list)
|
14
12
|
end
|
15
13
|
end
|
16
14
|
|
17
15
|
describe "finding an order" do
|
18
16
|
it "finds a specific order based on the filters params" do
|
19
|
-
command = %w(order find
|
17
|
+
command = %w(order find --filter common_name:ribosetest.com)
|
20
18
|
allow(Digicert::CLI::Order).to receive_message_chain(:new, :find)
|
21
19
|
|
22
|
-
Digicert::CLI.start(
|
20
|
+
Digicert::CLI.start(command)
|
23
21
|
|
24
22
|
expect(Digicert::CLI::Order.new).to have_received(:find)
|
25
23
|
end
|
26
24
|
end
|
27
|
-
|
28
|
-
describe "reissuing an order" do
|
29
|
-
it "reissues the order and print out the details" do
|
30
|
-
command = %w(order reissue --order_id 123456)
|
31
|
-
allow(Digicert::OrderReissuer).to receive(:create)
|
32
|
-
|
33
|
-
Digicert::CLI.start(*command)
|
34
|
-
|
35
|
-
expect(
|
36
|
-
Digicert::OrderReissuer,
|
37
|
-
).to have_received(:create).with(order_id: "123456")
|
38
|
-
end
|
39
|
-
end
|
40
25
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe "Order reissuing" do
|
4
|
+
describe "reissue an order" do
|
5
|
+
context "reissue with new csr" do
|
6
|
+
it "reissues an order with the provided csr" do
|
7
|
+
mock_digicert_order_reissuer_create_message_chain
|
8
|
+
command = %w(order reissue 123456 --crt ./spec/fixtures/rsa4096.csr)
|
9
|
+
|
10
|
+
Digicert::CLI.start(command)
|
11
|
+
|
12
|
+
expect(Digicert::CLI::OrderReissuer).to have_received(:new).
|
13
|
+
with(order_id: "123456", crt: "./spec/fixtures/rsa4096.csr")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "reissue and download certificate" do
|
18
|
+
it "reissues an order and download the certificate" do
|
19
|
+
mock_digicert_order_reissuer_create_message_chain
|
20
|
+
command = %w(order reissue 123456 --output /tmp/downloads)
|
21
|
+
|
22
|
+
Digicert::CLI.start(command)
|
23
|
+
|
24
|
+
expect(Digicert::CLI::OrderReissuer).to have_received(:new).
|
25
|
+
with(order_id: "123456", output: "/tmp/downloads")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def mock_digicert_order_reissuer_create_message_chain
|
31
|
+
allow(Digicert::CLI::OrderReissuer).to receive_message_chain(:new, :create)
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "digicert/cli/certificate_downloader"
|
3
|
+
|
4
|
+
RSpec.describe Digicert::CLI::CertificateDownloader do
|
5
|
+
describe ".download" do
|
6
|
+
it "downloads the certificate to the specified path" do
|
7
|
+
certificate_id = 123_456_789
|
8
|
+
allow(File).to receive(:open)
|
9
|
+
mock_digicert_certificate_download_api(certificate_id)
|
10
|
+
|
11
|
+
Digicert::CLI::CertificateDownloader.download(
|
12
|
+
print_enable: false,
|
13
|
+
path: download_path,
|
14
|
+
certificate_id: certificate_id,
|
15
|
+
)
|
16
|
+
|
17
|
+
expect(File).to have_received(:open).thrice
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def download_path
|
22
|
+
File.expand_path("../../tmp", __FILE__).to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
def mock_digicert_certificate_download_api(certificate_id)
|
26
|
+
stub_digicert_certificate_download_by_format(
|
27
|
+
certificate_id, "pem_all", "pem"
|
28
|
+
)
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Digicert::CLI::Certificate do
|
4
|
+
describe "#fetch" do
|
5
|
+
context "with only order id" do
|
6
|
+
it "returns the details for the certificate" do
|
7
|
+
order_id = 123_456_789
|
8
|
+
stub_digicert_order_fetch_api(order_id)
|
9
|
+
|
10
|
+
certificate = Digicert::CLI::Certificate.new(
|
11
|
+
order_id: order_id
|
12
|
+
).fetch
|
13
|
+
|
14
|
+
expect(certificate.id).not_to be_nil
|
15
|
+
expect(certificate.organization.id).not_to be_nil
|
16
|
+
expect(certificate.common_name).to eq("digicert.com")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "with option attributes" do
|
21
|
+
it "returns the option attribute specified details" do
|
22
|
+
order_id = 112_358
|
23
|
+
stub_digicert_order_fetch_api(order_id)
|
24
|
+
|
25
|
+
certificate = Digicert::CLI::Certificate.new(
|
26
|
+
order_id: order_id, quiet: true
|
27
|
+
).fetch
|
28
|
+
|
29
|
+
expect(certificate).to eq(order_id)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "output attribute specified" do
|
34
|
+
it "sends download message to certificate downloader" do
|
35
|
+
order_id = 112_358
|
36
|
+
|
37
|
+
stub_digicert_order_fetch_api(order_id)
|
38
|
+
allow(Digicert::CLI::CertificateDownloader).to receive(:download)
|
39
|
+
|
40
|
+
Digicert::CLI::Certificate.new(
|
41
|
+
order_id: order_id, output: "/tmp/downloads",
|
42
|
+
).fetch
|
43
|
+
|
44
|
+
expect(Digicert::CLI::CertificateDownloader).
|
45
|
+
to have_received(:download).with({
|
46
|
+
certificate_id: 112358, filename: order_id, path: "/tmp/downloads",
|
47
|
+
})
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "#duplicates" do
|
53
|
+
it "lists duplicate certificates" do
|
54
|
+
order_id = 112_358
|
55
|
+
allow(Digicert::DuplicateCertificate).to receive(:all)
|
56
|
+
|
57
|
+
Digicert::CLI::Certificate.new(order_id: order_id).duplicates
|
58
|
+
|
59
|
+
expect(
|
60
|
+
Digicert::DuplicateCertificate,
|
61
|
+
).to have_received(:all).with(order_id: order_id)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "#download" do
|
66
|
+
context "with certificate_id" do
|
67
|
+
it "sends downloader a download message" do
|
68
|
+
certificate_id = 123_456_789
|
69
|
+
downloader = Digicert::CLI::CertificateDownloader
|
70
|
+
allow(downloader).to receive(:download)
|
71
|
+
|
72
|
+
Digicert::CLI::Certificate.new(
|
73
|
+
certificate_id: certificate_id, output: "/tmp/downloads",
|
74
|
+
).download
|
75
|
+
|
76
|
+
expect(downloader).to have_received(:download).with(
|
77
|
+
hash_including(
|
78
|
+
certificate_id: certificate_id, filename: certificate_id,
|
79
|
+
),
|
80
|
+
)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context "with order_id" do
|
85
|
+
it "fetch order and sends downloader a download message" do
|
86
|
+
order_id = 123_456_789
|
87
|
+
downloader = Digicert::CLI::CertificateDownloader
|
88
|
+
|
89
|
+
allow(downloader).to receive(:download)
|
90
|
+
stub_digicert_order_fetch_api(order_id)
|
91
|
+
|
92
|
+
Digicert::CLI::Certificate.new(
|
93
|
+
order_id: order_id, output: "/tmp/downloads",
|
94
|
+
).download
|
95
|
+
|
96
|
+
expect(downloader).to have_received(:download).with(
|
97
|
+
hash_including(
|
98
|
+
filename: order_id, path: "/tmp/downloads", certificate_id: 112358,
|
99
|
+
),
|
100
|
+
)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|