public void Should_Return_Correct_Search_Results()
{
var document1 = new HtmlDocument();
document1.DocumentNode.AppendChild(HtmlNode.CreateNode("<title>Test title</title>"));
document1.DocumentNode.AppendChild(HtmlNode.CreateNode("<body><p>Body with search phrase test</p></body>"));
var document2 = new HtmlDocument();
document2.DocumentNode.AppendChild(HtmlNode.CreateNode("<title>Test title</title>"));
document2.DocumentNode.AppendChild(HtmlNode.CreateNode("<body><p>Body without search phrase</p></body>"));
var page1 = new PageData { AbsolutePath = "/test-1", Content = document1, Id = Guid.NewGuid(), IsPublished = true};
var page2 = new PageData { AbsolutePath = "/test-2", Content = document2, Id = Guid.NewGuid(), IsPublished = true };
var service = new DefaultIndexerService(Container.Resolve<ICmsConfiguration>(), Container.Resolve<IRepository>(),
Container.Resolve<ISecurityService>(), Container.Resolve<IAccessControlService>());
if (service.OpenWriter())
{
service.AddHtmlDocument(page1);
service.AddHtmlDocument(page2);
service.CloseWriter();
}
var results = service.Search(new SearchRequest("test"));
Assert.IsNotNull(results.Items);
Assert.AreEqual(results.Items.Count, 1, "Should return one item.");
Assert.IsTrue(results.Items[0].Link == page1.AbsolutePath);
}