CmisSync.Lib.SelectiveIgnore.IgnoredEntitiesStorage.AddOrUpdateEntryAndDeleteAllChildrenFromStorage C# (CSharp) Method

AddOrUpdateEntryAndDeleteAllChildrenFromStorage() public method

Adds or update an entry and deletes all children from storage.
public AddOrUpdateEntryAndDeleteAllChildrenFromStorage ( IIgnoredEntity e ) : void
e IIgnoredEntity Ignored Entity.
return void
        public void AddOrUpdateEntryAndDeleteAllChildrenFromStorage(IIgnoredEntity e) {
            this.Add(e);
            var mappedEntry = this.storage.GetObjectByRemoteId(e.ObjectId);
            if (mappedEntry != null) {
                var children = this.storage.GetChildren(mappedEntry);
                if (children != null) {
                    foreach (var child in children) {
                        this.storage.RemoveObject(child);
                    }
                }
            }
        }

Usage Example

コード例 #1
0
        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);
        }