Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }