static void Main(string[] args) { Console.WriteLine("Hello World!"); var target = new Target { RootPath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Root", BasePath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Base", ModDirectory = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Mods", Mods = new[] { new Mod { Description = "Mod1", ModPath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Mods\Mod1", Order = 1, Name = "Mod1", RootPath = "Layers", Links = new[] { new Link { ModPath = "Layer1", TargetPath = "Layer" } } } }, OverlayPath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Overlay" }; var provider = new DirectoryLayerProvider(); var manager = new LayerService(new[] { new DirectoryLayerProvider() }); if (args.Length < 2) { Console.CancelKeyPress += (sender, eventArgs) => manager.Dispose(); ShowFiles(manager); while (Console.Read() != 'q') { ; } } else { var op = new ModLinkerOperation(manager); op.Mount(target.RootPath); } }
public async Task CreateLayer() { var layerMoq = new Mock <ILayer>(); layerMoq.SetupGet(layer => layer.Id).Returns(Guid.NewGuid().ToString()); layerMoq.Setup(layer => layer.GetPreloadEntries()) .Returns(new[] { new EntryData( true, "dir5", @"D:\dir3\dir4\dir5", @"D:\dir3\dir4", true, layerMoq.Object, DateTime.Now, DateTime.Now, DateTime.Now, 0, false, 1 ) }); layerMoq.Setup(layer => layer.GetEntries(@"D:\dir3\dir4\dir5")) .Returns(new[] { new EntryData( true, "file1", @"D:\dir3\dir4\dir5\file1", @"D:\dir3\dir4\dir5", false, layerMoq.Object, DateTime.Now, DateTime.Now, DateTime.Now, 10, false, 1 ) }); var entryMoq = new Mock <IEntry>(); entryMoq.SetupGet(entry => entry.CreationTime).Returns(DateTime.Now); entryMoq.SetupGet(entry => entry.LastAccessTime).Returns(DateTime.Now); entryMoq.SetupGet(entry => entry.LastWriteTime).Returns(DateTime.Now); entryMoq.SetupGet(entry => entry.Name).Returns("file1"); entryMoq.SetupGet(entry => entry.Length).Returns(10); layerMoq.Setup(layer => layer.GetEntry(@"D:\dir3\dir4\dir5\file1")) .Returns(entryMoq.Object) ; var service = new LayerService(new[] { layerMoq.Object }, @"D:\dir3\dir4"); await service.PreLoad(); var operation = new ModLinkerOperation(service); FileInformation fileInformation; var result = operation.GetFileInformation(@"D:\dir3\dir4\dir5\file1", out fileInformation, new TestFileInfo()); Assert.Equal(DokanResult.Success, result); Assert.Equal("file1", fileInformation.FileName); }