package org.codefaces.ui.internal.codeLanguages;
import static org.junit.Assert.assertEquals;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.codefaces.ui.internal.codeLanguages.CodeLanguage;
import org.codefaces.ui.internal.codeLanguages.CodeLanguages;
import org.junit.Before;
import org.junit.Test;
public class CodeLanguagesTest {
private CodeLanguages langs;
@Before
public void setUp() {
langs = new CodeLanguages() {
@Override
protected Collection<CodeLanguage> retrieveLangsFromExtensionPoints() {
Set<CodeLanguage> supportedLangs = new HashSet<CodeLanguage>();
supportedLangs.add(new CodeLanguage("ruby", "ruby",
"ruby_resource", "*.rb", "RakeFile"));
supportedLangs.add(new CodeLanguage("java", "java",
"java_resource", "*.java"));
return supportedLangs;
}
};
}
@Test
public void test_parseFileName_definiedFilePattern() {
CodeLanguage lang = langs.parseFileName("test.java");
assertEquals("java", lang.getName());
}
@Test
public void test_parseFileName_undefiniedFilePattern() {
CodeLanguage lang = langs.parseFileName("test.py");
assertEquals(CodeLanguage.PLAIN_TEXT, lang);
}
@Test
public void test_splitFilePatterns_oneEntry() {
String[] patterns = langs.splitFilePatterns("*.java");
assertEquals(1, patterns.length);
assertEquals("*.java", patterns[0]);
}
@Test
public void test_splitFilePatterns_multipleEntries() {
String[] patterns = langs.splitFilePatterns("*.rb,*.java,*.py");
assertEquals(3, patterns.length);
}
}