public void should_have_title(string article) { using (var sr = new StreamReader(article)) { var markdown = sr.ReadToEnd(); if (markdown.Contains("@Tags")) { var resource = _articleLocator.PathToResource(article); var parsedArticle = new ArticleParser(markdown, resource); parsedArticle.Title.Should().NotBeNullOrEmpty(); } } }
public void should_have_date(string article) { using (var sr = new StreamReader(article)) { var markdown = sr.ReadToEnd(); if (markdown.Contains("@Tags")) { var resource = _articleLocator.PathToResource(article); var parsedArticle = new ArticleParser(markdown, resource); parsedArticle.BlogDate.Should().NotBe(DateTime.MinValue); } } }
private static void Map(ArticleParser parser) { var doc = new Document(); if (!string.IsNullOrEmpty(parser.Category)) doc.Add(new Field("category", parser.Category, Field.Store.YES, Field.Index.ANALYZED)); if ( !string.IsNullOrEmpty(parser.Id)) doc.Add(new Field("id", parser.Id, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("author", parser.Author, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("title", parser.Title, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("body", parser.Body, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("abstract", parser.Abstract, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("image", parser.Image, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("bgimage", parser.BgImage, Field.Store.YES, Field.Index.ANALYZED)); foreach (var tag in parser.Tags) { doc.Add(new Field("tags", tag, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES)); } // TODO : Should probably be stored separatly, in a profile index instead. foreach (var role in parser.Roles) { doc.Add(new Field("roles", role, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES)); } var parts = parser.ResourceName.Split(new[]{'/'}, StringSplitOptions.RemoveEmptyEntries); foreach (var part in parts) { doc.Add(new Field("resource", part, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES)); } doc.Add(new Field("date", DateTools.DateToString(parser.BlogDate, DateTools.Resolution.DAY), Field.Store.YES, Field.Index.ANALYZED)); _indexWriter.AddDocument(doc); _indexWriter.Optimize(); }