package org.jbehave.eclipse.util; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.jbehave.eclipse.Keyword.Given; import static org.jbehave.eclipse.Keyword.InOrderTo; import static org.jbehave.eclipse.Keyword.Narrative; import org.jbehave.core.i18n.LocalizedKeywords; import org.jbehave.eclipse.Keyword; import org.jbehave.eclipse.util.CharTree; import org.junit.Before; import org.junit.Test; public class CharTreeTest { private CharTree<Keyword> tree; @Before public void setUp () { LocalizedKeywords keywords = new LocalizedKeywords(); tree = new CharTree<Keyword>('/', null); for(Keyword keyword : Keyword.values()) tree.push(keyword.asString(keywords), keyword); } @Test public void canFindElement() { assertThat(tree.lookup("Given"), equalTo(Given)); assertThat(tree.lookup("Narrative:"), equalTo(Narrative)); assertThat(tree.lookup("Given a user named \"Bob\""), equalTo(Given)); assertThat(tree.lookup("In order to be more communicative"), equalTo(InOrderTo)); } @Test public void missingElementReturnsNull() { assertThat(tree.lookup("Gaven"), equalTo(null)); assertThat(tree.lookup("\n"), equalTo(null)); } }