From 2e61e862b24918fb341154a4ad53eb7424d7976d Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 13:49:09 -0700 Subject: Add spec for java library with kotlin build file --- spec/integration/java/gradle_spec.rb | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'spec/integration/java') diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index fc52c72..6823ce1 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -47,4 +47,51 @@ plugins { end end end + + context 'when scanning a gradle project that uses kotlin' do + let(:build_file_content) do + <<~GRADLE +plugins { + `java-library` +} +repositories { + jcenter() +} +dependencies { + api("org.apache.commons:commons-math3:3.6.1") + implementation("com.google.guava:guava:28.1-jre") + testImplementation("junit:junit:4.12") +} + GRADLE + end + let(:settings_file_content) { 'rootProject.name = "example"' } + + it 'scans a gradle project' do + runner.add_file('build.gradle.kts', build_file_content) + runner.add_file('settings.gradle.kts', settings_file_content) + + report = runner.scan + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end + end + + context "when scanning a v6 gradle project" do + it 'scans a gradle project' do + content = <<~GRADLE + GRADLE + runner.add_file('build.gradle', content) + + report = runner.scan + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end + end + context "when scanning a v5 gradle project" + context "when scanning a v4 gradle project" + context "when scanning a v3 gradle project" + context "when scanning a v2 gradle project" + context "when scanning a v1 gradle project" end -- cgit v1.2.3 From f945654789655429566414c91b4d00dcd658cabc Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 14:35:49 -0700 Subject: Add specs to test each version of gradle --- Dockerfile | 5 +++- spec/integration/java/gradle_spec.rb | 53 +++++++++++++++--------------------- 2 files changed, 26 insertions(+), 32 deletions(-) (limited to 'spec/integration/java') diff --git a/Dockerfile b/Dockerfile index 223e802..68d45ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,13 +23,16 @@ RUN add-apt-repository ppa:ondrej/php -y && apt-get update -y && \ echo 'conan' >> $HOME/.default-python-packages && \ echo '\n. $HOME/.asdf/asdf.sh' >> $HOME/.bashrc && \ echo 'legacy_version_file = yes' > $HOME/.asdfrc && \ + asdf plugin-add gradle && \ asdf plugin-add java && \ asdf plugin-add python && \ + echo 'gradle system' >> $HOME/.tool-versions && \ echo 'java adopt-openjdk-8u242-b08 adopt-openjdk-11.0.6+10' >> $HOME/.tool-versions && \ echo 'python 3.8.1 3.5.9 2.7.17' >> $HOME/.tool-versions && \ asdf install && \ - asdf global python 3.8.1 && \ + asdf global gradle system && \ asdf global java adopt-openjdk-8u242-b08 && \ + asdf global python 3.8.1 && \ asdf reshim && \ bash -lc "gem install --no-document 'bundler:~> 1.7' 'bundler:~> 2.0'" && \ rm -fr /opt/jdk* && \ diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index 6823ce1..7b3b4bf 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -48,9 +48,17 @@ plugins { end end - context 'when scanning a gradle project that uses kotlin' do - let(:build_file_content) do - <<~GRADLE + [ + '6.2', + '5.6', + '4.9', + '3.5', + '2.9', + '1.9', + ].each do |version| + context "when scanning a gradle (v#{version}) project that uses a kotlin build script" do + let(:build_file_content) do + <<~KOTLIN plugins { `java-library` } @@ -62,36 +70,19 @@ dependencies { implementation("com.google.guava:guava:28.1-jre") testImplementation("junit:junit:4.12") } - GRADLE - end - let(:settings_file_content) { 'rootProject.name = "example"' } - - it 'scans a gradle project' do - runner.add_file('build.gradle.kts', build_file_content) - runner.add_file('settings.gradle.kts', settings_file_content) - - report = runner.scan - expect(report).to match_schema(version: '2.0') - expect(report[:licenses]).to be_empty - expect(report[:dependencies]).to be_empty - end - end + KOTLIN + end - context "when scanning a v6 gradle project" do - it 'scans a gradle project' do - content = <<~GRADLE - GRADLE - runner.add_file('build.gradle', content) + it 'scans a gradle project' do + runner.add_file('build.gradle.kts', build_file_content) + runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') + runner.add_file('.tool-versions', "gradle #{version}") - report = runner.scan - expect(report).to match_schema(version: '2.0') - expect(report[:licenses]).to be_empty - expect(report[:dependencies]).to be_empty + report = runner.scan + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end end end - context "when scanning a v5 gradle project" - context "when scanning a v4 gradle project" - context "when scanning a v3 gradle project" - context "when scanning a v2 gradle project" - context "when scanning a v1 gradle project" end -- cgit v1.2.3 From 7ce136081df3b6d60d010b9fc66f313ea87f992f Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 15:11:13 -0700 Subject: Test gradle plugin against different versions of Java --- spec/integration/java/gradle_spec.rb | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'spec/integration/java') diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index 7b3b4bf..f9e7bcc 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -55,10 +55,11 @@ plugins { '3.5', '2.9', '1.9', - ].each do |version| - context "when scanning a gradle (v#{version}) project that uses a kotlin build script" do - let(:build_file_content) do - <<~KOTLIN + ].each do |gradle_version| + %w{8 11}.each do |java_version| + context "when scanning a gradle (v#{gradle_version}) project that uses a kotlin build script" do + let(:build_file_content) do + <<~KOTLIN plugins { `java-library` } @@ -70,18 +71,19 @@ dependencies { implementation("com.google.guava:guava:28.1-jre") testImplementation("junit:junit:4.12") } - KOTLIN - end + KOTLIN + end - it 'scans a gradle project' do - runner.add_file('build.gradle.kts', build_file_content) - runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') - runner.add_file('.tool-versions', "gradle #{version}") + it 'scans a gradle project' do + runner.add_file('build.gradle.kts', build_file_content) + runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') + runner.add_file('.tool-versions', "gradle #{gradle_version}") - report = runner.scan - expect(report).to match_schema(version: '2.0') - expect(report[:licenses]).to be_empty - expect(report[:dependencies]).to be_empty + report = runner.scan(env: { 'LM_JAVA_VERSION' => java_version }) + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end end end end -- cgit v1.2.3 From 856c2e8429696a94b116c28e5c20687f71da197e Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 15:24:21 -0700 Subject: Extract fixture file helper --- spec/fixtures/build.gradle.kts | 11 +++++++++++ spec/integration/java/gradle_spec.rb | 16 +--------------- spec/spec_helper.rb | 2 ++ spec/support/fixture_file_helper.rb | 5 +++++ 4 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 spec/fixtures/build.gradle.kts create mode 100644 spec/support/fixture_file_helper.rb (limited to 'spec/integration/java') diff --git a/spec/fixtures/build.gradle.kts b/spec/fixtures/build.gradle.kts new file mode 100644 index 0000000..494fc8b --- /dev/null +++ b/spec/fixtures/build.gradle.kts @@ -0,0 +1,11 @@ +plugins { + `java-library` +} +repositories { + jcenter() +} +dependencies { + api("org.apache.commons:commons-math3:3.6.1") + implementation("com.google.guava:guava:28.1-jre") + testImplementation("junit:junit:4.12") +} diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index f9e7bcc..ddde21c 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -58,21 +58,7 @@ plugins { ].each do |gradle_version| %w{8 11}.each do |java_version| context "when scanning a gradle (v#{gradle_version}) project that uses a kotlin build script" do - let(:build_file_content) do - <<~KOTLIN -plugins { - `java-library` -} -repositories { - jcenter() -} -dependencies { - api("org.apache.commons:commons-math3:3.6.1") - implementation("com.google.guava:guava:28.1-jre") - testImplementation("junit:junit:4.12") -} - KOTLIN - end + let(:build_file_content) { fixture_file_content("build.gradle.kts") } it 'scans a gradle project' do runner.add_file('build.gradle.kts', build_file_content) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1889335..15c9dad 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,10 +2,12 @@ require 'license/management' require 'json' require 'securerandom' require 'json-schema' +require 'support/fixture_file_helper' require 'support/integration_test_helper' require 'support/matchers' RSpec.configure do |config| + config.include FixtureFileHelper config.include IntegrationTestHelper, type: :integration config.define_derived_metadata(file_path: /\/spec\/integration/) do |metadata| metadata[:type] = :integration diff --git a/spec/support/fixture_file_helper.rb b/spec/support/fixture_file_helper.rb new file mode 100644 index 0000000..c98b98a --- /dev/null +++ b/spec/support/fixture_file_helper.rb @@ -0,0 +1,5 @@ +module FixtureFileHelper + def fixture_file_content(path) + IO.read(License::Management.root.join("spec/fixtures/#{path}")) + end +end -- cgit v1.2.3