예제 #1
0
        public void ZipAndUnzipTest()
        {
            string sourceFolder      = BackupUtilities.CreateTempFilePath();
            string destinationFolder = BackupUtilities.CreateTempFilePath();
            string zipFile           = BackupUtilities.CreateTempFilePath() + ".zip";

            try
            {
                Directory.CreateDirectory(sourceFolder);

                string file1Text = "This is test file 1.";
                string file2Text = "This is test file 2.";
                string file3Text = "This is test file 3.";

                string file1          = Path.Combine(sourceFolder, "File1.txt");
                string file2Directory = Path.Combine(sourceFolder, "a");
                string file2          = Path.Combine(file2Directory, "File2.txt");
                string file3Directory = Path.Combine(sourceFolder, "b");
                string file3          = Path.Combine(file3Directory, "File3.txt");

                File.WriteAllText(file1, file1Text);
                Directory.CreateDirectory(file2Directory);
                File.WriteAllText(file2, file2Text);
                Directory.CreateDirectory(file3Directory);
                File.WriteAllText(file3, file3Text);

                ZipUtilities.Zip(sourceFolder, zipFile);

                Assert.IsTrue(File.Exists(zipFile), "Expected zip file to exist.");
                TestUtilities.AssertNotEmpty(zipFile);

                ZipUtilities.Unzip(zipFile, destinationFolder);

                FileSystemInfo[] fileSystemInfos =
                    new DirectoryInfo(destinationFolder).GetFileSystemInfos();
                Assert.IsTrue(fileSystemInfos.Length > 0, "Unzip did not create any files in the destination directory.");

                file1          = Path.Combine(destinationFolder, "File1.txt");
                file2Directory = Path.Combine(destinationFolder, "a");
                file2          = Path.Combine(file2Directory, "File2.txt");
                file3Directory = Path.Combine(destinationFolder, "b");
                file3          = Path.Combine(file3Directory, "File3.txt");

                Assert.IsTrue(File.Exists(file1), "Unzipped file was not found.");
                Assert.AreEqual(file1Text, File.ReadAllText(file1), "Unexpected file contents.");
                Assert.IsTrue(File.Exists(file2), "Unzipped file was not found.");
                Assert.AreEqual(file2Text, File.ReadAllText(file2), "Unexpected file contents.");
                Assert.IsTrue(File.Exists(file3), "Unzipped file was not found.");
                Assert.AreEqual(file3Text, File.ReadAllText(file3), "Unexpected file contents.");
            }
            finally
            {
                try
                {
                    Directory.Delete(sourceFolder, true);
                    Directory.Delete(destinationFolder, true);
                    File.Delete(zipFile);
                }
                catch
                {
                }
            }
        }