package org.easyb.launch.search;
import java.util.List;
import java.util.regex.Pattern;
import junit.framework.TestCase;
import org.easyb.eclipse.test.tools.ProjectTool;
import org.eclipse.core.resources.IFile;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
public class BehaviourSearchTest extends TestCase {
private static final String NO_PCKG_FILE_REGEX = "[\\w|\\s|:|\\\\|\\-|_]*\\\\test\\\\test.story";
private static final String PCKG_FILE_REGEX = "[\\w|\\s|:|\\\\|\\-|_]*\\\\test\\\\testPackage\\\\test2.story";
private static final Pattern NO_PCKG_PATTERN = Pattern.compile(NO_PCKG_FILE_REGEX);
private static final Pattern PCKG_PATTERN = Pattern.compile(PCKG_FILE_REGEX);
private IJavaProject proj;
@Override
protected void setUp()throws Exception{
proj = ProjectTool.setupJavaProject("test");
ProjectTool.createBehaviourFile(proj,"test.story",ProjectTool.getStoryText());
IPackageFragment frag = ProjectTool.createPackage(proj,"testPackage");
ProjectTool.createBehaviourInPackage(frag,"test2.story",ProjectTool.getStoryText());
}
public void testFindStoryPaths()throws Exception{
List<String> paths = BehaviourSearch.findStoryPaths(proj.getProject());
boolean noPckgFound = false;
boolean pckFound = false;
for(String path : paths){
if(NO_PCKG_PATTERN.matcher(path).find()){
noPckgFound = true;
}
if(PCKG_PATTERN.matcher(path).find()){
pckFound =true;
}
}
assertTrue(noPckgFound);
assertTrue(pckFound);
}
public void testFindStoryFiles()throws Exception{
IFile[] files = BehaviourSearch.findStoryFiles(proj.getProject());
boolean noPckgFound = false;
boolean pckFound = false;
for(IFile file : files){
String filePath = file.getRawLocation().toOSString();
if(NO_PCKG_PATTERN.matcher(filePath).find()){
noPckgFound = true;
}
if(PCKG_PATTERN.matcher(filePath).find()){
pckFound =true;
}
}
assertTrue(noPckgFound);
assertTrue(pckFound);
}
}