public void MultipleSingleCharactersInDoubleQuoteShouldWork()
        {
            var transformer = new ContainSearchTextSqlTransformer("\"f o o\"", new StopwordManager(new List <string> {
                "f", "o"
            }));

            transformer.GetSqlFriendly().ShouldBe("\"f o o\"");
        }
        public void OneWordSearchTextWithStarInMiddleShouldGetException()
        {
            var transformer = new ContainSearchTextSqlTransformer("fo*bar", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }
        public void OneWordWithoutDoubleQuotesSearchTextWithAsteriskShouldFail()
        {
            var transformer = new ContainSearchTextSqlTransformer("abcd*", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"abcd*\"");
        }
        public void OneWordSearchTextWithStarAtEndShouldBeDoubleQuoted()
        {
            var transformer = new ContainSearchTextSqlTransformer("foo*", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"foo*\"");
        }
        public void TwoWordsWithOneInDoubleQuoteSearchTextWithShouldBeTransformed()
        {
            var transformer = new ContainSearchTextSqlTransformer("\"C&\" FOO", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"C&\" and \"FOO\"");
        }
        public void MixedWordsSomeWithDoubleQuoteSomeWithIndependentStarSearchTextShouldGetException6()
        {
            var transformer = new ContainSearchTextSqlTransformer("foo one \"bar two *\"", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"foo\" and \"one\" and \"bar two *\"");
        }
        public void OneWordWithDoubleQuotesSearchTextWithTildeShouldSucceed()
        {
            var transformer = new ContainSearchTextSqlTransformer("\"abcd~\"", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"abcd~\"");
        }
        public void TwoWordsSearchTextShouldBeDoubleQuotedEachWithAndInBetween()
        {
            var transformer = new ContainSearchTextSqlTransformer("foo bar", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("(\"foo\" and \"bar\") or (\"foo bar\")");
        }
        public void SingleCharacterInDoubleQuoteShouldGetException()
        {
            var transformer = new ContainSearchTextSqlTransformer("\"f\"", new StopwordManager(new List <string>( )));

            transformer.GetSqlFriendly().ShouldBe("\"f\"");
        }
        public void WordsWithSpacesAtStartAndEndShouldBeTrimmed()
        {
            var transformer = new ContainSearchTextSqlTransformer(" foo bar ", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("(\"foo\" and \"bar\") or (\" foo bar \")");
        }
        public void OneWordSearchTextWithIndependentStarShouldGetException1()
        {
            var transformer = new ContainSearchTextSqlTransformer("* foo", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }
        public void WordShouldBeExcludedWhenShouldAddTermReturnTrue()
        {
            var transformer = new ContainSearchTextSqlTransformer("foo bar one", new StopwordManager(new List <string> ()));

            transformer.GetSqlFriendly().ShouldBe("(\"foo\" and \"bar\" and \"one\") or (\"foo bar one\")");
        }
        public void DoubleQuoteWordThatStartsWithStarShouldGetException()
        {
            var transformer = new ContainSearchTextSqlTransformer("*\"fobar\"", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }
        public void MixedWordsSomeWithNonePairingQuoteSearchTextShouldGetException()
        {
            var transformer = new ContainSearchTextSqlTransformer("foo one \"bar two\" \"three", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }
        public void OneWordWithDoubleQuoteSearchTextShouldBeLeftAloneWithNoChanges()
        {
            var transformer = new ContainSearchTextSqlTransformer("\"foo\"", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"foo\"");
        }
        public void OneWordWithDoubleQuoteSearchTextShouldGetException()
        {
            var transformer = new ContainSearchTextSqlTransformer("\"foo", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }
        public void TwoWordsWithDoubleQuoteSearchTextWithStarAtBothStartAndEndShouldGetException()
        {
            var transformer = new ContainSearchTextSqlTransformer("*\"foo bar\"*", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }
        public void OneWordWithoutDoubleQuotesSearchTextWithTildeShouldFail()
        {
            var transformer = new ContainSearchTextSqlTransformer("abcd~", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }
        public void OneWordWithDoubleQuoteSearchTextWithSingleCharacterAtStartShouldBeLeftAlone()
        {
            var transformer = new ContainSearchTextSqlTransformer("\"f bar\"", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"f bar\"");
        }
        public void MixedWordsWithMoreThanTwoWordsSomeWithDoubleQuoteSearchTextShouldHaveAndIncludedInBetween()
        {
            var transformer = new ContainSearchTextSqlTransformer("foo one \"bar two three\"", new StopwordManager(new List <string>()));

            transformer.GetSqlFriendly().ShouldBe("\"foo\" and \"one\" and \"bar two three\"");
        }
        public void MixedWordsSomeWithDoubleQuoteSomeWithIndependentStarSearchTextShouldGetException3()
        {
            var transformer = new ContainSearchTextSqlTransformer("foo one * \"bar two\"", new StopwordManager(new List <string>()));

            Should.Throw <BadRequestException>(() => transformer.GetSqlFriendly());
        }