Exemplo n.º 1
0
        public void RemoveObject_Directory()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.RegisterDirectory(@"C:\left");
            fileSystem.RegisterDirectory(@"C:\right");
            fileSystem.RegisterDirectory(@"C:\right\dir");

            var serviceContainer = new ManualServiceContainer();

            serviceContainer.Register <IFileSystem>(fileSystem);

            var executionContext = new ExecutionContext(serviceContainer);

            var directoryContainer         = new DirectoryContainer(@"C:\right");
            var directoryContainerInstance = directoryContainer.CreateInstance(executionContext);

            var rightDirectory = new DirectoryObject(@"C:\right\dir", fileSystem);

            var syncContext = new SyncContext(null, executionContext);
            var result      = directoryContainerInstance.RemoveObject(rightDirectory, syncContext).ToArray();

            var expected = new IOperation[] {
                new DeleteDirectoryOperation(rightDirectory, fileSystem, executionContext)
            };

            CollectionAssert.AreEqual(expected, result);
        }
Exemplo n.º 2
0
        public void FindObject_File_NonExisting()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.RegisterDirectory(@"C:\left");
            fileSystem.RegisterFile(@"C:\left\file");
            fileSystem.RegisterDirectory(@"C:\right");

            var serviceContainer = new ManualServiceContainer();

            serviceContainer.Register <IFileSystem>(fileSystem);

            var executionContext = new ExecutionContext(serviceContainer);

            var directoryContainer         = new DirectoryContainer(@"C:\right");
            var directoryContainerInstance = directoryContainer.CreateInstance(executionContext);

            var file = new FileObject(@"C:\left\file", fileSystem);

            file.Metadata["BasePath"] = Path.Parse(@"C:\left");

            var syncContext = new SyncContext(null, executionContext);
            var result      = directoryContainerInstance.FindObject(file, syncContext);

            Assert.AreEqual(null, result);
        }
Exemplo n.º 3
0
        public void UpdateObject_Directory_NameCasingChange()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.RegisterDirectory(@"C:\left");
            fileSystem.RegisterDirectory(@"C:\left\dir");
            fileSystem.RegisterDirectory(@"C:\right");
            fileSystem.RegisterDirectory(@"C:\right\DIR");

            var serviceContainer = new ManualServiceContainer();

            serviceContainer.Register <IFileSystem>(fileSystem);

            var executionContext = new ExecutionContext(serviceContainer);

            var directoryContainer         = new DirectoryContainer(@"C:\right");
            var directoryContainerInstance = directoryContainer.CreateInstance(executionContext);

            var leftDirectory = new DirectoryObject(@"C:\left\dir", fileSystem);

            leftDirectory.Metadata["BasePath"] = Path.Parse(@"C:\left");

            var rightDirectory = new DirectoryObject(@"C:\right\dir", fileSystem);

            var change = new NameCasingChange();

            var syncContext = new SyncContext(null, executionContext);
            var result      = directoryContainerInstance.UpdateObject(rightDirectory, leftDirectory, change, syncContext).ToArray();

            var expected = new IOperation[] {
                new RenameDirectoryOperation(rightDirectory, leftDirectory.ActualName, fileSystem, executionContext)
            };

            CollectionAssert.AreEqual(expected, result);
        }
Exemplo n.º 4
0
        public void UpdateObject_File_ContentChange()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.RegisterDirectory(@"C:\left");
            fileSystem.RegisterFile(@"C:\left\file");
            fileSystem.RegisterDirectory(@"C:\right");
            fileSystem.RegisterFile(@"C:\right\file");

            var serviceContainer = new ManualServiceContainer();

            serviceContainer.Register <IFileSystem>(fileSystem);

            var executionContext = new ExecutionContext(serviceContainer);

            var directoryContainer         = new DirectoryContainer(@"C:\right");
            var directoryContainerInstance = directoryContainer.CreateInstance(executionContext);

            var leftFile = new FileObject(@"C:\left\file", fileSystem);

            leftFile.Metadata["BasePath"] = Path.Parse(@"C:\left");

            var rightFile = new FileObject(@"C:\right\file", fileSystem);

            var change = new ContentChange();

            var syncContext = new SyncContext(null, executionContext);
            var result      = directoryContainerInstance.UpdateObject(rightFile, leftFile, change, syncContext).ToArray();

            var expected = new IOperation[] {
                new CopyFileOperation(leftFile, rightFile, fileSystem, executionContext)
            };

            CollectionAssert.AreEqual(expected, result);
        }
Exemplo n.º 5
0
        public void GetChanges_Directory_NameCasingChanged()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.RegisterDirectory(@"C:\left\dir");
            fileSystem.RegisterDirectory(@"C:\right\DIR");

            var serviceContainer = new ManualServiceContainer();

            serviceContainer.Register <IFileSystem>(fileSystem);

            var executionContext = new ExecutionContext(serviceContainer);

            var directoryContainer         = new DirectoryContainer(@"C:\right");
            var directoryContainerInstance = directoryContainer.CreateInstance(executionContext);

            var leftDirectory  = new DirectoryObject(@"C:\left\dir", fileSystem);
            var rightDirectory = new DirectoryObject(@"C:\right\dir", fileSystem);

            var syncContext = new SyncContext(null, executionContext);
            var result      = directoryContainerInstance.GetChanges(rightDirectory, leftDirectory, syncContext).ToArray();

            var expected = new IChange[] {
                new NameCasingChange()
            };

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 6
0
        public void GetChanges_File_LastWriteTimeChanged()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.RegisterFile(@"C:\left\file", length: 100, lastWriteTime: DateTime.MinValue);
            fileSystem.RegisterFile(@"C:\right\file", length: 100, lastWriteTime: DateTime.MinValue.AddDays(1));

            var serviceContainer = new ManualServiceContainer();

            serviceContainer.Register <IFileSystem>(fileSystem);

            var executionContext = new ExecutionContext(serviceContainer);

            var directoryContainer         = new DirectoryContainer(@"C:\right");
            var directoryContainerInstance = directoryContainer.CreateInstance(executionContext);

            var leftFile  = new FileObject(@"C:\left\file", fileSystem);
            var rightFile = new FileObject(@"C:\right\file", fileSystem);

            var syncContext = new SyncContext(null, executionContext);
            var result      = directoryContainerInstance.GetChanges(rightFile, leftFile, syncContext).ToArray();

            var expected = new IChange[] {
                new ContentChange()
            };

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 7
0
        public void GetObjects()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.RegisterDirectory(@"C:\dir");
            fileSystem.RegisterDirectory(@"C:\dir\dir1");
            fileSystem.RegisterDirectory(@"C:\dir\dir2");
            fileSystem.RegisterFile(@"C:\dir\file1");
            fileSystem.RegisterFile(@"C:\dir\file2");

            var serviceContainer = new ManualServiceContainer();

            serviceContainer.Register <IFileSystem>(fileSystem);

            var executionContext = new ExecutionContext(serviceContainer);

            var directoryContainer         = new DirectoryContainer(@"C:\dir");
            var directoryContainerInstance = directoryContainer.CreateInstance(executionContext);

            var syncContext = new SyncContext(null, executionContext);
            var result      = directoryContainerInstance.GetObjects(syncContext).ToArray();

            var expected = new IFileSystemObject[] {
                new FileObject(@"C:\dir\file1", fileSystem),
                new FileObject(@"C:\dir\file2", fileSystem),
                new DirectoryObject(@"C:\dir\dir1", fileSystem),
                new DirectoryObject(@"C:\dir\dir2", fileSystem)
            };

            CollectionAssert.AreEqual(expected, result);
        }