示例#1
0
        public void CreateBlogPost_WithEntryPublisher_RemovesKeywordExpander()
        {
            // arrange
            var context = new Mock <ISubtextContext>();

            context.Setup(c => c.Blog.TimeZone.FromUtc(It.IsAny <DateTime>())).Returns(DateTime.Now);
            context.Setup(c => c.Repository.Create(It.IsAny <Entry>(), It.IsAny <IEnumerable <int> >()));
            var transformation  = new CompositeTextTransformation();
            var searchengine    = new Mock <IIndexingService>();
            var entryPublisher  = new EntryPublisher(context.Object, transformation, null, searchengine.Object);
            var keywordExpander = new KeywordExpander((IEnumerable <KeyWord>)null);

            transformation.Add(keywordExpander);
            var blog = new BlogMLBlog()
            {
                Title = "MyBlog"
            };
            var post       = new BlogMLPost();
            var repository = new BlogImportRepository(context.Object, null, entryPublisher, new BlogMLImportMapper());

            // act
            repository.CreateBlogPost(blog, post);

            // assert
            Assert.IsFalse(transformation.Contains(keywordExpander));
        }
示例#2
0
        public void Replace_WithStringContainingKeywordInAnotherWord_DoesNotExpandKeyword()
        {
            //arrange
            var keywords = new List <KeyWord>
            {
                new KeyWord
                {
                    Word = "is",
                    Text = "is",
                    Url  = "http://example.com/",
                }
            };
            var keywordExpander = new KeywordExpander(keywords);

            //act
            string result = keywordExpander.Transform("This should not expand");

            //assert
            Assert.AreEqual("This should not expand", result);
        }
示例#3
0
        public void Replace_WithKeywordSurroundedByUnderscores_IsNotExpanded()
        {
            //arrange
            var keywords = new List <KeyWord>
            {
                new KeyWord
                {
                    Word = "is",
                    Text = "is",
                    Url  = "http://example.com/{0}",
                }
            };
            var keywordExpander = new KeywordExpander(keywords);

            //act
            string result = keywordExpander.Transform(" _is_ ");

            //assert
            Assert.AreEqual(" _is_ ", result);
        }
示例#4
0
        public void Replace_WithStringContainingKeywordInsideAnchorTagInnerText_DoesNotExpandKeyword()
        {
            //arrange
            var keywords = new List <KeyWord>
            {
                new KeyWord
                {
                    Word = "keyword",
                    Text = "keyword",
                    Url  = "http://example.com/",
                }
            };
            var keywordExpander = new KeywordExpander(keywords);

            //act
            string result = keywordExpander.Transform("<a href=\"http://x\">a keyword test</a>");

            //assert
            Assert.AreEqual("<a href=\"http://x\">a keyword test</a>", result);
        }
示例#5
0
        public void Replace_WithStringContainingKeyword_ExpandsKeyword()
        {
            //arrange
            var keywords = new List <KeyWord>
            {
                new KeyWord
                {
                    Word = "sucky example",
                    Text = "cool example",
                    Url  = "http://example.com/",
                }
            };
            var keywordExpander = new KeywordExpander(keywords);

            //act
            string result = keywordExpander.Transform("This is a sucky example");

            //assert
            Assert.AreEqual("This is a <a href=\"http://example.com/\">cool example</a>", result);
        }
示例#6
0
        public void Replace_WithStringContainingKeyword_IsNotCaseSensitive()
        {
            //arrange
            var keywords = new List <KeyWord>
            {
                new KeyWord
                {
                    Word = "is",
                    Text = "is",
                    Url  = "http://example.com/",
                }
            };
            var keywordExpander = new KeywordExpander(keywords);

            //act
            string result = keywordExpander.Transform(" it IS true ");

            //assert
            Assert.AreEqual(" it <a href=\"http://example.com/\">is</a> true ", result);
        }
示例#7
0
        public void Ctor_WithRepository_GetsKeywordsFromRepository()
        {
            //arrange
            var keywords = new List <KeyWord>
            {
                new KeyWord
                {
                    Word = "is",
                    Text = "is",
                    Url  = "http://example.com/",
                }
            };
            var repository = new Mock <ObjectProvider>();

            repository.Setup(r => r.GetKeyWords()).Returns(keywords);

            //act
            var keywordExpander = new KeywordExpander(keywords);

            //assert
            Assert.AreEqual(keywords, keywordExpander.Keywords);
        }
示例#8
0
        public void Transform_WithStringContainingBrackets_ReturnsConvertedKeywordAndBrackets()
        {
            //arrange
            var keywords = new List <KeyWord>
            {
                new KeyWord
                {
                    Word  = "OLD",
                    Text  = "NEW",
                    Url   = "http://example.com/",
                    Title = "NEW",
                    ReplaceFirstTimeOnly = false
                }
            };
            var keywordExpander = new KeywordExpander(keywords);

            //act
            string result = keywordExpander.Transform("OLD {} OLD {}");

            //assert
            Assert.AreEqual(@"<a href=""http://example.com/"" title=""NEW"">NEW</a> {} <a href=""http://example.com/"" title=""NEW"">NEW</a> {}", result);
        }