74 lines
2.8 KiB
C#
74 lines
2.8 KiB
C#
using Unity.SharpZipLib.Lzw;
|
|
using Unity.SharpZipLib.Tests.TestSupport;
|
|
using NUnit.Framework;
|
|
using System.IO;
|
|
namespace Unity.SharpZipLib.Tests.Lzw
|
|
{
|
|
[TestFixture]
|
|
internal class LzwTestSuite
|
|
{
|
|
//[Test]
|
|
//[Category("LZW")]
|
|
//public void TestLzw() {
|
|
// LzwInputStream str = new LzwInputStream(File.OpenRead("D:\\hour2890.09n.Z"));
|
|
// Stream raw = File.OpenRead("D:\\hour2890.09n");
|
|
// byte[] data = new byte[1028 * 1028];
|
|
// byte[] dataRaw = new byte[1028 * 1028];
|
|
// raw.Read(dataRaw, 0, 1028);
|
|
// str.Read(data, 0, 1028);
|
|
// for (int i = 0; i < 1028; i++) {
|
|
// Assert.AreEqual(data[i], dataRaw[i]);
|
|
// }
|
|
// Stream output = File.Open("D:\\erase.txt", FileMode.CreateNew);
|
|
// output.Write(data, 0, 1028);
|
|
// output.Close();
|
|
// raw.Close();
|
|
//}
|
|
//[Test]
|
|
//[Category("LZW")]
|
|
//public void TestStream() {
|
|
// using (Stream inStream = new LzwInputStream(File.OpenRead("D:\\hour2890.09n.Z")))
|
|
// using (FileStream outStream = File.Create("D:\\hour2890.09n")) {
|
|
// byte[] buffer = new byte[4096];
|
|
// StreamUtils.Copy(inStream, outStream, buffer);
|
|
// }
|
|
//}
|
|
[Test]
|
|
[Category("LZW")]
|
|
public void ZeroLengthInputStream()
|
|
{
|
|
var lis = new LzwInputStream(new MemoryStream());
|
|
bool exception = false;
|
|
try
|
|
{
|
|
lis.ReadByte();
|
|
}
|
|
catch
|
|
{
|
|
exception = true;
|
|
}
|
|
Assert.IsTrue(exception, "reading from an empty stream should cause an exception");
|
|
}
|
|
[Test]
|
|
[Category("LZW")]
|
|
public void InputStreamOwnership()
|
|
{
|
|
var memStream = new TrackedMemoryStream();
|
|
var s = new LzwInputStream(memStream);
|
|
Assert.IsFalse(memStream.IsClosed, "Shouldnt be closed initially");
|
|
Assert.IsFalse(memStream.IsDisposed, "Shouldnt be disposed initially");
|
|
s.Close();
|
|
Assert.IsTrue(memStream.IsClosed, "Should be closed after parent owner close");
|
|
Assert.IsTrue(memStream.IsDisposed, "Should be disposed after parent owner close");
|
|
memStream = new TrackedMemoryStream();
|
|
s = new LzwInputStream(memStream);
|
|
Assert.IsFalse(memStream.IsClosed, "Shouldnt be closed initially");
|
|
Assert.IsFalse(memStream.IsDisposed, "Shouldnt be disposed initially");
|
|
s.IsStreamOwner = false;
|
|
s.Close();
|
|
Assert.IsFalse(memStream.IsClosed, "Should not be closed after parent owner close");
|
|
Assert.IsFalse(memStream.IsDisposed, "Should not be disposed after parent owner close");
|
|
}
|
|
}
|
|
}
|