public void CryptDecryptFileWithTrueKey() { // arrange MyFile file = Factory.CreateFile(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Path.GetRandomFileName())); file.FileAppendAllText("secretInfo123123"); List <Entry> entries = new List <Entry>(); entries.Add(file); string key = "key123"; // act FileSystemContainer container = new FileSystemContainer(entries, false, true); container.Accept(new DESCryptoVisitor(true, key)); MyFile cryptFile; if (Factory.TryGetFile(file.FullPath + "_crypted", out cryptFile)) { entries.Clear(); entries.Add(cryptFile); container = new FileSystemContainer(entries, false, true); container.Accept(new DESCryptoVisitor(false, key)); } else { Assert.Fail("File " + file.FullPath + " is crypted, but " + file.FullPath + "_crypted " + "could not be found!"); } string decryptResult = file.FileReadAllLines()[0]; file.Delete(); // assert Assert.AreEqual("secretInfo123123", decryptResult); }
public void Setup() { TestRoot = Path.Combine(GetFolderPath(SpecialFolder.MyDocuments), "Personal Cloud"); Directory.CreateDirectory(TestRoot); TestRoot = Path.Combine(TestRoot, "Test Container"); if (Directory.Exists(TestRoot)) { Assert.Inconclusive("Previous test session may have failed. Please ensure \"" + Path.GetDirectoryName(TestRoot) + "\" is empty before starting a new session."); return; } Directory.CreateDirectory(TestRoot); var logsDir = Path.Combine(TestRoot, "Logs"); Directory.CreateDirectory(logsDir); Loggers = LoggerFactory.Create(builder => builder.//SetMinimumLevel(LogLevel.Trace). AddConsole(x => { x.TimestampFormat = "G"; })); var dic = new Dictionary <string, IFileSystem>(); dic["Files"] = new VirtualFileSystem(TestRoot); var RootFs = new FileSystemContainer(dic, Loggers.CreateLogger("FileContainerWebApiTest")); Server = new HttpProvider(10240, RootFs); Server.Start(); Client = new TopFolderClient($"http://localhost:10240", new byte[32], ""); }