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) { } }
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(); } }
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)); } }
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) { } }