33
44package software.aws.toolkits.jetbrains.services.codewhisperer
55
6+ import com.intellij.openapi.application.readAction
67import com.intellij.openapi.project.Project
78import com.intellij.openapi.vfs.VirtualFile
89import com.intellij.psi.PsiFile
@@ -13,7 +14,6 @@ import com.intellij.testFramework.runInEdtAndWait
1314import kotlinx.coroutines.test.runTest
1415import org.assertj.core.api.Assertions.assertThat
1516import org.junit.Before
16- import org.junit.Ignore
1717import org.junit.Rule
1818import org.junit.Test
1919import org.mockito.kotlin.any
@@ -237,29 +237,51 @@ class CodeWhispererFileContextProviderTest {
237237 )
238238 }
239239
240- /* *
241- * - src/
242- * - java/
243- * - Main.java
244- * - Util.java
245- * - controllers/
246- * -MyApiController.java
247- * - tst/
248- * - java/
249- * - MainTest.java
250- *
251- */
252- // TODO: fix this test, in test env, psiFile.virtualFile == null @psiGist.getFileData(psiFile) { psiFile -> ... }
253- @Ignore
254240 @Test
255241 fun `extractSupplementalFileContext from src file should extract src` () = runTest {
256- val psiFiles = setupFixture(fixture)
242+ val file1 = " Human machine interface for lab abc computer applications"
243+ val file2 = " A survey of user opinion of computer system response time"
244+ val file3 = " The EPS user interface management system"
245+ val file4 = " System and human system engineering testing of EPS"
246+ val file5 = " Relation of user perceived response time to error measurement"
247+ val file6 = " The generation of random binary unordered trees"
248+ val file7 = " The intersection graph of paths in trees"
249+ val file8 = " Graph minors IV Widths of trees and well quasi ordering"
250+ val file9 = " Graph minors A survey"
251+ val query = " The intersection of graph survey and trees"
252+
253+ val queryPsi = fixture.addFileToProject(" Query.java" , query)
254+ val file1Psi = fixture.addFileToProject(" File1.java" , file1)
255+ val file2Psi = fixture.addFileToProject(" File2.java" , file2)
256+ val file3Psi = fixture.addFileToProject(" File3.java" , file3)
257+ val file4Psi = fixture.addFileToProject(" File4.java" , file4)
258+ val file5Psi = fixture.addFileToProject(" File5.java" , file5)
259+ val file6Psi = fixture.addFileToProject(" File6.java" , file6)
260+ val file7Psi = fixture.addFileToProject(" File7.java" , file7)
261+ val file8Psi = fixture.addFileToProject(" File8.java" , file8)
262+ val file9Psi = fixture.addFileToProject(" File9.java" , file9)
263+
264+ runInEdtAndWait {
265+ fixture.openFileInEditor(file1Psi.viewProvider.virtualFile)
266+ fixture.openFileInEditor(file2Psi.viewProvider.virtualFile)
267+ fixture.openFileInEditor(file3Psi.viewProvider.virtualFile)
268+ fixture.openFileInEditor(file4Psi.viewProvider.virtualFile)
269+ fixture.openFileInEditor(file5Psi.viewProvider.virtualFile)
270+ fixture.openFileInEditor(file6Psi.viewProvider.virtualFile)
271+ fixture.openFileInEditor(file7Psi.viewProvider.virtualFile)
272+ fixture.openFileInEditor(file8Psi.viewProvider.virtualFile)
273+ fixture.openFileInEditor(file9Psi.viewProvider.virtualFile)
274+ }
275+
257276 sut = spy(sut)
258277
259- val fileContext = sut.extractFileContext(fixture.editor, psiFiles[0 ])
278+ val fileContext = readAction { sut.extractFileContext(fixture.editor, queryPsi) }
279+ val supplementalContext = sut.extractSupplementalFileContext(queryPsi, fileContext, timeout = 50 )
260280
261- val supplementalContext = sut.extractSupplementalFileContext(psiFiles[0 ], fileContext, timeout = 50 )
262- assertThat(supplementalContext?.contents).isNotNull.isNotEmpty
281+ assertThat(supplementalContext?.contents)
282+ .isNotNull
283+ .isNotEmpty
284+ .hasSize(3 )
263285
264286 verify(sut).extractSupplementalFileContextForSrc(any(), any())
265287 verify(sut, times(0 )).extractSupplementalFileContextForTst(any(), any())
0 commit comments