public void Test_WRITE_AND_READ_CFS() { String filename = "WRITE_AND_READ_CFS.cfs"; CompoundFile cf = new CompoundFile(); ICFStorage st = cf.RootStorage.AddStorage("MyStorage"); ICFStream sm = st.AddStream("MyStream"); byte[] b = Helpers.GetBuffer(220, 0x0A); sm.SetData(b); cf.Save(filename); cf.Close(); CompoundFile cf2 = new CompoundFile(filename); ICFStorage st2 = cf2.RootStorage.GetStorage("MyStorage"); ICFStream sm2 = st2.GetStream("MyStream"); cf2.Close(); Assert.IsNotNull(sm2); Assert.IsTrue(sm2.Size == 220); if (File.Exists(filename)) { File.Delete(filename); } }
private void SingleWriteReadMatching(int size) { String filename = "INCREMENTAL_SIZE_MULTIPLE_WRITE_AND_READ_CFS.cfs"; if (File.Exists(filename)) { File.Delete(filename); } CompoundFile cf = new CompoundFile(); ICFStorage st = cf.RootStorage.AddStorage("MyStorage"); ICFStream sm = st.AddStream("MyStream"); byte[] b = Helpers.GetBuffer(size); sm.SetData(b); cf.Save(filename); cf.Close(); CompoundFile cf2 = new CompoundFile(filename); ICFStorage st2 = cf2.RootStorage.GetStorage("MyStorage"); ICFStream sm2 = st2.GetStream("MyStream"); Assert.IsNotNull(sm2); Assert.IsTrue(sm2.Size == size); Assert.IsTrue(Helpers.CompareBuffer(sm2.GetData(), b)); cf2.Close(); }
public void Test_COMPRESS_SPACE() { String FILENAME = "MultipleStorage3.cfs"; // 22Kb FileInfo srcFile = new FileInfo(FILENAME); File.Copy(FILENAME, "MultipleStorage_Deleted_Compress.cfs", true); CompoundFile cf = new CompoundFile("MultipleStorage_Deleted_Compress.cfs", UpdateMode.Update, true, true); ICFStorage st = cf.RootStorage.GetStorage("MyStorage"); st = st.GetStorage("AnotherStorage"); Assert.IsNotNull(st); st.Delete("Another2Stream"); cf.Commit(); cf.Close(); CompoundFile.ShrinkCompoundFile("MultipleStorage_Deleted_Compress.cfs"); // -> 7Kb FileInfo dstFile = new FileInfo("MultipleStorage_Deleted_Compress.cfs"); Assert.IsTrue(srcFile.Length > dstFile.Length); }
public void Test_CREATE_STORAGE() { const String STORAGE_NAME = "NewStorage"; CompoundFile cf = new CompoundFile(); ICFStorage st = cf.RootStorage.AddStorage(STORAGE_NAME); Assert.IsNotNull(st); Assert.AreEqual(STORAGE_NAME, st.Name, false); }
public void Test_ENTRY_NAME_LENGTH() { //Thanks to Mark Bosold for bug fix and unit CompoundFile cf = new CompoundFile(); // Cannot be equal. string maxCharactersStreamName = "1234567890123456789A12345678901"; // 31 chars string maxCharactersStorageName = "1234567890123456789012345678901"; // 31 chars // Try Storage entry name with max characters. Assert.IsNotNull(cf.RootStorage.AddStorage(maxCharactersStorageName)); ICFStorage strg = cf.RootStorage.GetStorage(maxCharactersStorageName); Assert.IsNotNull(strg); Assert.IsTrue(strg.Name == maxCharactersStorageName); // Try Stream entry name with max characters. Assert.IsNotNull(cf.RootStorage.AddStream(maxCharactersStreamName)); ICFStream strm = cf.RootStorage.GetStream(maxCharactersStreamName); Assert.IsNotNull(strm); Assert.IsTrue(strm.Name == maxCharactersStreamName); string tooManyCharactersEntryName = "12345678901234567890123456789012"; // 32 chars try { // Try Storage entry name with too many characters. cf.RootStorage.AddStorage(tooManyCharactersEntryName); Assert.Fail(); } catch (Exception ex) { Assert.IsTrue(ex is CFException); } try { // Try Stream entry name with too many characters. cf.RootStorage.AddStream(tooManyCharactersEntryName); Assert.Fail(); } catch (Exception ex) { Assert.IsTrue(ex is CFException); } cf.Save("EntryNameLength"); cf.Close(); }
public void Test_CREATE_STORAGE_WITH_CREATION_DATE() { const String STORAGE_NAME = "NewStorage1"; CompoundFile cf = new CompoundFile(); ICFStorage st = cf.RootStorage.AddStorage(STORAGE_NAME); st.CreationDate = DateTime.Now; Assert.IsNotNull(st); Assert.AreEqual(STORAGE_NAME, st.Name, false); cf.Save("ProvaData.cfs"); cf.Close(); }
public void Test_DELETE_DIRECTORY() { String FILENAME = "MultipleStorage2.cfs"; CompoundFile cf = new CompoundFile(FILENAME, UpdateMode.ReadOnly, false, false); ICFStorage st = cf.RootStorage.GetStorage("MyStorage"); Assert.IsNotNull(st); st.Delete("AnotherStorage"); cf.Save("MultipleStorage_Delete.cfs"); cf.Close(); }
public void Test_VISIT_STORAGE() { String FILENAME = "testVisiting.xls"; // Remove... if (File.Exists(FILENAME)) { File.Delete(FILENAME); } //Create... CompoundFile ncf = new CompoundFile(); ICFStorage l1 = ncf.RootStorage.AddStorage("Storage Level 1"); l1.AddStream("l1ns1"); l1.AddStream("l1ns2"); l1.AddStream("l1ns3"); ICFStorage l2 = l1.AddStorage("Storage Level 2"); l2.AddStream("l2ns1"); l2.AddStream("l2ns2"); ncf.Save(FILENAME); ncf.Close(); // Read... CompoundFile cf = new CompoundFile(FILENAME); FileStream output = new FileStream("reportVisit.txt", FileMode.Create); TextWriter sw = new StreamWriter(output); Console.SetOut(sw); VisitedEntryAction va = delegate(ICFItem target) { sw.WriteLine(target.Name); }; cf.RootStorage.VisitEntries(va, true); cf.Close(); sw.Close(); }
public void Test_CHECK_DISPOSED_() { const String FILENAME = "MultipleStorage.cfs"; CompoundFile cf = new CompoundFile(FILENAME); ICFStorage st = cf.RootStorage.GetStorage("MyStorage"); cf.Close(); try { byte[] temp = st.GetStream("MyStream").GetData(); Assert.Fail("Stream without media"); } catch (Exception ex) { Assert.IsTrue(ex is CFDisposedException); } }
public void Test_DELETE_STREAM() { String FILENAME = "MultipleStorage3.cfs"; CompoundFile cf = new CompoundFile(FILENAME); ICFStorage found = null; VisitedEntryAction action = delegate(ICFItem item) { if (item.Name == "AnotherStorage") { found = item as ICFStorage; } }; cf.RootStorage.VisitEntries(action, true); Assert.IsNotNull(found); found.Delete("Another2Stream"); cf.Save("MultipleDeleteStream"); cf.Close(); }
private void SingleWriteReadMatchingSTREAMED(int size) { MemoryStream ms = new MemoryStream(size); CompoundFile cf = new CompoundFile(); ICFStorage st = cf.RootStorage.AddStorage("MyStorage"); ICFStream sm = st.AddStream("MyStream"); byte[] b = Helpers.GetBuffer(size); sm.SetData(b); cf.Save(ms); cf.Close(); CompoundFile cf2 = new CompoundFile(ms); ICFStorage st2 = cf2.RootStorage.GetStorage("MyStorage"); ICFStream sm2 = st2.GetStream("MyStream"); Assert.IsNotNull(sm2); Assert.IsTrue(sm2.Size == size); Assert.IsTrue(Helpers.CompareBuffer(sm2.GetData(), b)); cf2.Close(); }
public void Test_WRITE_READ_CFS_VERSION_4_STREAM() { String filename = "WRITE_COMMIT_READ_CFS_V4.cfs"; CompoundFile cf = new CompoundFile(CFSVersion.Ver_4, true, true); ICFStorage st = cf.RootStorage.AddStorage("MyStorage"); ICFStream sm = st.AddStream("MyStream"); byte[] b = Helpers.GetBuffer(227); sm.SetData(b); cf.Save(filename); cf.Close(); CompoundFile cf2 = new CompoundFile(filename); ICFStorage st2 = cf2.RootStorage.GetStorage("MyStorage"); ICFStream sm2 = st2.GetStream("MyStream"); Assert.IsNotNull(sm2); Assert.IsTrue(sm2.Size == b.Length); cf2.Close(); }
public void Test_WRITE_AND_READ_CFS_VERSION_4() { String filename = "WRITE_AND_READ_CFS_V4.cfs"; CompoundFile cf = new CompoundFile(CFSVersion.Ver_4, true, true); ICFStorage st = cf.RootStorage.AddStorage("MyStorage"); ICFStream sm = st.AddStream("MyStream"); byte[] b = new byte[220]; sm.SetData(b); cf.Save(filename); cf.Close(); CompoundFile cf2 = new CompoundFile(filename); ICFStorage st2 = cf2.RootStorage.GetStorage("MyStorage"); ICFStream sm2 = st2.GetStream("MyStream"); Assert.IsNotNull(sm2); Assert.IsTrue(sm2.Size == 220); cf2.Close(); }
public void Test_DELETE_WITHOUT_COMPRESSION() { String FILENAME = "MultipleStorage3.cfs"; FileInfo srcFile = new FileInfo(FILENAME); CompoundFile cf = new CompoundFile(FILENAME); ICFStorage st = cf.RootStorage.GetStorage("MyStorage"); st = st.GetStorage("AnotherStorage"); Assert.IsNotNull(st); st.Delete("Another2Stream"); //17Kb //cf.CompressFreeSpace(); cf.Save("MultipleStorage_Deleted_Compress.cfs"); cf.Close(); FileInfo dstFile = new FileInfo("MultipleStorage_Deleted_Compress.cfs"); Assert.IsFalse(srcFile.Length > dstFile.Length); }