Files
sharpcompress/tests/SharpCompress.Test/Rar/RarHeaderFactoryTest.cs

53 lines
1.6 KiB
C#
Raw Permalink Normal View History

2022-12-20 15:06:44 +00:00
using System.IO;
2015-12-30 11:19:42 +00:00
using SharpCompress.Common.Rar.Headers;
using SharpCompress.IO;
using SharpCompress.Readers;
2015-12-30 11:19:42 +00:00
using Xunit;
2022-12-20 15:06:44 +00:00
namespace SharpCompress.Test.Rar;
/// <summary>
/// Summary description for RarFactoryReaderTest
/// </summary>
public class RarHeaderFactoryTest : TestBase
2015-12-30 11:19:42 +00:00
{
2024-03-14 08:53:08 +00:00
private readonly RarHeaderFactory _rarHeaderFactory;
2022-12-20 15:20:49 +00:00
public RarHeaderFactoryTest() =>
2024-03-14 08:53:08 +00:00
_rarHeaderFactory = new RarHeaderFactory(
2022-12-20 15:06:44 +00:00
StreamingMode.Seekable,
new ReaderOptions { LeaveStreamOpen = true }
);
2015-12-30 11:19:42 +00:00
2022-12-20 15:06:44 +00:00
[Fact]
2022-12-20 15:20:49 +00:00
public void Rar_ReadHeaders_RecognizeEncryptedFlag() =>
2022-12-20 15:06:44 +00:00
ReadEncryptedFlag("Rar.encrypted_filesAndHeader.rar", true);
2015-12-30 11:19:42 +00:00
2022-12-20 15:06:44 +00:00
[Fact]
2022-12-20 15:20:49 +00:00
public void Rar5_ReadHeaders_RecognizeEncryptedFlag() =>
2022-12-20 15:06:44 +00:00
ReadEncryptedFlag("Rar5.encrypted_filesAndHeader.rar", true);
2017-12-17 08:08:02 -05:00
2022-12-20 15:06:44 +00:00
[Fact]
2022-12-20 15:20:49 +00:00
public void Rar_ReadHeaders_RecognizeNoEncryptedFlag() => ReadEncryptedFlag("Rar.rar", false);
2017-12-17 08:08:02 -05:00
2022-12-20 15:06:44 +00:00
[Fact]
2022-12-20 15:20:49 +00:00
public void Rar5_ReadHeaders_RecognizeNoEncryptedFlag() => ReadEncryptedFlag("Rar5.rar", false);
2017-12-17 08:08:02 -05:00
2022-12-20 15:06:44 +00:00
private void ReadEncryptedFlag(string testArchive, bool isEncrypted)
{
using var stream = new FileStream(
2022-12-20 15:14:22 +00:00
Path.Combine(TEST_ARCHIVES_PATH, testArchive),
FileMode.Open,
FileAccess.Read
);
2024-03-14 08:53:08 +00:00
foreach (var header in _rarHeaderFactory.ReadHeaders(stream))
2015-12-30 11:19:42 +00:00
{
2022-12-20 15:14:22 +00:00
if (header.HeaderType == HeaderType.Archive || header.HeaderType == HeaderType.Crypt)
{
2024-03-14 08:53:08 +00:00
Assert.Equal(isEncrypted, _rarHeaderFactory.IsEncrypted);
2022-12-20 15:06:44 +00:00
break;
}
2015-12-30 11:19:42 +00:00
}
}
}