package net.ayld.facade.util;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
import java.util.List;
import org.junit.Test;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.collect.Range;
public class TestTokenizer {
@Test
public void tokenize() {
final String test = "why did the chicken cross the road ?";
final List<String> tokens = Tokenizer.delimiter(" ").tokenize(test).tokens();
assertNotNull(tokens);
final List<String> splitTest = Lists.newArrayList(Splitter.on(" ").split(test));
assertTrue(tokens.size() == splitTest.size());
for (String part : splitTest) {
assertTrue(tokens.contains(part));
}
}
@Test
public void makeSureTokenizeDoesNotUseRegularExpressions() {
final String test = "regexp.sux.donkey.balls";
final List<String> regexSplit = ImmutableList.copyOf(Splitter.onPattern(".").split(test));
final List<String> nonRegexSplit = Tokenizer.delimiter(".").tokenize(test).tokens();
assertFalse(regexSplit.equals(nonRegexSplit));
}
@Test
public void range() {
final String test = "somewhere.over.dat.rainbow";
final List<String> tokens = Tokenizer.delimiter(".").tokenize(test).tokens();
for (int i = 0; i < tokens.size(); i++) {
assertTrue(tokens.subList(0, i).equals(Tokenizer.delimiter(".").tokenize(test).tokensIn(Range.closed(0, i))));
}
}
@Test
public void lastToken() {
final String last = "one";
final String lastToken = Tokenizer.delimiter(" ").tokenize("the source is strong in this " + last).lastToken();
assertEquals(last, lastToken);
}
@Test
public void firstToken() {
final String first = "the";
final String firstToken = Tokenizer.delimiter(" ").tokenize(first + " source is strong in this one").firstToken();
assertEquals(first, firstToken);
}
}