package org.easyb.eclipse.templates.manager;
import junit.framework.TestCase;
import org.easyb.eclipse.templates.processor.BehaviourTemplateProposal;
import org.easyb.eclipse.test.tools.EditorTool;
import org.easyb.eclipse.test.tools.ProjectTool;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.templates.Template;
import org.eclipse.ui.IEditorPart;
public class TemplateManagerTest extends TestCase{
private static final String GIVEN_TEMPLATE = "given";
private IEditorPart editor;
@Override
protected void setUp()throws Exception{
IFile file =
ProjectTool.setupJavaProjectAndBehaviourFile("test.story","test",getStory());
editor = EditorTool.openEditor(file);
}
private String getStory(){
return "given \"blah blah\"{}";
}
public void testGetTemplates(){
Template[] templates =
TemplateManager.getInstance().getTemplates();
assertNotNull(templates);
for(Template template : templates){
assertNotNull(template.getPattern());
assertNotNull(template.getName());
assertTrue(template.getPattern().trim().length()>0);
assertTrue(template.getName().trim().length()>0);
}
}
public void testGetTemplate(){
Template template =
TemplateManager.getInstance().getTemplate("given");
assertNotNull(template);
assertTrue(template.getPattern().trim().length()>0);
assertTrue(template.getName().trim().length()>0);
}
public void testGetEmptyDocument()throws Exception{
Template template =
TemplateManager.getInstance().getTemplate(GIVEN_TEMPLATE);
String pattern =
TemplateManager.getInstance().getEmptyDocumentResolvedPattern(template);
assertTrue(pattern.length()>0);
assertFalse(pattern.contains("$"));
}
public void testGetTemplateProposals(){
ITextViewer viewer = EditorTool.getTextViewer(editor);
BehaviourTemplateProposal[] proposals =
TemplateManager.getInstance().getTemplateProposals(viewer,1);
//Should only find the "given" template
assertTrue(proposals.length==1);
assertEquals("given",proposals[0].getTemplateName());
}
}