public void StorageDeletesAllChildrenOfStoredEntry() {
var objectId = Guid.NewGuid().ToString();
var subObjectId = Guid.NewGuid().ToString();
var collection = new Mock<IIgnoredEntitiesCollection>();
var storage = new Mock<IMetaDataStorage>(MockBehavior.Strict);
var folder = Mock.Of<IMappedObject>(f => f.Type == MappedObjectType.Folder && f.RemoteObjectId == objectId);
var subFolder = Mock.Of<IMappedObject>(f => f.RemoteObjectId == subObjectId && f.ParentId == objectId);
var children = new List<IMappedObject>();
children.Add(subFolder);
storage.AddMappedFolder(folder);
storage.Setup(s => s.GetChildren(folder)).Returns(children);
storage.Setup(s => s.RemoveObject(subFolder));
storage.AddMappedFolder(subFolder);
var entry = Mock.Of<IIgnoredEntity>(e => e.ObjectId == objectId);
var underTest = new IgnoredEntitiesStorage(collection.Object, storage.Object);
underTest.AddOrUpdateEntryAndDeleteAllChildrenFromStorage(entry);
collection.Verify(c => c.Add(entry), Times.Once);
storage.Verify(s => s.RemoveObject(subFolder), Times.Once);
}