Exemple #1
0
        public void TestIO(string inner_path, byte[] data, int chunk_size)
        {
            var file_system = new FileSystem(":memory:");

            // Try to load a non-existing file
            Assert.Throws <MatryoshkaException>(() => {
                file_system.Open(inner_path);
            });

            using (var tmp_dir = new TemporaryDirectory()) {
                var input_file  = tmp_dir.GetFile("input_file", data);
                var output_file = tmp_dir.GetFile("output_file");

                // Push file
                var file = file_system.Push(inner_path, input_file, chunk_size);
                Assert.Equal(file.Size, data.Length);

                // It is forbidden to override included files
                Assert.Throws <MatryoshkaException>(() => {
                    file_system.Push(inner_path, input_file, chunk_size);
                });

                // Load file and verify content
                var loaded_file = file_system.Open(inner_path);
                loaded_file.Pull(output_file);
                Assert.Equal(data, System.IO.File.ReadAllBytes(output_file));

                // Check delete
                Assert.True(file.Delete());
                Assert.Throws <MatryoshkaException>(() => {
                    file_system.Open(inner_path);
                });
            }
        }
        public void SaveToZip(FileInfo saveFile)
        {
            //var initialDirectory = FileUtils.AppFolder.GetSubFolder("Data");
            //initialDirectory.EnsureExists();

            using (var tempDir = new TemporaryDirectory("Jeremy"))
            {
                var temp = tempDir.GetFile("data.xml");

                using (Stream saveStream = new FileStream(temp.FullName, FileMode.Create))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(ObservableCollection <Philosopher>));
                    serializer.Serialize(saveStream, MainWin.Pvm.m_philosophers);

                    var path = FileUtils.AppFolder.GetSubFolder("Images");
                    var res  = path.CopyMeTo(tempDir.Directory.GetSubFolder("Images").FullName);
                    ZipUtility.ZipUpFolder(tempDir.Directory, saveFile);

                    //DirectoryInfo dir2 = new DirectoryInfo(initialDirectory.FullName + @"\" + "data.zip");
                    //Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile();
                    //zip.AddFile(temp.FullName, @"\");
                    //zip.AddDirectory(path.FullName);
                    //zip.Save(dir2.FullName);
                }
            }
        }
Exemple #3
0
        public void TestFind()
        {
            var file_system = new FileSystem(":memory:");

            using (var tmp_dir = new TemporaryDirectory()) {
                var input_file_1 = tmp_dir.GetFile("input_file_1", new byte[] { 42, 32, 44 });
                var input_file_2 = tmp_dir.GetFile("input_file_2", new byte[] { 45, 46, 47 });
                var input_file_3 = tmp_dir.GetFile("input_file_3", new byte[] { 48, 49, 50 });

                // Push files
                file_system.Push("folder1/file1", input_file_1, -1);
                file_system.Push("folder1/file2", input_file_2, -1);
                file_system.Push("folder2/file1", input_file_3, -1);

                // Check find
                Assert.Equal(3, file_system.Find("*").Count);
                Assert.Equal(2, file_system.Find("folder?/file1").Count);
                Assert.Equal(2, file_system.Find("*/file1").Count);
                Assert.Equal(1, file_system.Find("folder2/*").Count);
            }
        }