Add puppet/archive module
[mirror/dsa-puppet.git] / 3rdparty / modules / archive / spec / functions / parse_artifactory_url_spec.rb
diff --git a/3rdparty/modules/archive/spec/functions/parse_artifactory_url_spec.rb b/3rdparty/modules/archive/spec/functions/parse_artifactory_url_spec.rb
new file mode 100644 (file)
index 0000000..614a8ee
--- /dev/null
@@ -0,0 +1,81 @@
+require 'spec_helper'
+
+describe 'archive::parse_artifactory_url' 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) }
+
+  context 'releases' do
+    it do
+      is_expected.to run.with_params('https://repo.jfrog.org/artifactory/repo1-cache/maven-proxy/maven-proxy-webapp/0.2/maven-proxy-webapp-0.2.war').and_return(
+        'base_url'        => 'https://repo.jfrog.org/artifactory',
+        'repository'      => 'repo1-cache',
+        'org_path'        => 'maven-proxy',
+        'module'          => 'maven-proxy-webapp',
+        'base_rev'        => '0.2',
+        'folder_iteg_rev' => nil,
+        'file_iteg_rev'   => nil,
+        'classifier'      => nil,
+        'ext'             => 'war'
+      )
+    end
+    context 'with classifier' do
+      it do
+        is_expected.to run.with_params('https://repo.jfrog.org/artifactory/repo1-cache/maven-proxy/maven-proxy-standalone/0.2/maven-proxy-standalone-0.2-app.jar').and_return(
+          'base_url'        => 'https://repo.jfrog.org/artifactory',
+          'repository'      => 'repo1-cache',
+          'org_path'        => 'maven-proxy',
+          'module'          => 'maven-proxy-standalone',
+          'base_rev'        => '0.2',
+          'folder_iteg_rev' => nil,
+          'file_iteg_rev'   => nil,
+          'classifier'      => 'app',
+          'ext'             => 'jar'
+        )
+      end
+    end
+  end
+  context 'SNAPSHOTs' do
+    it do
+      is_expected.to run.with_params('https://repo.jfrog.org/artifactory/java.net-cache/com/sun/grizzly/grizzly-framework/2.0.0-SNAPSHOT/grizzly-framework-2.0.0-SNAPSHOT.jar').and_return(
+        'base_url'        => 'https://repo.jfrog.org/artifactory',
+        'repository'      => 'java.net-cache',
+        'org_path'        => 'com/sun/grizzly',
+        'module'          => 'grizzly-framework',
+        'base_rev'        => '2.0.0',
+        'folder_iteg_rev' => 'SNAPSHOT',
+        'file_iteg_rev'   => 'SNAPSHOT',
+        'classifier'      => nil,
+        'ext'             => 'jar'
+      )
+    end
+    context 'with classifiers' do
+      it do
+        is_expected.to run.with_params('https://repo.jfrog.org/artifactory/java.net-cache/com/sun/grizzly/grizzly-framework/2.0.0-SNAPSHOT/grizzly-framework-2.0.0-SNAPSHOT-javadoc.jar').and_return(
+          'base_url'        => 'https://repo.jfrog.org/artifactory',
+          'repository'      => 'java.net-cache',
+          'org_path'        => 'com/sun/grizzly',
+          'module'          => 'grizzly-framework',
+          'base_rev'        => '2.0.0',
+          'folder_iteg_rev' => 'SNAPSHOT',
+          'file_iteg_rev'   => 'SNAPSHOT',
+          'classifier'      => 'javadoc',
+          'ext'             => 'jar'
+        )
+      end
+      it do
+        is_expected.to run.with_params('https://repo.jfrog.org/artifactory/java.net-cache/com/sun/grizzly/grizzly-framework/2.0.0-SNAPSHOT/grizzly-framework-2.0.0-SNAPSHOT-tests.jar').and_return(
+          'base_url'        => 'https://repo.jfrog.org/artifactory',
+          'repository'      => 'java.net-cache',
+          'org_path'        => 'com/sun/grizzly',
+          'module'          => 'grizzly-framework',
+          'base_rev'        => '2.0.0',
+          'folder_iteg_rev' => 'SNAPSHOT',
+          'file_iteg_rev'   => 'SNAPSHOT',
+          'classifier'      => 'tests',
+          'ext'             => 'jar'
+        )
+      end
+    end
+  end
+end