@@ -14,15 +14,19 @@ import com.intellij.openapi.roots.ModuleRootManager
14
14
import com.intellij.testFramework.common.ThreadLeakTracker
15
15
import com.intellij.testFramework.runInEdtAndGet
16
16
import com.intellij.testFramework.runInEdtAndWait
17
+ import com.intellij.testFramework.utils.io.createFile
17
18
import kotlinx.coroutines.runBlocking
18
19
import org.apache.commons.codec.digest.DigestUtils
19
20
import org.assertj.core.api.Assertions.assertThat
20
21
import org.assertj.core.api.Assertions.fail
21
22
import org.junit.Assert.assertEquals
22
23
import org.junit.Assert.assertFalse
24
+ import org.junit.Assert.assertNotNull
25
+ import org.junit.Assert.assertTrue
23
26
import org.junit.Before
24
27
import org.junit.Rule
25
28
import org.junit.Test
29
+ import org.junit.rules.TemporaryFolder
26
30
import org.mockito.Mockito.doReturn
27
31
import org.mockito.Mockito.mock
28
32
import org.mockito.Mockito.spy
@@ -54,7 +58,6 @@ import java.io.FileInputStream
54
58
import java.util.Base64
55
59
import java.util.zip.ZipFile
56
60
import kotlin.io.path.Path
57
- import kotlin.test.assertNotNull
58
61
59
62
class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBase (HeavyJavaCodeInsightTestFixtureRule ()) {
60
63
fun addFilesToProjectModule (vararg path : String ) {
@@ -66,6 +69,10 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
66
69
@JvmField
67
70
val wireMock = WireMockRule (WireMockConfiguration .wireMockConfig().dynamicPort())
68
71
72
+ @Rule
73
+ @JvmField
74
+ val tempFolder = TemporaryFolder ()
75
+
69
76
@Before
70
77
override fun setup () {
71
78
super .setup()
@@ -338,6 +345,44 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
338
345
}
339
346
}
340
347
348
+ @Test
349
+ fun `CodeModernizerSession can create zip and excludes maven metadata from dependencies folder` () {
350
+ // get project.projectFile because project.projectFile can not be null
351
+ val context = CodeModernizerSessionContext (project, emptyPomFile, JavaSdkVersion .JDK_1_8 , JavaSdkVersion .JDK_11 )
352
+ val m2Folders = listOf (
353
+ " com/groupid1/artifactid1/version1" ,
354
+ " com/groupid1/artifactid1/version2" ,
355
+ " com/groupid1/artifactid2/version1" ,
356
+ " com/groupid2/artifactid1/version1" ,
357
+ " com/groupid2/artifactid1/version2" ,
358
+ )
359
+ // List of files that exist in m2 artifact directory
360
+ val filesToAdd = listOf (
361
+ " _remote.repositories" ,
362
+ " test-0.0.1-20240315.145420-18.pom" ,
363
+ " test-0.0.1-20240315.145420-18.pom.sha1" ,
364
+ " test-0.0.1-SNAPSHOT.pom" ,
365
+ " maven-metadata-test-repo.xml" ,
366
+ " maven-metadata-test-repo.xml.sha1" ,
367
+ " resolver-status.properties" ,
368
+ )
369
+ val expectedFilesAfterClean = listOf (
370
+ " test-0.0.1-20240315.145420-18.pom" ,
371
+ " test-0.0.1-SNAPSHOT.pom" ,
372
+ " maven-metadata-test-repo.xml" ,
373
+ " resolver-status.properties" ,
374
+ )
375
+
376
+ m2Folders.forEach {
377
+ val newFolder = tempFolder.newFolder(* it.split(" /" ).toTypedArray())
378
+ filesToAdd.forEach { file -> newFolder.toPath().resolve(file).createFile() }
379
+ }
380
+
381
+ val dependenciesToUpload = context.iterateThroughDependencies(tempFolder.root)
382
+ assertEquals(m2Folders.size * expectedFilesAfterClean.size, dependenciesToUpload.size)
383
+ assertTrue(dependenciesToUpload.all { it.name in expectedFilesAfterClean })
384
+ }
385
+
341
386
@Test
342
387
fun `CodeModernizer can create modernization job` () {
343
388
doReturn(ZipCreationResult .Succeeded (File (" ./tst-resources/codemodernizer/test.txt" )))
0 commit comments