From ab651a14f3ee5f22fd3c9b9cf918b99e68fdb4f6 Mon Sep 17 00:00:00 2001 From: mo khan Date: Fri, 17 Apr 2020 16:03:04 -0600 Subject: Split groovy and kotlin specs because they are supported differently based on java version and gradle version 😵 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/integration/java/gradle_spec.rb | 58 +++++++++++++++++------------------- 1 file changed, 28 insertions(+), 30 deletions(-) (limited to 'spec/integration/java') diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index 674281f..deef050 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -77,41 +77,39 @@ plugins { end end + ['4.9', '5.6', '6.3'].each do |gradle_version| + context "when using Java v11 with a kotlin project using gradle v#{gradle_version}" do + let(:report) { runner.scan(env: { 'LM_JAVA_VERSION' => '11', 'GRADLE_CLI_OPTS' => '-b build.gradle.kts' }) } + + before do + runner.add_file('.tool-versions', "gradle #{gradle_version}") + runner.add_file('build.gradle.kts', fixture_file_content("java/build.gradle.kts")) + runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') + end + + specify { expect(report).to match_schema(version: '2.0') } + specify { expect(report.dependency_names).to match_array(['postgresql']) } + specify { expect(report.licenses_for('postgresql')).to match_array(['BSD-2-Clause']) } + end + end + [ { java: '8', gradle: ['2.9', '3.5'] }, { java: '11', gradle: ['4.9', '5.6', '6.3'] } ].each do |item| - context "when using Java v#{item[:java]}" do - let(:report) { runner.scan(env: { 'LM_JAVA_VERSION' => item[:java] }) } - - item[:gradle].each do |gradle_version| - context "with gradle #{gradle_version}" do - before do - runner.add_file('.tool-versions', "gradle #{gradle_version}") - end - - context "with a kotlin project" do - before do - runner.add_file('build.gradle.kts', fixture_file_content("java/build.gradle.kts")) - runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') - end - - specify { expect(report).to match_schema(version: '2.0') } - specify { expect(report.dependency_names).to match_array(['postgresql']) } - specify { expect(report.licenses_for('postgresql')).to match_array(['BSD-2-Clause']) } - end - - context "with a groovy project" do - before do - runner.add_file('build.gradle', fixture_file_content("java/build-#{item[:java]}.gradle")) - runner.add_file('settings.gradle', 'rootProject.name = "example"') - end - - specify { expect(report).to match_schema(version: '2.0') } - specify { expect(report.dependency_names).to match_array(['postgresql']) } - specify { expect(report.licenses_for('postgresql')).to match_array(['BSD-2-Clause']) } - end + item[:gradle].each do |gradle_version| + context "when using Java v#{item[:java]} with a gradle v#{gradle_version} on a groovy project" do + let(:report) { runner.scan(env: { 'LM_JAVA_VERSION' => item[:java] }) } + + before do + runner.add_file('.tool-versions', "gradle #{gradle_version}") + runner.add_file('build.gradle', fixture_file_content("java/build-#{item[:java]}.gradle")) + runner.add_file('settings.gradle', 'rootProject.name = "example"') end + + specify { expect(report).to match_schema(version: '2.0') } + specify { expect(report.dependency_names).to match_array(['postgresql']) } + specify { expect(report.licenses_for('postgresql')).to match_array(['BSD-2-Clause']) } end end end -- cgit v1.2.3