public void FileStreamNotClosedWhenNotOwner() { string tempFile = GetTempFilePath(); Assert.IsNotNull(tempFile, "No permission to execute this test?"); tempFile = Path.Combine(tempFile, "SharpZipFileStreamNotClosedWhenNotOwner.Zip"); if (File.Exists(tempFile)) { File.Delete(tempFile); } MakeZipFile(tempFile, "FileStreamClosedWhenOwner", 2, 10, "test"); // Stream should not be closed when leaveOpen is true { using (var fileStream = new TrackedFileStream(tempFile)) { Assert.IsFalse(fileStream.IsClosed, "Input file should NOT be closed"); using (var zipFile = new ZipFile(fileStream, true)) { Assert.IsFalse(zipFile.IsStreamOwner, "Should NOT be stream owner when leaveOpen is true"); } Assert.IsFalse(fileStream.IsClosed, "Input stream should NOT be closed when leaveOpen is true"); } } // Stream should not be closed when IsStreamOwner is set to false after opening { using (var fileStream = new TrackedFileStream(tempFile)) { Assert.IsFalse(fileStream.IsClosed, "Input file should NOT be closed"); using (var zipFile = new ZipFile(fileStream, false)) { Assert.IsTrue(zipFile.IsStreamOwner, "Should be stream owner when leaveOpen is false"); zipFile.IsStreamOwner = false; Assert.IsFalse(zipFile.IsStreamOwner, "Should be able to set IsStreamOwner to false"); } Assert.IsFalse(fileStream.IsClosed, "Input stream should NOT be closed when leaveOpen is true"); } } File.Delete(tempFile); }
public void FileStreamClosedWhenOwner() { string tempFile = GetTempFilePath(); Assert.IsNotNull(tempFile, "No permission to execute this test?"); tempFile = Path.Combine(tempFile, "SharpZipFileStreamClosedWhenOwnerTest.Zip"); if (File.Exists(tempFile)) { File.Delete(tempFile); } MakeZipFile(tempFile, "FileStreamClosedWhenOwner", 2, 10, "test"); // Stream should be closed when leaveOpen is unspecified { var fileStream = new TrackedFileStream(tempFile); Assert.IsFalse(fileStream.IsClosed, "Input file should NOT be closed"); using (var zipFile = new ZipFile(fileStream)) { Assert.IsTrue(zipFile.IsStreamOwner, "Should be stream owner by default"); } Assert.IsTrue(fileStream.IsClosed, "Input stream should be closed by default"); } // Stream should be closed when leaveOpen is false { var fileStream = new TrackedFileStream(tempFile); Assert.IsFalse(fileStream.IsClosed, "Input stream should NOT be closed"); using (var zipFile = new ZipFile(fileStream, false)) { Assert.IsTrue(zipFile.IsStreamOwner, "Should be stream owner when leaveOpen is false"); } Assert.IsTrue(fileStream.IsClosed, "Input stream should be closed when leaveOpen is false"); } File.Delete(tempFile); }