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(); }
/// <summary> /// Initializes a new instance of the <see cref="POIFSWriterEvent"/> class. /// </summary> /// <param name="stream">the POIFSDocumentWriter, freshly opened</param> /// <param name="path">the path of the document</param> /// <param name="documentName">the name of the document</param> /// <param name="limit">the limit, in bytes, that can be written to the stream</param> public POIFSWriterEventArgs(DocumentOutputStream stream, POIFSDocumentPath path, string documentName, int limit) { this.stream = stream; this.path = path; this.documentName = documentName; this.limit = limit; }
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(); }