@@ -40,7 +40,6 @@ import org.apache.maven.project.ProjectBuildingException
4040
4141import org.eclipse.aether.artifact.Artifact
4242import org.eclipse.aether.graph.DependencyNode
43- import org.eclipse.aether.repository.RemoteRepository
4443
4544import org.ossreviewtoolkit.model.Identifier
4645import org.ossreviewtoolkit.model.Issue
@@ -134,31 +133,13 @@ class MavenDependencyHandlerTest : WordSpec({
134133 " createPackage" should {
135134 " create a package for a dependency" {
136135 val dependency = createDependency(PACKAGE_ID_SUFFIX )
137- val artifact = dependency.artifact
138- val repos = listOf(createRepository(), createRepository())
139136 val pkg = createPackage(PACKAGE_ID_SUFFIX )
140137 val issues = mutableListOf<Issue >()
141138
142- val handler = createHandler()
143-
144- every { dependency.repositories } returns repos
145- every { handler.support.parsePackage(artifact, repos) } returns pkg
146-
147- handler.createPackage(dependency, issues) shouldBe pkg
148- issues should beEmpty()
149- }
150-
151- " take the sbtMode flag into account" {
152- val dependency = createDependency(PACKAGE_ID_SUFFIX )
153- val artifact = dependency.artifact
154- val repos = listOf(createRepository())
155- val pkg = createPackage(PACKAGE_ID_SUFFIX )
156- val issues = mutableListOf<Issue >()
157-
158- val handler = createHandler(sbtMode = true)
159-
160- every { dependency.repositories } returns repos
161- every { handler.support.parsePackage(artifact, repos, sbtMode = true) } returns pkg
139+ val handler = createHandler { node ->
140+ node shouldBe dependency
141+ pkg
142+ }
162143
163144 handler.createPackage(dependency, issues) shouldBe pkg
164145 issues should beEmpty()
@@ -176,28 +157,18 @@ class MavenDependencyHandlerTest : WordSpec({
176157
177158 " return null for a package that is resolved to a project dependency" {
178159 val dependency = createDependency(PACKAGE_ID_SUFFIX )
179- val artifact = dependency.artifact
180- val repos = listOf(createRepository(), createRepository())
181160 val pkg = createPackage(PROJECT_ID_SUFFIX )
182161
183- val handler = createHandler()
184-
185- every { dependency.repositories } returns repos
186- every { handler.support.parsePackage(artifact, repos) } returns pkg
162+ val handler = createHandler { pkg }
187163
188164 handler.createPackage(dependency, mutableListOf()) should beNull()
189165 }
190166
191167 " report the correct linkage for a package that is resolved to a project dependency" {
192168 val dependency = createDependency(PACKAGE_ID_SUFFIX )
193- val artifact = dependency.artifact
194- val repos = listOf(createRepository(), createRepository())
195169 val pkg = createPackage(PROJECT_ID_SUFFIX )
196170
197- val handler = createHandler()
198-
199- every { dependency.repositories } returns repos
200- every { handler.support.parsePackage(artifact, repos) } returns pkg
171+ val handler = createHandler { pkg }
201172
202173 handler.createPackage(dependency, mutableListOf())
203174
@@ -210,14 +181,9 @@ class MavenDependencyHandlerTest : WordSpec({
210181 IOException ("General failure when reading hard disk.")
211182 )
212183 val dependency = createDependency(PACKAGE_ID_SUFFIX )
213- val artifact = dependency.artifact
214- val repos = listOf(createRepository())
215184 val issues = mutableListOf<Issue >()
216185
217- val handler = createHandler()
218-
219- every { dependency.repositories } returns repos
220- every { handler.support.parsePackage(artifact, repos) } throws exception
186+ val handler = createHandler { throw exception }
221187
222188 handler.createPackage(dependency, issues) should beNull()
223189
@@ -249,6 +215,9 @@ private val LOCAL_PROJECTS = mapOf(
249215/* * ID of an inter-project dependency. */
250216private val PROJECT_ID_SUFFIX = LOCAL_PROJECTS .keys.first()
251217
218+ /* * Constant for a resolver function that can be used if no interaction with the resolver is expected. */
219+ private val unusedPackageResolverFun: PackageResolverFun = { throw NotImplementedError () }
220+
252221/* *
253222 * Return an [Identifier] from the given [mavenId]. The identifiers used by Maven internally are very close to
254223 * ORT's identifiers; only the type component is missing.
@@ -283,19 +252,11 @@ private fun createDependency(id: String): DependencyNode {
283252}
284253
285254/* *
286- * Create the [MavenDependencyHandler] instance to be tested with mock dependencies and test data with the given
287- * [sbtMode] flag.
288- */
289- private fun createHandler (sbtMode : Boolean = false): MavenDependencyHandler {
290- val mvn = mockk<MavenSupport >()
291- return MavenDependencyHandler (MANAGER_NAME , PROJECT_TYPE , mvn, LOCAL_PROJECTS , sbtMode)
292- }
293-
294- /* *
295- * Convenience function to create a mock [RemoteRepository]. Note: This function solves some nasty false-positive
296- * warnings about explicit type arguments.
255+ * Create the [MavenDependencyHandler] instance to be tested with default parameters and the given
256+ * [packageResolverFun].
297257 */
298- private fun createRepository (): RemoteRepository = mockk()
258+ private fun createHandler (packageResolverFun : PackageResolverFun = unusedPackageResolverFun): MavenDependencyHandler =
259+ MavenDependencyHandler (MANAGER_NAME , PROJECT_TYPE , LOCAL_PROJECTS , packageResolverFun)
299260
300261/* *
301262 * Convenience function to create a mock [MavenProject]. Note: This function solves some nasty false-positive
0 commit comments