in intellij-plugin/educational-core/testSrc/com/jetbrains/edu/learning/handlers/VirtualFileListenerTestBase.kt [230:273]
protected fun doRenameFileTest(filePathInCourse: String, newName: String, checksProducer: (Course) -> List<FileCheck>) {
val course = courseWithFiles(
courseMode = courseMode,
language = FakeGradleBasedLanguage
) {
lesson("lesson1") {
eduTask("task1") {
dir("src/packageName") {
taskFile("Task1.kt")
taskFile("Task2.kt")
}
dir("additional_files") {
taskFile("additional_file1.txt")
taskFile("additional_file2.txt")
}
dir("test/packageName") {
taskFile("Test1.kt")
taskFile("Test2.kt")
}
}
}
}
val file = findFile(filePathInCourse)
val psiFileSystemItem = if (file.isDirectory) {
PsiManager.getInstance(project).findDirectory(file) ?: error("Can't find psi directory for $file")
} else {
PsiManager.getInstance(project).findFile(file) ?: error("Can't find psi file for $file")
}
myFixture.renameElement(psiFileSystemItem, newName)
val checks = checksProducer(course)
checks.forEach(FileCheck::check)
val dialog = EduTestDialog()
withEduTestDialog(dialog) {
UndoManager.getInstance(project).undo(null)
}
checks.map(FileCheck::invert).forEach(FileCheck::check)
withEduTestDialog(dialog) {
UndoManager.getInstance(project).redo(null)
}
checks.forEach(FileCheck::check)
}