public void Should_Delete_DocumentFromindex()
{
var document1 = new HtmlDocument();
document1.DocumentNode.AppendChild(HtmlNode.CreateNode("<title>Deleted document title</title>"));
document1.DocumentNode.AppendChild(HtmlNode.CreateNode("<body>text which will be deleted</body>"));
var page1 = new PageData { AbsolutePath = "/test-delete-1", Content = document1, Id = Guid.NewGuid(), IsPublished = true };
var page2 = new PageData { AbsolutePath = "/test-delete-2", Content = document1, Id = Guid.NewGuid(), IsPublished = true };
var page3 = new PageData { AbsolutePath = "/test-delete-3", Content = document1, 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.AddHtmlDocument(page3);
service.CloseWriter();
}
// Search result should return 3 objects
var results = service.Search(new SearchRequest("deleted"));
Assert.IsNotNull(results.Items);
Assert.AreEqual(results.Items.Count, 3, "Should return 3 items.");
// Delete 2 objects
if (service.OpenWriter())
{
service.DeleteDocuments(new[] { page1.Id, page2.Id });
service.CloseWriter();
}
// Search result should return 1 object
results = service.Search(new SearchRequest("deleted"));
Assert.IsNotNull(results.Items);
Assert.AreEqual(results.Items.Count, 1, "Should return one item.");
Assert.AreEqual(results.Items[0].Link, page3.AbsolutePath);
}