package org.karmaexchange.util; import static org.junit.Assert.*; import static org.karmaexchange.util.SearchUtil.getSearchableTokens; import static org.karmaexchange.util.SearchUtil.addSearchableTokens; import java.util.EnumSet; import org.junit.Test; import org.karmaexchange.util.SearchUtil.ParseOptions; import org.karmaexchange.util.SearchUtil.ReservedToken; import com.google.common.collect.ImmutableSet; public class SearchUtilTest { @Test public void testGetSearchableTokens() { assertEquals(ImmutableSet.of("#tag"), getSearchableTokens("#tag", 10)); assertEquals( ImmutableSet.of("amir", "test", "case", "isn't", "amazing", "instructive", "bus", "#tagsarealwaysextractedfirst"), getSearchableTokens( "Amir's test case isn't \"amazing\" but it. Is 'instructive' bus buses able " + "token limit reached. #tagsAreAlwaysExtractedFirst but #1 and #123baby are not tags", 8)); assertEquals(ImmutableSet.of("org:xyz"), getSearchableTokens(SearchUtil.ReservedToken.ORG.create("xyz"), 10)); } @Test public void testAddSearchableTokens() { for (ReservedToken reservedToken : ReservedToken.values()) { BoundedHashSet<String> tokenSet = BoundedHashSet.create(10); addSearchableTokens(tokenSet, reservedToken.create("xyz"), EnumSet.noneOf(ParseOptions.class)); assertEquals(ImmutableSet.of(reservedToken.create("xyz")), tokenSet); tokenSet = BoundedHashSet.create(10); addSearchableTokens(tokenSet, reservedToken.create("xyz"), EnumSet.of(ParseOptions.EXCLUDE_RESERVED_TOKENS)); assertEquals(ImmutableSet.of(), tokenSet); } } }