public void DeleteTimeShouldBeRespected()
{
using (var queue = this.CreateNew() as FilterQueue)
{
var entities = new[]{
"One",
"Two",
"Skipped",
"Three"
};
foreach (var entity in entities)
{
queue.Enqueue(entity);
}
var activeItems = queue.ActiveItems();
activeItems.Count.Should().Be(4);
queue.Delete(activeItems[2]);
activeItems = queue.ActiveItems();
activeItems.Count.Should().Be(3);
var deletedItems = queue.DeletedItems();
deletedItems.Count.Should().Be(1);
var item1 = queue.Dequeue().CastTo<String>();
var item2 = queue.Dequeue().CastTo<String>();
var item3 = queue.Dequeue().CastTo<String>();
item1.Should().Be(entities[0]);
item2.Should().Be(entities[1]);
item3.Should().Be(entities[3]);
//Still available
deletedItems = queue.DeletedItems();
deletedItems.Count.Should().Be(4);
queue.PurgeDeletedItems();
deletedItems = queue.DeletedItems();
deletedItems.Count.Should().Be(0);
}
}