public void TestWrite1() { MemoryStream stream = new MemoryStream(); DocumentOutputStream dstream = new DocumentOutputStream(stream, 25); for (int j = 0; j < 25; j++) { dstream.Write(j); } try { dstream.Write(0); Assert.Fail("Should have caught IOException"); } catch (IOException) { } byte[] output = stream.ToArray(); Assert.AreEqual(25, output.Length); for (int j = 0; j < 25; j++) { Assert.AreEqual((byte)j, output[j]); } stream.Close(); }
public void TestWriteFiller() { MemoryStream stream = new MemoryStream(); DocumentOutputStream dstream = new DocumentOutputStream(stream, 25); for (int j = 0; j < 25; j++) { dstream.Write(j); } try { dstream.Write(0); Assert.Fail("Should have caught IOException"); } catch (IOException) { } dstream.WriteFiller(100, (byte)0xff); byte[] output = stream.ToArray(); Assert.AreEqual(100, output.Length); for (int j = 0; j < 25; j++) { Assert.AreEqual((byte)j, output[j]); } for (int j = 25; j < 100; j++) { Assert.AreEqual((byte)0xff, output[j], j.ToString()); } stream.Close(); }
public void TestWrite3() { MemoryStream stream = new MemoryStream(); DocumentOutputStream dstream = new DocumentOutputStream(stream, 25); byte[] array = new byte[50]; for (int j = 0; j < 50; j++) { array[j] = (byte)j; } dstream.Write(array, 1, 25); try { dstream.Write(array, 0, 1); Assert.Fail("Should have caught IOException"); } catch (IOException) { } byte[] output = stream.ToArray(); Assert.AreEqual(25, output.Length); for (int j = 0; j < 25; j++) { Assert.AreEqual((byte)(j + 1), output[j]); } stream.Close(); }
public void ProcessPOIFSWriterEvent(POIFSWriterEvent event1) { try { DocumentOutputStream os = event1.Stream; byte[] buf = new byte[stream.chunkSize]; // StreamSize (8 bytes): An unsigned integer that specifies the number of bytes used by data // encrypted within the EncryptedData field, not including the size of the StreamSize field. // Note that the actual size of the \EncryptedPackage stream (1) can be larger than this // value, depending on the block size of the chosen encryption algorithm LittleEndian.PutLong(buf, 0, stream._pos); os.Write(buf, 0, LittleEndian.LONG_SIZE); FileStream fis = stream.fileOut.Create(); int readBytes; while ((readBytes = fis.Read(buf, 0, buf.Length)) != -1) { os.Write(buf, 0, readBytes); } fis.Close(); os.Close(); stream.fileOut.Delete(); } catch (IOException e) { throw new EncryptedDocumentException(e); } }
public void TestWrite2() { MemoryStream stream = new MemoryStream(); DocumentOutputStream dstream = new DocumentOutputStream(stream, 25); for (int j = 0; j < 6; j++) { byte[] array = new byte[4]; for (int i = 0; i < array.Length; i++) { array[i] = (byte)j; } dstream.Write(array); } try { byte[] array = new byte[4]; for (int i = 0; i < array.Length; i++) { array[i] = (byte)7; } dstream.Write(array); Assert.Fail("Should have caught IOException"); } catch (IOException) { } byte[] output = stream.ToArray(); Assert.AreEqual(24, output.Length); for (int j = 0; j < 6; j++) { for (int k = 0; k < 4; k++) { Assert.AreEqual((byte)j, output[(j * 4) + k], ((j * 4) + k).ToString()); } } stream.Close(); }