public void SimpleWriteRead() { PackFile file1 = new PackFile("test.pck"); Assert.IsTrue(file1.AddFile("test1", TestData1), "AddFile returned false"); VerifyFile(file1, "test1", TestData1, "before file1 save"); try { file1.Save(); } catch (Exception ex) { Assert.Fail("Exception when saving file1: " + ex.Message); return; } file1 = null; PackFile file2 = new PackFile("test.pck"); try { file2.Load(); } catch (Exception ex) { Assert.Fail("Exception when loading file2: " + ex.Message); return; } VerifyFile(file2, "test1", TestData1, "after file2 load"); }
public void AddRemove() { PackFile file1 = new PackFile("test.pck"); Assert.IsTrue(file1.AddFile("test1", TestData1), "AddFile returned false"); Assert.IsTrue(file1.AddFile("test2", TestData2), "AddFile returned false"); VerifyFile(file1, "test1", TestData1, "before file1 save"); VerifyFile(file1, "test2", TestData2, "before file1 save"); Assert.AreEqual(2, file1.FileCount, "FileCount mismatch before save"); try { file1.Save(); } catch (Exception ex) { Assert.Fail("Exception when saving file1: " + ex.Message); return; } file1 = null; PackFile file2 = new PackFile("test.pck"); try { file2.Load(); } catch (Exception ex) { Assert.Fail("Exception when loading file2: " + ex.Message); return; } Assert.AreEqual(2, file2.FileCount, "FileCount mismatch after load back"); VerifyFile(file2, "test1", TestData1, "after file2 load"); VerifyFile(file2, "test2", TestData2, "after file2 load"); file2.RemoveFile("test1"); Assert.AreEqual(1, file2.FileCount, "FileCount mismatch after remove"); Assert.IsFalse(file2.FileExists("test1"), "test1 still exists"); file2.AddFile("test3", TestData3); VerifyFile(file2, "test3", TestData3, "after file2 load"); Assert.AreEqual(2, file2.FileCount, "FileCount mismatch after add"); try { file2.Save(); } catch (Exception ex) { Assert.Fail("Exception when saving file2): " + ex.Message); return; } file2 = null; PackFile file3 = new PackFile("test.pck"); try { file3.Load(); } catch (Exception ex) { Assert.Fail("Exception when loading file3 back: " + ex.Message); return; } Assert.AreEqual(2, file3.FileCount, "FileCount mismatch after load back"); Assert.IsFalse(file3.FileExists("test1"), "test1 still exists after load back"); VerifyFile(file3, "test2", TestData2, "after file3 load"); VerifyFile(file3, "test3", TestData3, "after file3 load"); }
public void UpdateFile() { PackFile file1 = new PackFile("test.pck"); Assert.IsTrue(file1.AddFile("test1", TestData1), "AddFile returned false"); Assert.IsTrue(file1.AddFile("test2", TestData2), "AddFile returned false"); VerifyFile(file1, "test1", TestData1, "after file2 load"); VerifyFile(file1, "test2", TestData2, "after file2 load"); Assert.AreEqual(2, file1.FileCount, "FileCount mismatch before save"); try { file1.Save(); } catch (Exception ex) { Assert.Fail("Exception when saving file1: " + ex.Message); return; } file1 = null; PackFile file2 = new PackFile("test.pck"); try { file2.Load(); } catch (Exception ex) { Assert.Fail("Exception when loading file2: " + ex.Message); return; } file2.UpdateFile("test1", TestData3); VerifyFile(file2, "test1", TestData3, "after update"); VerifyFile(file2, "test2", TestData2, "after update"); try { file2.Save(); } catch (Exception ex) { Assert.Fail("Exception when saving file2: " + ex.Message); return; } file2 = null; PackFile file3 = new PackFile("test.pck"); try { file3.Load(); } catch (Exception ex) { Assert.Fail("Exception when loading file3 back: " + ex.Message); return; } VerifyFile(file3, "test1", TestData3, "after file3 load"); VerifyFile(file3, "test2", TestData2, "after file3 load"); }
public void Create() { // Create pack var fileTempPath = Path.GetTempFileName(); var packTempPath = Path.GetTempFileName(); File.WriteAllText(fileTempPath, "foo1\nbar1"); var packFile = new PackFile(); packFile.AddFile(fileTempPath, @"foobar\test1.txt"); packFile.Save(packTempPath, CompressionStrength.Default); // Check pack using (var pf = new PackFile(packTempPath)) { var entry = pf.GetEntry(@"data\foobar\test1.txt"); Assert.NotEqual(null, entry); using (var sr = new StreamReader(entry.GetDataAsFileStream())) { Assert.Equal(sr.ReadLine(), "foo1"); Assert.Equal(sr.ReadLine(), "bar1"); Assert.Equal(sr.ReadLine(), null); } } // Add second file to pack File.WriteAllText(fileTempPath, "foo2\nbar2"); packFile.AddFile(fileTempPath, @"foobar\test2.txt"); packFile.Save(packTempPath); // Check modified pack using (var pf = new PackFile(packTempPath)) { var entry = pf.GetEntry(@"data\foobar\test2.txt"); Assert.NotEqual(null, entry); using (var sr = new StreamReader(entry.GetDataAsFileStream())) { Assert.Equal(sr.ReadLine(), "foo2"); Assert.Equal(sr.ReadLine(), "bar2"); Assert.Equal(sr.ReadLine(), null); } } // Overwrite first file in pack File.WriteAllText(fileTempPath, "foo3\nbar3"); packFile.AddFile(fileTempPath, @"foobar\test1.txt"); packFile.Save(packTempPath); // Check modified pack using (var pf = new PackFile(packTempPath)) { var entry = pf.GetEntry(@"data\foobar\test1.txt"); Assert.NotEqual(null, entry); using (var sr = new StreamReader(entry.GetDataAsFileStream())) { Assert.Equal(sr.ReadLine(), "foo3"); Assert.Equal(sr.ReadLine(), "bar3"); Assert.Equal(sr.ReadLine(), null); } } File.Delete(fileTempPath); File.Delete(packTempPath); }