From f0bbc0157c67c1307bf8aec502e3e73d3cec890b Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 1 Aug 2013 18:22:50 +0200 Subject: [PATCH] FileTemplatesTest: test collect undefined attribute names --- .../fileTemplates/FileTemplatesTest.groovy | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.groovy b/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.groovy index e6a69ec5ff55..cf70ec05608a 100644 --- a/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.groovy +++ b/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.groovy @@ -1,5 +1,6 @@ package com.intellij.ide.fileTemplates import com.intellij.ide.fileTemplates.impl.CustomFileTemplate +import com.intellij.openapi.Disposable import com.intellij.openapi.application.ex.PathManagerEx import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.util.io.FileUtil @@ -86,28 +87,38 @@ public class FileTemplatesTest extends IdeaTestCase { assertNotNull(catchBodyTemplate); } + public void "test collect undefined attribute names"() { + String name = "myclass"; + FileTemplate template = addTestTemplate(name, '${ABC} ${DEF} ${NAME}') + Properties properties = new Properties() + properties.NAME = 'zzz' + assert template.getUnsetAttributes(properties) as Set == ['ABC', 'DEF'] as Set + } + public void testDefaultPackage() throws Exception { String name = "myclass"; - FileTemplate template = FileTemplateManager.getInstance().addInternal(name/*+"ForTest"*/, "java"); - try { - template.setText('package ${PACKAGE_NAME}; public class ${NAME} {}'); + FileTemplate template = addTestTemplate(name, 'package ${PACKAGE_NAME}; public class ${NAME} {}') - File temp = FileUtil.createTempDirectory(getTestName(true), ""); + File temp = FileUtil.createTempDirectory(getTestName(true), ""); - myFilesToDelete.add(temp); - final VirtualFile tempDir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(temp); + myFilesToDelete.add(temp); + final VirtualFile tempDir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(temp); - PsiTestUtil.addSourceRoot(getModule(), tempDir); + PsiTestUtil.addSourceRoot(getModule(), tempDir); - VirtualFile sourceRoot = ModuleRootManager.getInstance(getModule()).getSourceRoots()[0]; - PsiDirectory psiDirectory = PsiManager.getInstance(getProject()).findDirectory(sourceRoot); + VirtualFile sourceRoot = ModuleRootManager.getInstance(getModule()).getSourceRoots()[0]; + PsiDirectory psiDirectory = PsiManager.getInstance(getProject()).findDirectory(sourceRoot); - PsiClass psiClass = JavaDirectoryService.getInstance().createClass(psiDirectory, "XXX", name); - assertNotNull(psiClass); - assertEquals("public class XXX {\n}", psiClass.getContainingFile().getText()); - } - finally { - FileTemplateManager.getInstance().removeTemplate(template); - } + PsiClass psiClass = JavaDirectoryService.getInstance().createClass(psiDirectory, "XXX", name); + assertNotNull(psiClass); + assertEquals("public class XXX {\n}", psiClass.getContainingFile().getText()); + FileTemplateManager.getInstance().removeTemplate(template); + } + + private FileTemplate addTestTemplate(String name, String text) { + FileTemplate template = FileTemplateManager.getInstance().addInternal(name, "java"); + disposeOnTearDown({ FileTemplateManager.getInstance().removeTemplate(template) } as Disposable) + template.setText(text); + template } }