@@ -402,7 +402,7 @@ def test_scanpipe_pipes_d2d_map_java_to_class_no_java(self):
402402 expected = "No ('.java',) resources to map."
403403 self .assertIn (expected , buffer .getvalue ())
404404
405- def test_scanpipe_pipes_d2d_map_jar_to_source (self ):
405+ def test_scanpipe_pipes_d2d_map_jar_to_java_source (self ):
406406 from1 = make_resource_file (
407407 self .project1 ,
408408 path = "from/flume-ng-node-1.9.0-sources.jar-extract/org/apache/flume/node/"
@@ -450,6 +450,104 @@ def test_scanpipe_pipes_d2d_map_jar_to_source(self):
450450 relation = self .project1 .codebaserelations .get (map_type = "jar_to_source" )
451451 self .assertEqual (from2 , relation .from_resource )
452452 self .assertEqual (to_jar , relation .to_resource )
453+
454+ def test_scanpipe_pipes_d2d_map_jar_to_scala_source (self ):
455+ from1 = make_resource_file (
456+ self .project1 ,
457+ path = "from/flume-ng-node-1.9.0-sources.jar-extract/org/apache/flume/node/"
458+ "AbstractConfigurationProvider.scala" ,
459+ extra_data = {"scala_package" : "org.apache.flume.node" },
460+ )
461+ from2 = make_resource_file (
462+ self .project1 ,
463+ path = "from/flume-ng-node-1.9.0-sources.jar-extract" ,
464+ )
465+ to1 = make_resource_file (
466+ self .project1 ,
467+ path = "to/flume-ng-node-1.9.0.jar-extract/org/apache/flume/node/"
468+ "AbstractConfigurationProvider.class" ,
469+ )
470+ make_resource_file (
471+ self .project1 ,
472+ path = "to/flume-ng-node-1.9.0.jar-extract/META-INF/MANIFEST.MF" ,
473+ )
474+ to_jar = make_resource_file (
475+ self .project1 ,
476+ path = "to/flume-ng-node-1.9.0.jar" ,
477+ )
478+
479+ buffer = io .StringIO ()
480+ d2d .map_jvm_to_class (
481+ self .project1 , logger = buffer .write , jvm_lang = jvm .ScalaLanguage
482+ )
483+ relation = self .project1 .codebaserelations .get ()
484+ self .assertEqual (from1 , relation .from_resource )
485+ self .assertEqual (to1 , relation .to_resource )
486+ self .assertEqual ("scala_to_class" , relation .map_type )
487+ expected = {"from_source_root" : "from/flume-ng-node-1.9.0-sources.jar-extract/" }
488+ self .assertEqual (expected , relation .extra_data )
489+
490+ buffer = io .StringIO ()
491+ with self .assertNumQueries (6 ):
492+ d2d .map_jar_to_jvm_source (
493+ self .project1 , logger = buffer .write , jvm_lang = jvm .ScalaLanguage
494+ )
495+ expected = "Mapping 1 .jar resources using map_jar_to_source"
496+ self .assertIn (expected , buffer .getvalue ())
497+
498+ self .assertEqual (2 , self .project1 .codebaserelations .count ())
499+ relation = self .project1 .codebaserelations .get (map_type = "jar_to_source" )
500+ self .assertEqual (from2 , relation .from_resource )
501+ self .assertEqual (to_jar , relation .to_resource )
502+
503+ def test_scanpipe_pipes_d2d_map_jar_to_kotlin_source (self ):
504+ from1 = make_resource_file (
505+ self .project1 ,
506+ path = "from/flume-ng-node-1.9.0-sources.jar-extract/org/apache/flume/node/"
507+ "AbstractConfigurationProvider.kt" ,
508+ extra_data = {"kotlin_package" : "org.apache.flume.node" },
509+ )
510+ from2 = make_resource_file (
511+ self .project1 ,
512+ path = "from/flume-ng-node-1.9.0-sources.jar-extract" ,
513+ )
514+ to1 = make_resource_file (
515+ self .project1 ,
516+ path = "to/flume-ng-node-1.9.0.jar-extract/org/apache/flume/node/"
517+ "AbstractConfigurationProvider.class" ,
518+ )
519+ make_resource_file (
520+ self .project1 ,
521+ path = "to/flume-ng-node-1.9.0.jar-extract/META-INF/MANIFEST.MF" ,
522+ )
523+ to_jar = make_resource_file (
524+ self .project1 ,
525+ path = "to/flume-ng-node-1.9.0.jar" ,
526+ )
527+
528+ buffer = io .StringIO ()
529+ d2d .map_jvm_to_class (
530+ self .project1 , logger = buffer .write , jvm_lang = jvm .KotlinLanguage
531+ )
532+ relation = self .project1 .codebaserelations .get ()
533+ self .assertEqual (from1 , relation .from_resource )
534+ self .assertEqual (to1 , relation .to_resource )
535+ self .assertEqual ("kotlin_to_class" , relation .map_type )
536+ expected = {"from_source_root" : "from/flume-ng-node-1.9.0-sources.jar-extract/" }
537+ self .assertEqual (expected , relation .extra_data )
538+
539+ buffer = io .StringIO ()
540+ with self .assertNumQueries (6 ):
541+ d2d .map_jar_to_jvm_source (
542+ self .project1 , logger = buffer .write , jvm_lang = jvm .KotlinLanguage
543+ )
544+ expected = "Mapping 1 .jar resources using map_jar_to_source"
545+ self .assertIn (expected , buffer .getvalue ())
546+
547+ self .assertEqual (2 , self .project1 .codebaserelations .count ())
548+ relation = self .project1 .codebaserelations .get (map_type = "jar_to_source" )
549+ self .assertEqual (from2 , relation .from_resource )
550+ self .assertEqual (to_jar , relation .to_resource )
453551
454552 def test_scanpipe_pipes_d2d_map_jar_to_source_works_for_jar (self ):
455553 from1 = make_resource_file (
0 commit comments