public void TestFileSystemSyncsOnOneFile() { Guid guid = Guid.NewGuid(); DateTime now = DateTime.Now; string srcFilePath = GetPathToLayoutFile("windows.json"); string filePath = Path.Combine(Path.GetDirectoryName(srcFilePath), $"{now:yyyy.MM.dd.HH.mm.ss}.windows.{guid:D}.json"); File.Copy(srcFilePath, filePath, true); File.SetCreationTime(filePath, now); var options = new LiveVirtualFileSystem.LiveVirtualFileSystemOptions { FileSystemLayoutFilePath = filePath }; var fileSystem1 = new LiveVirtualFileSystem(options); Console.WriteLine($"FileSystem 1 is {fileSystem1.GetHashCode()}"); var allFiles1 = GetAllFiles(fileSystem1); Assert.That(allFiles1.Count, Is.EqualTo(4)); var fileSystem2 = new LiveVirtualFileSystem(options); Console.WriteLine($"FileSystem 2 is {fileSystem2.GetHashCode()}"); var allFiles2 = GetAllFiles(fileSystem2); Assert.That(allFiles2.Count, Is.EqualTo(4)); string hostsFilePath = @"C:\Windows\system32\drivers\etc\hosts"; string hostsFileDirectory = Path.GetDirectoryName(hostsFilePath); Console.WriteLine($"{fileSystem1.GetHashCode()}: CreateDirectory(path:{hostsFileDirectory})"); fileSystem1.Directory.CreateDirectory(hostsFileDirectory); Console.WriteLine($"{fileSystem1.GetHashCode()}: WriteAllText(path:{hostsFilePath})"); fileSystem1.File.WriteAllText(hostsFilePath, "localhost\t127.0.0.1"); Thread.Sleep(200); while (fileSystem2.Persistence.IsLoading) { Thread.Sleep(100); } Thread.Sleep(200); allFiles1 = GetAllFiles(fileSystem1); allFiles2 = GetAllFiles(fileSystem2); Assert.That(allFiles1.Count, Is.EqualTo(5)); Assert.That(allFiles2.Count, Is.EqualTo(5)); }
public void TestLoadFromFile() { Guid guid = Guid.NewGuid(); DateTime now = DateTime.Now; string srcFilePath = GetPathToLayoutFile("windows.json"); string filePath = Path.Combine(Path.GetDirectoryName(srcFilePath), $"{now:yyyy.MM.dd.HH.mm.ss}.windows.{guid:D}.json"); File.Copy(srcFilePath, filePath, true); File.SetCreationTime(filePath, now); var options = new LiveVirtualFileSystem.LiveVirtualFileSystemOptions { FileSystemLayoutFilePath = filePath }; IFileSystem fileSystem = new LiveVirtualFileSystem(options); }