public void TestStep1() { string badChars, removedWords; var s1 = FullTextSearchUtils.PrepareSearchCriteriaStep1("word", out badChars, out removedWords); Assert.AreEqual("word", s1); Assert.AreEqual(null, badChars); Assert.AreEqual(null, removedWords); s1 = FullTextSearchUtils.PrepareSearchCriteriaStep1("word word2 ", out badChars, out removedWords); Assert.AreEqual("word word2", s1); Assert.AreEqual(null, badChars); Assert.AreEqual(null, removedWords); s1 = FullTextSearchUtils.PrepareSearchCriteriaStep1("word a word2", out badChars, out removedWords); Assert.AreEqual("word word2", s1); Assert.AreEqual("a", badChars); Assert.AreEqual(null, removedWords); s1 = FullTextSearchUtils.PrepareSearchCriteriaStep1("word \"a\" word2", out badChars, out removedWords); Assert.AreEqual("word \"a\" word2", s1); Assert.AreEqual(null, badChars); Assert.AreEqual(null, removedWords); s1 = FullTextSearchUtils.PrepareSearchCriteriaStep1("not word or word2 about near", out badChars, out removedWords); Assert.AreEqual("word word2", s1); Assert.AreEqual(null, badChars); Assert.AreEqual("not, or, about, near", removedWords); }
public void TestSimple() { string badChars, removedWords; var s1 = FullTextSearchUtils.PrepareSearchCriteriaStep1(" word1 OR w2 word3 NOT a about test - evaluate //x1", out badChars, out removedWords); var s2 = FullTextSearchUtils.BuildSearchTextExpressionSimple(s1); Assert.AreEqual("/, /,a,-", badChars); Assert.AreEqual("OR, NOT, about", removedWords); Assert.AreEqual("word1 w2 word3 test evaluate x1", s1); Assert.AreEqual("word1 AND w2 AND word3 AND test AND evaluate AND x1", s2); Assert.AreEqual(null, FullTextSearchUtils.PrepareSearchCriteriaStep1(null, out badChars, out removedWords)); Assert.AreEqual("", FullTextSearchUtils.PrepareSearchCriteriaStep1("", out badChars, out removedWords)); Assert.AreEqual(null, FullTextSearchUtils.BuildSearchTextExpressionSimple(null)); Assert.AreEqual("", FullTextSearchUtils.BuildSearchTextExpressionSimple("")); Assert.AreEqual("", FullTextSearchUtils.BuildSearchTextExpressionSimple(" ")); Assert.AreEqual("word1 AND word2", FullTextSearchUtils.BuildSearchTextExpressionSimple("word1,word2")); Assert.AreEqual("word1 AND word2", FullTextSearchUtils.BuildSearchTextExpressionSimple("word1;;word2")); Assert.AreEqual("word1 AND word2", FullTextSearchUtils.BuildSearchTextExpressionSimple("word1.word2")); Assert.AreEqual("\"word1,word2\"", FullTextSearchUtils.BuildSearchTextExpressionSimple(" \"word1,word2\"")); Assert.AreEqual("\"word1;word2\"", FullTextSearchUtils.BuildSearchTextExpressionSimple("\"word1;;word2\" ")); Assert.AreEqual("\"wor d1.word2\"", FullTextSearchUtils.BuildSearchTextExpressionSimple("\"wor d1.word2\" ")); Assert.AreEqual("\"some phraze\" AND word% AND (1 AND 2)", FullTextSearchUtils.BuildSearchTextExpressionSimple("\"some phraze\" word* (1 2)")); Assert.AreEqual("\"a;\"", FullTextSearchUtils.BuildSearchTextExpressionSimple("\"a;;\"")); Assert.AreEqual("ab%%", FullTextSearchUtils.BuildSearchTextExpressionSimple("ab**")); }
public void TestValidating() { Assert.AreEqual(FullTextSearchUtils.ValidationResult.OK, FullTextSearchUtils.ValidateSearchCriteria("a")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.TooShortPattern, FullTextSearchUtils.ValidateSearchCriteria("a*")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.TooShortPattern, FullTextSearchUtils.ValidateSearchCriteria("*")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.Empty, FullTextSearchUtils.ValidateSearchCriteria(" ")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.OK, FullTextSearchUtils.ValidateSearchCriteria(" abc ")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.OK, FullTextSearchUtils.ValidateSearchCriteria("abc \"a phraze\"")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.OK, FullTextSearchUtils.ValidateSearchCriteria("abc \"a phraze\" word")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.NotPairedQuotes, FullTextSearchUtils.ValidateSearchCriteria("abc \"a phraze")); Assert.AreEqual(FullTextSearchUtils.ValidationResult.NotPairedQuotes, FullTextSearchUtils.ValidateSearchCriteria("abc \"a phraze \"word\"")); }
public void TestBuildSearchTextExpressionExt() { var res = FullTextSearchUtils.BuildSearchTextExpressionExt("word1 \"some phraze 1\" word2", " word3 word4 \"some phraze 2\"", null); Assert.AreEqual(false, res.Item1); Assert.AreEqual("word1 AND \"some phraze 1\" AND word2 AND (word3 OR word4 OR \"some phraze 2\")", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt("word1 word2", "word2 word3 a ", null); Assert.AreEqual(false, res.Item1); Assert.AreEqual("word1 AND word2 AND (word2 OR word3 OR a)", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt("www", "yyy", null); Assert.AreEqual(false, res.Item1); Assert.AreEqual("www AND yyy", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt(null, "yyy mmm not", null); Assert.AreEqual(false, res.Item1); Assert.AreEqual("(yyy OR mmm OR not)", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt(null, "", "word1, word2"); Assert.AreEqual(true, res.Item1); Assert.AreEqual("(word1 OR word2)", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt(null, "xxx", "word1, word2"); Assert.AreEqual(false, res.Item1); Assert.AreEqual("xxx NOT (word1 OR word2)", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt("yyy", "xxx", "word1, word2"); Assert.AreEqual(false, res.Item1); Assert.AreEqual("yyy AND xxx NOT (word1 OR word2)", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt("", "", ""); Assert.AreEqual(false, res.Item1); Assert.AreEqual("", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt(null, null, null); Assert.AreEqual(false, res.Item1); Assert.AreEqual("", res.Item2); res = FullTextSearchUtils.BuildSearchTextExpressionExt("yyy", "xxx \"zzz 22\" tt", "word1, word2"); Assert.AreEqual(false, res.Item1); Assert.AreEqual("yyy AND (xxx OR \"zzz 22\" OR tt) NOT (word1 OR word2)", res.Item2); }