Beispiel #1
0
        public void TestFile()
        {
            FileStream f = data.GetFile("Notes.ole2");

            FileBackedDataSource ds = new FileBackedDataSource(f, false);

            try
            {
                CheckDataSource(ds, false);
            }
            finally
            {
                ds.Close();
            }

            // try a second time
            ds = new FileBackedDataSource(f, false);
            try
            {
                CheckDataSource(ds, false);
            }
            finally
            {
                ds.Close();
            }
        }
Beispiel #2
0
        private void CheckDataSource(FileBackedDataSource ds, bool writeable)
        {
            Assert.AreEqual(writeable, ds.IsWriteable);
            //Assert.IsNotNull(ds.Channel);

            // rewriting changes the size
            if (writeable)
            {
                Assert.IsTrue(ds.Size == 8192 || ds.Size == 8198, "Had: " + ds.Size);
            }
            else
            {
                Assert.AreEqual(8192, ds.Size);
            }


            ByteBuffer bs;

            bs = ds.Read(4, 0);
            Assert.AreEqual(4, bs.Length);
            //Assert.AreEqual(0, bs
            Assert.AreEqual(unchecked ((byte)0xd0 - (byte)256), bs[0]);
            Assert.AreEqual(unchecked ((byte)0xcf - (byte)256), bs[1]);
            Assert.AreEqual(unchecked ((byte)0x11 - 0), bs[2]);
            Assert.AreEqual(unchecked ((byte)0xe0 - (byte)256), bs[3]);

            bs = ds.Read(8, 0x400);
            Assert.AreEqual(8, bs.Length);
            //Assert.AreEqual(0, bs.position());
            Assert.AreEqual((byte)'R', bs[0]);
            Assert.AreEqual(0, bs[1]);
            Assert.AreEqual((byte)'o', bs[2]);
            Assert.AreEqual(0, bs[3]);
            Assert.AreEqual((byte)'o', bs[4]);
            Assert.AreEqual(0, bs[5]);
            Assert.AreEqual((byte)'t', bs[6]);
            Assert.AreEqual(0, bs[7]);

            // Can go to the end, but not past it
            bs = ds.Read(8, 8190);
            Assert.AreEqual(0, bs.Position);// TODO How best to warn of a short read?

            // Can't go off the end
            try
            {
                bs = ds.Read(4, 8192);
                if (!writeable)
                {
                    Assert.Fail("Shouldn't be able to read off the end of the file");
                }
            }
            catch (IndexOutOfRangeException)
            {
            }
        }
Beispiel #3
0
        public void TestFile()
        {
            FileStream f = data.GetFile("Notes.ole2");

            FileBackedDataSource ds = new FileBackedDataSource(f, true);

            try
            {
                Assert.AreEqual(8192, ds.Size);

                ByteBuffer bs;
                bs = ds.Read(4, 0);
                Assert.AreEqual(4, bs.Length);
                //Assert.AreEqual(0, bs
                Assert.AreEqual(unchecked ((byte)0xd0 - (byte)256), bs[0]);
                Assert.AreEqual(unchecked ((byte)0xcf - (byte)256), bs[1]);
                Assert.AreEqual(unchecked ((byte)0x11 - 0), bs[2]);
                Assert.AreEqual(unchecked ((byte)0xe0 - (byte)256), bs[3]);

                bs = ds.Read(8, 0x400);
                Assert.AreEqual(8, bs.Length);
                //Assert.AreEqual(0, bs.position());
                Assert.AreEqual((byte)'R', bs[0]);
                Assert.AreEqual(0, bs[1]);
                Assert.AreEqual((byte)'o', bs[2]);
                Assert.AreEqual(0, bs[3]);
                Assert.AreEqual((byte)'o', bs[4]);
                Assert.AreEqual(0, bs[5]);
                Assert.AreEqual((byte)'t', bs[6]);
                Assert.AreEqual(0, bs[7]);

                // Can go to the end, but not past it
                bs = ds.Read(8, 8190);
                Assert.AreEqual(0, bs.Position);// TODO How best to warn of a short read?

                // Can't go off the end
                try
                {
                    bs = ds.Read(4, 8192);
                    Assert.Fail("Shouldn't be able to read off the end of the file");
                }
                catch (System.ArgumentException)
                {
                }
            }
            finally
            {
                ds.Close();
            }
        }
Beispiel #4
0
        public void TestRewritableFile()
        {
            FileInfo temp = TempFile.CreateTempFile("TestDataSource", ".test");

            try
            {
                WriteDataToFile(temp);

                FileBackedDataSource ds = new FileBackedDataSource(temp, true);
                try
                {
                    ByteBuffer buf = ds.Read(0, 10);
                    Assert.IsNotNull(buf);
                    buf = ds.Read(8, 0x400);
                    Assert.IsNotNull(buf);
                }
                finally
                {
                    ds.Close();
                }

                // try a second time
                ds = new FileBackedDataSource(temp, true);
                try
                {
                    ByteBuffer buf = ds.Read(0, 10);
                    Assert.IsNotNull(buf);
                    buf = ds.Read(8, 0x400);
                    Assert.IsNotNull(buf);
                }
                finally
                {
                    ds.Close();
                }

                WriteDataToFile(temp);
            }
            finally
            {
                Assert.IsTrue(temp.Exists);
                temp.Delete();
                Assert.IsTrue(!File.Exists(temp.FullName));
            }
        }
Beispiel #5
0
        public void TestFile()
        {
            FileStream f = data.GetFile("Notes.ole2");

            FileBackedDataSource ds = new FileBackedDataSource(f);

            Assert.AreEqual(8192, ds.Size);

            ByteBuffer bs;

            bs = ds.Read(4, 0);
            Assert.AreEqual(4, bs.Length);
            //Assert.AreEqual(0, bs
            Assert.AreEqual(unchecked ((byte)0xd0 - (byte)256), bs[0]);
            Assert.AreEqual(unchecked ((byte)0xcf - (byte)256), bs[1]);
            Assert.AreEqual(unchecked ((byte)0x11 - 0), bs[2]);
            Assert.AreEqual(unchecked ((byte)0xe0 - (byte)256), bs[3]);

            bs = ds.Read(8, 0x400);
            Assert.AreEqual(8, bs.Length);
            //Assert.AreEqual(0, bs.position());
            Assert.AreEqual((byte)'R', bs[0]);
            Assert.AreEqual(0, bs[1]);
            Assert.AreEqual((byte)'o', bs[2]);
            Assert.AreEqual(0, bs[3]);
            Assert.AreEqual((byte)'o', bs[4]);
            Assert.AreEqual(0, bs[5]);
            Assert.AreEqual((byte)'t', bs[6]);
            Assert.AreEqual(0, bs[7]);

            bs = ds.Read(8, 8190);
            //Assert.AreEqual(0,

            try
            {
                bs = ds.Read(4, 8192);
                Assert.Fail("Shouldn't be able to read off the end of the file");
            }
            catch (System.ArgumentException)
            {
            }
        }
Beispiel #6
0
        public void TestFileWritable()
        {
            FileInfo temp = TempFile.CreateTempFile("TestDataSource", ".test");

            try
            {
                WriteDataToFile(temp);

                FileBackedDataSource ds = new FileBackedDataSource(temp, false);
                try
                {
                    CheckDataSource(ds, true);
                }
                finally
                {
                    ds.Close();
                }

                // try a second time
                ds = new FileBackedDataSource(temp, false);
                try
                {
                    CheckDataSource(ds, true);
                }
                finally
                {
                    ds.Close();
                }

                WriteDataToFile(temp);
            }
            finally
            {
                Assert.IsTrue(temp.Exists);
                temp.Delete();
                Assert.IsTrue(!File.Exists(temp.FullName), "Could not delete file " + temp);
            }
        }