Exemple #1
0
        public void Package_AddStream()
        {
            Package              package;
            EnhancedBlockStream  bs = new EnhancedBlockStream();
            EnhancedMemoryStream es = new EnhancedMemoryStream();
            PackageEntry         entry;

            byte[] buf;

            buf = new byte[37000];
            for (int i = 0; i < buf.Length; i++)
            {
                buf[i] = (byte)i;
            }

            //-------------------------

            package = new Package();
            package.Create(es);

            bs.WriteBytes32(buf);
            bs.Position = 0;

            entry = package.AddFile("/Foo/Bar/Test1.dat", bs, (int)bs.Length);
            Assert.IsTrue(bs.Eof);
            Assert.IsTrue(entry.IsFile);
            Assert.IsTrue(package["/Foo"].IsFolder);
            Assert.IsTrue(package["/Foo/Bar"].IsFolder);
            Assert.IsTrue(package["/Foo/Bar/Test1.dat"].IsFile);

            package.Close(true);

            //-------------------------

            es.Position = 0;
            package     = new Package(es);

            Assert.IsTrue(entry.IsFile);
            Assert.IsTrue(package["/Foo"].IsFolder);
            Assert.IsTrue(package["/Foo/Bar"].IsFolder);
            Assert.IsTrue(package["/Foo/Bar/Test1.dat"].IsFile);

            bs.SetLength(0);
            package["/Foo/Bar/Test1.dat"].GetContents(bs);

            bs.Position = 0;
            CollectionAssert.AreEqual(buf, bs.ReadBytes32());

            package.Close();
        }