public void AccumulatesRemoteMovedFileEvents() {
var storage = new Mock<IMetaDataStorage>();
var storedObject = Mock.Of<IMappedObject>(
o =>
o.ParentId == "oldParentId");
storage.Setup(s => s.GetObjectByRemoteId(this.remoteId)).Returns(storedObject);
storage.Setup(s => s.GetLocalPath(storedObject)).Returns(this.localPath);
var fsFactory = new Mock<IFileSystemInfoFactory>();
var localPathInfo = Mock.Of<IFileInfo>();
fsFactory.Setup(f => f.CreateFileInfo(this.localPath)).Returns(localPathInfo);
var acc = new RemoteObjectMovedOrRenamedAccumulator(Mock.Of<ISyncEventQueue>(), storage.Object, fsFactory.Object);
var parents = new List<IFolder>();
parents.Add(Mock.Of<IFolder>(f => f.Id == this.parentId));
var remoteFile = Mock.Of<IDocument>(
f =>
f.Id == this.remoteId &&
f.Parents == parents);
var fileEvent = new FileEvent(remoteFile: remoteFile) { Remote = MetaDataChangeType.CREATED };
Assert.That(acc.Handle(fileEvent), Is.False);
Assert.That(fileEvent.LocalFile, Is.EqualTo(localPathInfo));
}