org.gradle.api.plugins.quality.JDependPluginTest.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-api Show documentation
Show all versions of gradle-api Show documentation
Gradle 6.9.1 API redistribution.
/*
* Copyright 2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.gradle.api.plugins.quality
import org.gradle.api.plugins.JavaBasePlugin
import org.gradle.api.plugins.ReportingBasePlugin
import org.gradle.api.tasks.SourceSet
import org.gradle.test.fixtures.AbstractProjectBuilderSpec
import static org.gradle.api.tasks.TaskDependencyMatchers.dependsOn
import static org.hamcrest.Matchers.*
import static spock.util.matcher.HamcrestSupport.that
class JDependPluginTest extends AbstractProjectBuilderSpec {
def setup() {
project.pluginManager.apply(JDependPlugin)
}
def "applies reporting-base plugin"() {
expect:
project.plugins.hasPlugin(ReportingBasePlugin)
}
def "configures jdepend configuration"() {
def config = project.configurations.findByName("jdepend")
expect:
config != null
!config.visible
config.transitive
config.description == 'The JDepend libraries to be used for this project.'
}
def "configures jdepend extension"() {
expect:
JDependExtension extension = project.extensions.jdepend
extension.reportsDir == project.file("build/reports/jdepend")
!extension.ignoreFailures
}
def "configures jdepend task for each source set"() {
project.pluginManager.apply(JavaBasePlugin)
project.sourceSets {
main
test
other
}
expect:
configuresJDependTask("jdependMain", project.sourceSets.main)
configuresJDependTask("jdependTest", project.sourceSets.test)
configuresJDependTask("jdependOther", project.sourceSets.other)
}
private void configuresJDependTask(String taskName, SourceSet sourceSet) {
def task = project.tasks.findByName(taskName)
assert task instanceof JDepend
task.with {
assert description == "Run JDepend analysis for ${sourceSet.name} classes"
assert jdependClasspath == project.configurations.jdepend
assert classesDirs == sourceSet.output.classesDirs
assert reports.xml.destination == project.file("build/reports/jdepend/${sourceSet.name}.xml")
}
}
def "configures any additional JDepend tasks"() {
def task = project.tasks.create("jdependCustom", JDepend)
expect:
task.description == null
task.classesDirs == null
task.jdependClasspath == project.configurations.jdepend
task.reports.xml.destination == project.file("build/reports/jdepend/custom.xml")
}
def "adds jdepend tasks to check lifecycle task"() {
project.pluginManager.apply(JavaBasePlugin)
project.sourceSets {
main
test
other
}
expect:
that(project.tasks['check'], dependsOn(hasItems("jdependMain", "jdependTest", "jdependOther")))
}
def "can customize settings via extension"() {
project.pluginManager.apply(JavaBasePlugin)
project.sourceSets {
main
test
other
}
project.jdepend {
sourceSets = [project.sourceSets.main]
reportsDir = project.file("jdepend-reports")
ignoreFailures = true
}
expect:
hasCustomizedSettings("jdependMain", project.sourceSets.main)
hasCustomizedSettings("jdependTest", project.sourceSets.test)
hasCustomizedSettings("jdependOther", project.sourceSets.other)
that(project.check, dependsOn(hasItem('jdependMain')))
that(project.check, dependsOn(not(hasItems('jdependTest', 'jdependOther'))))
}
def "can customize any additional JDepend tasks via extension"() {
def task = project.tasks.create("jdependCustom", JDepend)
project.jdepend {
reportsDir = project.file("jdepend-reports")
}
expect:
task.description == null
task.classesDirs == null
task.jdependClasspath == project.configurations.jdepend
task.reports.xml.destination == project.file("jdepend-reports/custom.xml")
}
def "can configure reporting"() {
given:
project.pluginManager.apply(JavaBasePlugin)
project.sourceSets {
main
}
when:
project.jdependMain.reports {
text {
enabled true
}
xml.destination project.file("foo")
}
then:
notThrown()
}
private void hasCustomizedSettings(String taskName, SourceSet sourceSet) {
def task = project.tasks.findByName(taskName)
assert task instanceof JDepend
task.with {
assert description == "Run JDepend analysis for ${sourceSet.name} classes"
assert jdependClasspath == project.configurations.jdepend
assert classesDirs == sourceSet.output.classesDirs
assert reports.xml.destination == project.file("jdepend-reports/${sourceSet.name}.xml")
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy