FileTemplatesTest: test collect undefined attribute names

This commit is contained in:
peter
2013-08-01 18:22:50 +02:00
parent e3749561d9
commit f0bbc0157c

View File

@@ -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
}
}