Add puppet/archive module
[mirror/dsa-puppet.git] / 3rdparty / modules / archive / spec / functions / artifactory_checksum_spec.rb
diff --git a/3rdparty/modules/archive/spec/functions/artifactory_checksum_spec.rb b/3rdparty/modules/archive/spec/functions/artifactory_checksum_spec.rb
new file mode 100644 (file)
index 0000000..e6ad09a
--- /dev/null
@@ -0,0 +1,21 @@
+require 'spec_helper'
+
+describe 'archive::artifactory_checksum' do
+  it { is_expected.not_to eq(nil) }
+  it { is_expected.to run.with_params.and_raise_error(ArgumentError) }
+  it { is_expected.to run.with_params('not_a_url').and_raise_error(ArgumentError) }
+
+  example_json = File.read(fixtures('checksum', 'artifactory.json'))
+  url = 'https://repo.jfrog.org/artifactory/distributions/images/Artifactory_120x75.png'
+  uri = URI(url.sub('/artifactory/', '/artifactory/api/storage/'))
+
+  it 'defaults to and parses sha1' do
+    PuppetX::Bodeco::Util.stubs(:content).with(uri).returns(example_json)
+    is_expected.to run.with_params(url).and_return('a359e93636e81f9dd844b2dfb4b89fa876e5d4fa')
+  end
+
+  it 'parses md5' do
+    PuppetX::Bodeco::Util.stubs(:content).with(uri).returns(example_json)
+    is_expected.to run.with_params(url, 'md5').and_return('00f32568be85929fe95be38f9f5f3519')
+  end
+end