[java] module-info template according to platform's expectations

This commit is contained in:
Roman Shevchenko
2016-11-23 14:16:45 +01:00
parent 7b53345efa
commit e13571a439
3 changed files with 18 additions and 35 deletions
@@ -16,38 +16,38 @@
package com.intellij.ide.actions
import com.intellij.ide.IdeView
import com.intellij.ide.fileTemplates.FileTemplateManager
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.LangDataKeys
import com.intellij.psi.PsiDirectory
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiJavaModule
import com.intellij.psi.PsiManager
import com.intellij.testFramework.MapDataContext
import com.intellij.testFramework.fixtures.LightJava9ModulesCodeInsightFixtureTestCase
import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.MAIN
import org.assertj.core.api.Assertions.assertThat
class CreateModuleInfoActionTest : LightJava9ModulesCodeInsightFixtureTestCase() {
fun test() {
val dir = PsiManager.getInstance(project).findDirectory(MAIN.root())!!
val ctx = MapDataContext()
ctx.put(LangDataKeys.IDE_VIEW, object : IdeView {
override fun selectElement(element: PsiElement?) = Unit
override fun getDirectories() = arrayOf(dir)
override fun getOrChooseDirectory() = throw UnsupportedOperationException()
})
ctx.put(LangDataKeys.MODULE, myModule)
val ctx = MapDataContext(mapOf(LangDataKeys.IDE_VIEW to TestIdeView(dir), LangDataKeys.MODULE to myModule))
val event = AnActionEvent.createFromDataContext("", null, ctx)
ActionManager.getInstance().getAction("NewModuleInfo")!!.actionPerformed(event)
val file = dir.findFile(PsiJavaModule.MODULE_INFO_FILE)!!
assertThat(file.text).isEqualTo("""
val p = FileTemplateManager.getInstance(project).defaultProperties
assertEquals("""
/**
* Created by ${'$'}{USER} on ${'$'}{DATE}.
* Created by ${p["USER"]} on ${p["DATE"]}.
*/
module light_idea_test_case {
}""".trimIndent())
module MODULE_NAME {
}""".trimIndent(), file.text)
}
private class TestIdeView(private val dir: PsiDirectory) : IdeView {
override fun selectElement(element: PsiElement?) = Unit
override fun getDirectories() = arrayOf(dir)
override fun getOrChooseDirectory() = throw UnsupportedOperationException()
}
}