Skip to content

Commit 7803b0a

Browse files
author
David Hasani
committed
add test
1 parent 4002a33 commit 7803b0a

File tree

3 files changed

+35
-11
lines changed

3 files changed

+35
-11
lines changed

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/controller/CodeTransformChatController.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import com.intellij.openapi.projectRoots.JavaSdkVersion
1212
import com.intellij.openapi.projectRoots.ProjectJdkTable
1313
import com.intellij.openapi.util.io.FileUtil.createTempDirectory
1414
import com.intellij.openapi.vfs.VirtualFile
15-
import com.intellij.openapi.vfs.readText
1615
import kotlinx.coroutines.delay
1716
import kotlinx.coroutines.runBlocking
1817
import kotlinx.coroutines.withContext
@@ -119,8 +118,8 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.utils.isCodeTrans
119118
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.toVirtualFile
120119
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.tryGetJdk
121120
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.unzipFile
121+
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.validateCustomVersionsFile
122122
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.validateSctMetadata
123-
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.validateYamlFile
124123
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.QFeatureEvent
125124
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.broadcastQEvent
126125
import software.aws.toolkits.jetbrains.services.cwc.messages.ChatMessageType
@@ -452,7 +451,7 @@ class CodeTransformChatController(
452451
val descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor()
453452
.withDescription("Select .yaml file")
454453
val selectedFile = FileChooser.chooseFile(descriptor, null, null) ?: return@withContext
455-
val isValid = validateYamlFile(selectedFile)
454+
val isValid = validateCustomVersionsFile(selectedFile)
456455
if (!isValid) {
457456
codeTransformChatHelper.updateLastPendingMessage(buildCustomDependencyVersionsFileInvalidChatContent())
458457
codeTransformChatHelper.addNewMessage(buildStartNewTransformFollowup())

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/utils/CodeTransformFileUtils.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ fun parseXmlDependenciesReport(pathToXmlDependency: Path): DependencyUpdatesRepo
196196
return report
197197
}
198198

199-
fun validateYamlFile(file: VirtualFile): Boolean {
199+
fun validateCustomVersionsFile(file: VirtualFile): Boolean {
200200
if (!file.name.lowercase().endsWith(".yaml")) {
201201
getLogger<CodeTransformChatController>().error { "Custom versions file is not a YAML file: ${file.name}"}
202202
return false

plugins/amazonq/codetransform/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codemodernizer/CodeWhispererCodeModernizerUtilsTest.kt

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33

44
package software.aws.toolkits.jetbrains.services.codemodernizer
55

6+
import com.intellij.testFramework.LightVirtualFile
67
import io.mockk.every
78
import io.mockk.just
89
import io.mockk.mockkStatic
910
import io.mockk.runs
1011
import io.mockk.verify
1112
import kotlinx.coroutines.runBlocking
1213
import org.assertj.core.api.Assertions.assertThat
14+
import org.jetbrains.yaml.YAMLFileType
1315
import org.junit.Before
1416
import org.junit.Test
1517
import org.mockito.Mockito
@@ -33,7 +35,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.utils.parseBuildF
3335
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.pollTransformationStatusAndPlan
3436
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.refreshToken
3537
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.validateSctMetadata
36-
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.validateYamlFile
38+
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.validateCustomVersionsFile
3739
import software.aws.toolkits.jetbrains.utils.notifyStickyWarn
3840
import software.aws.toolkits.jetbrains.utils.rules.addFileToModule
3941
import software.aws.toolkits.resources.message
@@ -326,7 +328,7 @@ class CodeWhispererCodeModernizerUtilsTest : CodeWhispererCodeModernizerTestBase
326328
}
327329

328330
@Test
329-
fun `WHEN validateYamlFile on fully valid yaml file THEN passes validation`() {
331+
fun `WHEN validateCustomVersionsFile on fully valid yaml file THEN passes validation`() {
330332
val sampleFileContents = """name: "custom-dependency-management"
331333
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
332334
dependencyManagement:
@@ -341,12 +343,13 @@ dependencyManagement:
341343
versionProperty: "plugin.version"
342344
""".trimIndent()
343345

344-
val isValidYaml = validateYamlFile(sampleFileContents)
345-
assertThat(isValidYaml).isTrue()
346+
val virtualFile = LightVirtualFile("test-valid.yaml", YAMLFileType.YML, sampleFileContents)
347+
val isValidFile = validateCustomVersionsFile(virtualFile)
348+
assertThat(isValidFile).isTrue()
346349
}
347350

348351
@Test
349-
fun `WHEN validateYamlFile on invalid yaml file THEN fails validation`() {
352+
fun `WHEN validateCustomVersionsFile on invalid yaml file THEN fails validation`() {
350353
val sampleFileContents = """name: "custom-dependency-management"
351354
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
352355
invalidKey:
@@ -361,8 +364,30 @@ invalidKey:
361364
versionProperty: "plugin.version"
362365
""".trimIndent()
363366

364-
val isValidYaml = validateYamlFile(sampleFileContents)
365-
assertThat(isValidYaml).isFalse()
367+
val virtualFile = LightVirtualFile("test-invalid.yaml", YAMLFileType.YML, sampleFileContents)
368+
val isValidFile = validateCustomVersionsFile(virtualFile)
369+
assertThat(isValidFile).isFalse()
370+
}
371+
372+
@Test
373+
fun `WHEN validateCustomVersionsFile on non-yaml file THEN fails validation`() {
374+
val sampleFileContents = """name: "custom-dependency-management"
375+
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
376+
dependencyManagement:
377+
dependencies:
378+
- identifier: "com.example:library1"
379+
targetVersion: "2.1.0"
380+
versionProperty: "library1.version"
381+
originType: "FIRST_PARTY"
382+
plugins:
383+
- identifier: "com.example.plugin"
384+
targetVersion: "1.2.0"
385+
versionProperty: "plugin.version"
386+
""".trimIndent()
387+
388+
val virtualFile = LightVirtualFile("test-invalid-file-type.txt", sampleFileContents)
389+
val isValidFile = validateCustomVersionsFile(virtualFile)
390+
assertThat(isValidFile).isFalse()
366391
}
367392

368393
@Test

0 commit comments

Comments
 (0)