private ImageInfo SaveImage(HayStackStoreFile storeFile, string image) { var data = File.ReadAllBytes(image); var tobesaved = new Needle { Key = 1L, AlternateKey = 1, Cookie = 1, Data = data, DataCheckSum = 1, DataSize = data.Length, Flags = 0, FooterMagicNumber = 0, HeaderMagicNumber = 0, Padding = 0 }; var offset = storeFile.Append(tobesaved); return(new ImageInfo { Offset = offset, Size = data.Length }); }
public void Should_read_and_create_new_image_file() { File.Delete(StoreFile); if (Directory.Exists(TargetDir)) { Directory.Delete(TargetDir, true); } Directory.CreateDirectory(TargetDir); var storeFile = new HayStackStoreFile(StoreFile); var image1Info = SaveImage(storeFile, Path.Combine("images", Image1)); var image2Info = SaveImage(storeFile, Path.Combine("images", Image2)); storeFile.Close(); var anotherStoreFile = new HayStackStoreFile(StoreFile); var needl1 = anotherStoreFile.Read(image1Info.Offset, image1Info.Size); var needl2 = anotherStoreFile.Read(image2Info.Offset, image2Info.Size); File.WriteAllBytes(Path.Combine(TargetDir, Image1), needl1.Data); File.WriteAllBytes(Path.Combine(TargetDir, Image2), needl2.Data); anotherStoreFile.Close(); }
public void Should_able_to_retrieve_with_offset() { File.Delete("photos.bin"); var storeFile = new HayStackStoreFile("photos.bin"); var data = new byte[10000]; var tobesaved = new Needle { Key = 1L, AlternateKey = 1, Cookie = 1, Data = data, DataCheckSum = 1, DataSize = data.Length, Flags = 0, FooterMagicNumber = 0, HeaderMagicNumber = 0, Padding = 0 }; var offset = storeFile.Append(tobesaved); var needle = storeFile.Read(offset, data.Length); Assert.AreEqual(tobesaved.Key, needle.Key); Assert.AreEqual(tobesaved.AlternateKey, needle.AlternateKey); Assert.AreEqual(tobesaved.Cookie, needle.Cookie); Assert.AreEqual(tobesaved.Data.Length, needle.Data.Length); Assert.AreEqual(tobesaved.DataCheckSum, needle.DataCheckSum); Assert.AreEqual(tobesaved.DataSize, needle.DataSize); Assert.AreEqual(tobesaved.Flags, needle.Flags); Assert.AreEqual(tobesaved.FooterMagicNumber, needle.FooterMagicNumber); Assert.AreEqual(tobesaved.HeaderMagicNumber, needle.HeaderMagicNumber); Assert.AreEqual(tobesaved.Padding, needle.Padding); storeFile.Close(); }