@@ -12,10 +12,12 @@ import com.intellij.openapi.application.ApplicationManager
12
12
import com.intellij.openapi.projectRoots.JavaSdkVersion
13
13
import com.intellij.openapi.roots.ModuleRootManager
14
14
import com.intellij.testFramework.common.ThreadLeakTracker
15
+ import com.intellij.testFramework.runInEdtAndGet
15
16
import com.intellij.testFramework.runInEdtAndWait
16
17
import kotlinx.coroutines.runBlocking
17
18
import org.apache.commons.codec.digest.DigestUtils
18
19
import org.assertj.core.api.Assertions.assertThat
20
+ import org.assertj.core.api.Assertions.fail
19
21
import org.gradle.internal.impldep.com.amazonaws.ResponseMetadata
20
22
import org.junit.Assert.assertEquals
21
23
import org.junit.Assert.assertFalse
@@ -94,7 +96,6 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
94
96
val fileText = " Morning"
95
97
projectRule.fixture.addFileToModule(module, " src/tmp.txt" , fileText)
96
98
97
- var file: File ? = null
98
99
// get project.projectFile because project.projectFile can not be null
99
100
val rootManager = ModuleRootManager .getInstance(module)
100
101
val roots = rootManager.contentRoots
@@ -105,24 +106,23 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
105
106
val codeContext = mock(CodeModernizerSessionContext ::class .java)
106
107
val mockFile = mock(File ::class .java)
107
108
`when `(codeContext.runMavenCommand(mockFile)).thenReturn(mock(File ::class .java))
108
- runInEdtAndWait {
109
- file = context.createZipWithModuleFiles().payload
109
+ val file = runInEdtAndGet {
110
+ context.createZipWithModuleFiles().payload
110
111
}
111
- assertNotNull(file)
112
- val zipFile = ZipFile (file)
113
- val entries = zipFile.entries()
114
- var numEntries = 0
115
- while (entries.hasMoreElements()) {
116
- numEntries + = 1
117
- val entry = entries.nextElement() ? : continue
118
- val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
119
- when (Path (entry.name)) {
120
- Path (" manifest.json" ) -> assertNotNull(fileContent)
121
- Path (" sources/src/tmp.txt" ) -> assertEquals(fileText, fileContent)
122
- else -> throw AssertionError (" Unexpected entry in zip file: $entry " )
112
+ ZipFile (file).use { zipFile ->
113
+ var numEntries = 0
114
+ assertThat(zipFile.entries().toList()).allSatisfy { entry ->
115
+ numEntries + = 1
116
+ val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
117
+ when (Path (entry.name)) {
118
+ Path (" manifest.json" ) -> assertNotNull(fileContent)
119
+ Path (" sources/src/tmp.txt" ) -> assertEquals(fileText, fileContent)
120
+ else -> fail(" Unexpected entry in zip file: $entry " )
121
+ }
123
122
}
123
+ zipFile.close()
124
+ assert (numEntries == 2 )
124
125
}
125
- assert (numEntries == 2 )
126
126
}
127
127
128
128
@Test
@@ -134,7 +134,6 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
134
134
projectRule.fixture.addFileToModule(module, " target/somedir/anotherthing.class" , fileText)
135
135
projectRule.fixture.addFileToModule(module, " pom.xml" , fileText)
136
136
137
- var file: File ? = null
138
137
// get project.projectFile because project.projectFile can not be null
139
138
val rootManager = ModuleRootManager .getInstance(module)
140
139
val roots = rootManager.contentRoots
@@ -145,21 +144,20 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
145
144
val codeContext = mock(CodeModernizerSessionContext ::class .java)
146
145
val mockFile = mock(File ::class .java)
147
146
`when `(codeContext.runMavenCommand(mockFile)).thenReturn(mock(File ::class .java))
148
- runInEdtAndWait {
149
- file = context.createZipWithModuleFiles().payload
147
+ val file = runInEdtAndGet {
148
+ context.createZipWithModuleFiles().payload
150
149
}
151
- assertNotNull(file)
152
- val zipFile = ZipFile (file)
153
- val entries = zipFile.entries()
154
- while (entries.hasMoreElements()) {
155
- val entry = entries.nextElement() ? : continue
156
- val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
157
- when (Path (entry.name)) {
158
- Path (" manifest.json" ) -> assertNotNull(fileContent)
159
- Path (" sources/src/tmp.java" ) -> assertEquals(fileText, fileContent)
160
- Path (" sources/pom.xml" ) -> assertEquals(fileText, fileContent)
161
- else -> throw AssertionError (" Unexpected entry in zip file: $entry " )
150
+ ZipFile (file).use { zipFile ->
151
+ assertThat(zipFile.entries().toList()).allSatisfy { entry ->
152
+ val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
153
+ when (Path (entry.name)) {
154
+ Path (" manifest.json" ) -> assertNotNull(fileContent)
155
+ Path (" sources/src/tmp.java" ) -> assertEquals(fileText, fileContent)
156
+ Path (" sources/pom.xml" ) -> assertEquals(fileText, fileContent)
157
+ else -> fail(" Unexpected entry in zip file: $entry " )
158
+ }
162
159
}
160
+ zipFile.close()
163
161
}
164
162
}
165
163
@@ -172,34 +170,32 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
172
170
projectRule.fixture.addFileToModule(module, " target/somedir/anotherthing.class" , fileText)
173
171
projectRule.fixture.addFileToModule(module, " pom.xml" , fileText)
174
172
175
- var file: File ? = null
176
173
// get project.projectFile because project.projectFile can not be null
177
174
val rootManager = ModuleRootManager .getInstance(module)
178
175
val roots = rootManager.contentRoots
179
176
assertFalse(roots.isEmpty() || roots.size > 1 )
180
177
181
178
val pom = roots[0 ].children.first { it.name == " pom.xml" }
182
179
val context = CodeModernizerSessionContext (project, pom, JavaSdkVersion .JDK_1_8 , JavaSdkVersion .JDK_11 )
183
- runInEdtAndWait {
184
- file = context.createZipWithModuleFiles().payload
180
+ val file = runInEdtAndGet {
181
+ context.createZipWithModuleFiles().payload
185
182
}
186
- assertNotNull(file)
187
- val zipFile = ZipFile (file)
188
- val entries = zipFile.entries()
189
- while (entries.hasMoreElements()) {
190
- val entry = entries.nextElement() ? : continue
191
- val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
192
- when (Path (entry.name)) {
193
- Path (" manifest.json" ) -> assertNotNull(fileContent)
194
- Path (" sources/src/tmp.java" ) -> assertEquals(fileText, fileContent)
195
- Path (" sources/pom.xml" ) -> assertEquals(fileText, fileContent)
196
- else -> throw AssertionError (" Unexpected entry in zip file: $entry " )
183
+ ZipFile (file).use { zipFile ->
184
+ assertThat(zipFile.entries().toList()).allSatisfy { entry ->
185
+ val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
186
+ when (Path (entry.name)) {
187
+ Path (" manifest.json" ) -> assertNotNull(fileContent)
188
+ Path (" sources/src/tmp.java" ) -> assertEquals(fileText, fileContent)
189
+ Path (" sources/pom.xml" ) -> assertEquals(fileText, fileContent)
190
+ else -> fail(" Unexpected entry in zip file: $entry " )
191
+ }
197
192
}
193
+ zipFile.close()
198
194
}
199
195
}
200
196
201
197
@Test
202
- fun `CodeModernizerSession can create zip and exludes nested target` () {
198
+ fun `CodeModernizerSession can create zip and exclude nested target` () {
203
199
addFilesToProjectModule(
204
200
" src/tmp.java" ,
205
201
" target/smth.java" ,
@@ -209,30 +205,64 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
209
205
" someModule/target/smth.class" ,
210
206
" someModule/src/helloworld.java" ,
211
207
)
212
- var file: File ? = null
213
208
val rootManager = ModuleRootManager .getInstance(module)
214
209
val roots = rootManager.contentRoots
215
210
assertFalse(roots.isEmpty() || roots.size > 1 )
216
211
217
212
val pom = roots[0 ].children.first { it.name == " pom.xml" }
218
213
val context = CodeModernizerSessionContext (project, pom, JavaSdkVersion .JDK_1_8 , JavaSdkVersion .JDK_11 )
219
- runInEdtAndWait {
220
- file = context.createZipWithModuleFiles().payload
214
+ val file = runInEdtAndGet {
215
+ context.createZipWithModuleFiles().payload
216
+ }
217
+ ZipFile (file).use { zipFile ->
218
+ assertThat(zipFile.entries().toList()).allSatisfy { entry ->
219
+ val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
220
+ when (Path (entry.name)) {
221
+ Path (" manifest.json" ) -> assertNotNull(fileContent)
222
+ Path (" sources/src/tmp.java" ) -> assertEquals(" src/tmp.java" , fileContent)
223
+ Path (" sources/pom.xml" ) -> assertEquals(" pom.xml" , fileContent)
224
+ Path (" sources/someModule/src/helloworld.java" ) -> assertEquals(" someModule/src/helloworld.java" , fileContent)
225
+ Path (" sources/someModule/pom.xml" ) -> assertEquals(" someModule/pom.xml" , fileContent)
226
+ else -> fail(" Unexpected entry in zip file: $entry " )
227
+ }
228
+ }
229
+ zipFile.close()
230
+ }
231
+ }
232
+
233
+ @Test
234
+ fun `CodeModernizerSession can create zip and replace Windows file path` () {
235
+ addFilesToProjectModule(
236
+ " src\\ tmp.java" ,
237
+ " target\\ smth.java" ,
238
+ " target\\ somedir\\ anotherthing.class" ,
239
+ " pom.xml" ,
240
+ " someModule\\ pom.xml" ,
241
+ " someModule\\ target\\ smth.class" ,
242
+ " someModule\\ src\\ helloworld.java" ,
243
+ )
244
+ val rootManager = ModuleRootManager .getInstance(module)
245
+ val roots = rootManager.contentRoots
246
+ assertFalse(roots.isEmpty() || roots.size > 1 )
247
+
248
+ val pom = roots[0 ].children.first { it.name == " pom.xml" }
249
+ val context = CodeModernizerSessionContext (project, pom, JavaSdkVersion .JDK_1_8 , JavaSdkVersion .JDK_11 )
250
+ val file = runInEdtAndGet {
251
+ context.createZipWithModuleFiles().payload
221
252
}
222
- assertNotNull(file)
223
- val zipFile = ZipFile (file)
224
- val entries = zipFile.entries()
225
- while (entries.hasMoreElements()) {
226
- val entry = entries.nextElement() ? : continue
227
- val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
228
- when (Path (entry.name)) {
229
- Path (" manifest.json" ) -> assertNotNull(fileContent)
230
- Path (" sources/src/tmp.java" ) -> assertEquals(" src/tmp.java" , fileContent)
231
- Path (" sources/pom.xml" ) -> assertEquals(" pom.xml" , fileContent)
232
- Path (" sources/someModule/src/helloworld.java" ) -> assertEquals(" someModule/src/helloworld.java" , fileContent)
233
- Path (" sources/someModule/pom.xml" ) -> assertEquals(" someModule/pom.xml" , fileContent)
234
- else -> throw AssertionError (" Unexpected entry in zip file: $entry " )
253
+ ZipFile (file).use { zipFile ->
254
+ assertThat(zipFile.entries().toList()).allSatisfy { entry ->
255
+ val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
256
+ when (Path (entry.name)) {
257
+ Path (" manifest.json" ) -> assertNotNull(fileContent)
258
+ Path (" sources/src/tmp.java" ) -> assertEquals(" src\\ tmp.java" , fileContent)
259
+ Path (" sources/pom.xml" ) -> assertEquals(" pom.xml" , fileContent)
260
+ Path (" sources/someModule/src/helloworld.java" ) -> assertEquals(" someModule\\ src\\ helloworld.java" , fileContent)
261
+ Path (" sources/someModule/pom.xml" ) -> assertEquals(" someModule\\ pom.xml" , fileContent)
262
+ else -> fail(" Unexpected entry in zip file: $entry " )
263
+ }
235
264
}
265
+ zipFile.close()
236
266
}
237
267
}
238
268
@@ -245,30 +275,28 @@ class CodeWhispererCodeModernizerSessionTest : CodeWhispererCodeModernizerTestBa
245
275
" someModule/pom.xml" ,
246
276
" someModule/.idea/smthelse.iml"
247
277
)
248
- var file: File ? = null
249
278
// get project.projectFile because project.projectFile can not be null
250
279
val rootManager = ModuleRootManager .getInstance(module)
251
280
val roots = rootManager.contentRoots
252
281
assertFalse(roots.isEmpty() || roots.size > 1 )
253
282
254
283
val pom = roots[0 ].children.first { it.name == " pom.xml" }
255
284
val context = CodeModernizerSessionContext (project, pom, JavaSdkVersion .JDK_1_8 , JavaSdkVersion .JDK_11 )
256
- runInEdtAndWait {
257
- file = context.createZipWithModuleFiles().payload
285
+ val file = runInEdtAndGet {
286
+ context.createZipWithModuleFiles().payload
258
287
}
259
- assertNotNull(file)
260
- val zipFile = ZipFile (file)
261
- val entries = zipFile.entries()
262
- while (entries.hasMoreElements()) {
263
- val entry = entries.nextElement() ? : continue
264
- val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
265
- when (Path (entry.name)) {
266
- Path (" manifest.json" ) -> assertNotNull(fileContent)
267
- Path (" sources/pom.xml" ) -> assertEquals(" pom.xml" , fileContent)
268
- Path (" sources/src/tmp.java" ) -> assertEquals(" src/tmp.java" , fileContent)
269
- Path (" sources/someModule/pom.xml" ) -> assertEquals(" someModule/pom.xml" , fileContent)
270
- else -> throw AssertionError (" Unexpected entry in zip file: $entry " )
288
+ ZipFile (file).use { zipFile ->
289
+ assertThat(zipFile.entries().toList()).allSatisfy { entry ->
290
+ val fileContent = zipFile.getInputStream(entry).bufferedReader().readLine()
291
+ when (Path (entry.name)) {
292
+ Path (" manifest.json" ) -> assertNotNull(fileContent)
293
+ Path (" sources/pom.xml" ) -> assertEquals(" pom.xml" , fileContent)
294
+ Path (" sources/src/tmp.java" ) -> assertEquals(" src/tmp.java" , fileContent)
295
+ Path (" sources/someModule/pom.xml" ) -> assertEquals(" someModule/pom.xml" , fileContent)
296
+ else -> throw AssertionError (" Unexpected entry in zip file: $entry " )
297
+ }
271
298
}
299
+ zipFile.close()
272
300
}
273
301
}
274
302
0 commit comments