示例#1
0
        public async Task RunRemoteBackupTest()
        {
            var settings = new BackupManagerSettings();

            settings.Locations.Add(RemoteLocationInfo);
            BackupManager = BackupManagerFactory.GetBackupManager(CatalogPath, settings);
            BackupManager.AddDirectoryToCatalog(new BackupDirectory(TestTwoPath));
            //BackupManager.AddDirectoryToCatalog(new BackupDirectory(TestOnePath));

            var serverWatchDog = new WatchDog();
            var comminicator   = new Communicator(13001, new NetworkClient("TestServer", new TcpClient()), new NetworkListener());
            var fileServer     = new RemoteFileServer(comminicator, RemoteStoragePath, RemoteTemporaryStoragePath);
            var backupService  = new BackupServiceModule(fileServer);

            serverWatchDog.RegisterModule(backupService);
            await serverWatchDog.Start();

            await BackupManager.RunBackup();

            BackupManager.SaveCatalog();

            //var storageLocationFactory = Container.Resolve<IStorageLocationFactory>();
            var location = BackupManager.GetLocations().First();
            //await BackupManager.RestoreBackupSet(location, TestOnePath, RestorePath);
            await BackupManager.RestoreBackupSet(location, TestTwoPath, RestorePath);

            var originalFile = new FileInfo(FileToRestorePath);
            var restoredFile = new FileInfo(PathToRestoreFile);

            Assert.AreEqual(originalFile.Length, restoredFile.Length);
            Assert.AreEqual(originalFile.Attributes, restoredFile.Attributes);
            Assert.AreEqual(originalFile.CreationTime, restoredFile.CreationTime);
            Assert.AreEqual(originalFile.LastWriteTime, restoredFile.LastWriteTime);
            Assert.AreEqual(originalFile.IsReadOnly, restoredFile.IsReadOnly);
        }
示例#2
0
        public async Task GetRemoteFileTest()
        {
            var serverCommunicator = new Communicator();
            var server             = new RemoteFileServer(serverCommunicator, PathToStorage, PathToServerTempStorage); // Path.GetTempPath());

            server.StartServer();

            var clientCommunicator = new Communicator();
            var client             = new RemoteStorageLocation(clientCommunicator, "192.168.1.6", PathToClientTempStorage);
            await client.Connect();

            var file = new BackupFile(FileToStorePath);
            var hash = Hasher.GetFileHash(file);
            await client.StoreFile(file, hash);

            var filePath = await client.GetFile(hash);
        }
示例#3
0
        static void Main(string[] args)
        {
            ConfigureContainer();
            var pathToStorage     = @"C:\zdir\backup\remote\storage";
            var pathToTempStorage = @"C:\zdir\backup\remote\tempstorage";

            WatchDog = Container.Resolve <IWatchDog>();
            var comminicator  = new Communicator(13001, new NetworkClient("TestServer", new TcpClient()), new NetworkListener());
            var fileServer    = new RemoteFileServer(comminicator, pathToStorage, pathToTempStorage);
            var backupService = new BackupServiceModule(fileServer);

            WatchDog.RegisterModule(backupService);

            WatchDog.Start();
            Console.WriteLine("Press any key to stop backup server");
            Console.ReadKey();
            WatchDog.Stop();
        }
示例#4
0
        public async Task StoreRemoteFileTest()
        {
            var serverCommunicator = new Communicator();
            var server             = new RemoteFileServer(serverCommunicator, PathToStorage, PathToServerTempStorage); // Path.GetTempPath());

            server.StartServer();

            var clientCommunicator = new Communicator(13001, new NetworkClient("Test", new TcpClient()), new NetworkListener());
            var client             = new RemoteStorageLocation(clientCommunicator, "192.168.1.6", PathToClientTempStorage);
            await client.Connect();


            var file = new BackupFile(FileToStorePath);
            var hash = Hasher.GetFileHash(file);

            var storeReslts = await client.StoreFile(file, hash);

            Assert.IsTrue(storeReslts);
        }