@@ -97,3 +97,98 @@ def test_scanpipe_pipes_jvm_get_normalized_java_path_with_inner_class(self):
9797 def test_scanpipe_pipes_jvm_get_fully_qualified_java_path (self ):
9898 fqjp = jvm .get_fully_qualified_path ("org.common" , "Bar.java" )
9999 self .assertEqual ("org/common/Bar.java" , fqjp )
100+
101+
102+ class ScanPipeJvmScalaTest (TestCase ):
103+ data = Path (__file__ ).parent .parent / "data"
104+
105+ scala_code = """
106+ package org.apache.logging.log4j.scala
107+ import scala.concurrent.Future
108+ """
109+
110+ scala_package_too_far_down = ("\n " * 501 ) + "package org.apache.logging.log4j.scala"
111+
112+ def test_scanpipe_pipes_jvm_find_scala_package (self ):
113+ package = jvm .ScalaLanguage .find_source_package (self .scala_code .splitlines ())
114+ self .assertEqual ({"scala_package" : "org.apache.logging.log4j.scala" }, package )
115+
116+ def test_scanpipe_pipes_jvm_find_scala_package_with_spaces (self ):
117+ lines = [" package foo.bar.baz ;" ]
118+ package = jvm .ScalaLanguage .find_source_package (lines )
119+ self .assertEqual ({"scala_package" : "foo.bar.baz" }, package )
120+
121+ def test_scanpipe_pipes_jvm_find_scala_package_return_None (self ):
122+ package = jvm .ScalaLanguage .find_source_package (
123+ self .scala_package_too_far_down .splitlines ()
124+ )
125+ self .assertIsNone (package )
126+
127+ def test_scanpipe_pipes_jvm_get_normalized_scala_path (self ):
128+ njp = jvm .ScalaLanguage .get_normalized_path (
129+ "foo/org/common/Bar.class" , ".scala"
130+ )
131+ self .assertEqual ("foo/org/common/Bar.scala" , njp )
132+
133+ def test_scanpipe_pipes_jvm_get_normalized_scala_path_with_inner_class (self ):
134+ njp = jvm .ScalaLanguage .get_normalized_path (
135+ "foo/org/common/Bar$inner.class" , ".scala"
136+ )
137+ self .assertEqual ("foo/org/common/Bar.scala" , njp )
138+
139+ def test_scanpipe_pipes_jvm_get_fully_qualified_scala_path (self ):
140+ fqjp = jvm .get_fully_qualified_path ("org.common" , "Bar.scala" )
141+ self .assertEqual ("org/common/Bar.scala" , fqjp )
142+
143+
144+ class ScanPipeJvmKotlinTest (TestCase ):
145+ data = Path (__file__ ).parent .parent / "data"
146+
147+ kotlin_code = """
148+ package org.apache.logging.log4j.kotlin
149+
150+ import kotlinx.coroutines.Deferred
151+ """
152+
153+ kotlin_package_too_far_down = (
154+ "\n " * 501
155+ ) + "package org.apache.logging.log4j.kotlin"
156+
157+ def test_scanpipe_pipes_jvm_find_kotlin_package (self ):
158+ package = jvm .KotlinLanguage .find_source_package (self .kotlin_code .splitlines ())
159+ self .assertEqual ({"kotlin_package" : "org.apache.logging.log4j.kotlin" }, package )
160+
161+ def test_scanpipe_pipes_jvm_find_kotlin_package_with_spaces (self ):
162+ lines = [" package foo.bar.baz " ]
163+ package = jvm .KotlinLanguage .find_source_package (lines )
164+ self .assertEqual ({"kotlin_package" : "foo.bar.baz" }, package )
165+
166+ def test_scanpipe_pipes_jvm_find_kotlin_package_return_None (self ):
167+ package = jvm .KotlinLanguage .find_source_package (
168+ self .kotlin_package_too_far_down .splitlines ()
169+ )
170+ self .assertIsNone (package )
171+
172+ def test_scanpipe_pipes_jvm_get_normalized_kotlin_path (self ):
173+ njp = jvm .KotlinLanguage .get_normalized_path ("foo/org/common/Bar.class" , ".kt" )
174+ self .assertEqual ("foo/org/common/Bar.kt" , njp )
175+
176+ def test_scanpipe_pipes_jvm_get_normalized_kotlin_path_with_inner_class (self ):
177+ njp = jvm .KotlinLanguage .get_normalized_path (
178+ "foo/org/common/Bar$inner.class" , ".kt"
179+ )
180+ self .assertEqual ("foo/org/common/Bar.kt" , njp )
181+ njp = jvm .KotlinLanguage .get_normalized_path (
182+ "foo/org/common/BarKt$inner.class" , ".kt"
183+ )
184+ self .assertEqual ("foo/org/common/Bar.kt" , njp )
185+
186+ def test_scanpipe_pipes_jvm_get_normalized_kotlin_path_with_Kt_suffix (self ):
187+ njp = jvm .KotlinLanguage .get_normalized_path (
188+ "foo/org/common/LoggerKt.class" , ".kt"
189+ )
190+ self .assertEqual ("foo/org/common/Logger.kt" , njp )
191+
192+ def test_scanpipe_pipes_jvm_get_fully_qualified_kotlin_path (self ):
193+ fqjp = jvm .get_fully_qualified_path ("org.common" , "Bar.kt" )
194+ self .assertEqual ("org/common/Bar.kt" , fqjp )
0 commit comments