Files
SabreTools.Serialization/SabreTools.Data.Extensions.Test/InstallShieldCabinetExtensionsTests.cs
2026-03-21 20:09:10 -04:00

157 lines
4.0 KiB
C#

using SabreTools.Data.Models.InstallShieldCabinet;
using Xunit;
namespace SabreTools.Data.Extensions.Test
{
public class InstallShieldCabinetExtensionsTests
{
#region IsCompressed
[Fact]
public void IsCompressed_Null_True()
{
FileDescriptor? fd = null;
bool actual = fd.IsCompressed();
Assert.True(actual);
}
[Fact]
public void IsCompressed_Compressed_True()
{
FileDescriptor? fd = new FileDescriptor { Flags = FileFlags.FILE_COMPRESSED };
bool actual = fd.IsCompressed();
Assert.True(actual);
}
[Fact]
public void IsCompressed_NotCompressed_False()
{
FileDescriptor? fd = new FileDescriptor { Flags = 0 };
bool actual = fd.IsCompressed();
Assert.False(actual);
}
#endregion
#region IsInvalid
[Fact]
public void IsInvalid_Null_True()
{
FileDescriptor? fd = null;
bool actual = fd.IsInvalid();
Assert.True(actual);
}
[Fact]
public void IsInvalid_Invalid_True()
{
FileDescriptor? fd = new FileDescriptor { Flags = FileFlags.FILE_INVALID };
bool actual = fd.IsInvalid();
Assert.True(actual);
}
[Fact]
public void IsInvalid_Valid_False()
{
FileDescriptor? fd = new FileDescriptor { Flags = 0 };
bool actual = fd.IsInvalid();
Assert.False(actual);
}
#endregion
#region IsObfuscated
[Fact]
public void IsObfuscated_Null_False()
{
FileDescriptor? fd = null;
bool actual = fd.IsObfuscated();
Assert.False(actual);
}
[Fact]
public void IsObfuscated_Obfuscated_True()
{
FileDescriptor? fd = new FileDescriptor { Flags = FileFlags.FILE_OBFUSCATED };
bool actual = fd.IsObfuscated();
Assert.True(actual);
}
[Fact]
public void IsObfuscated_NotObfuscated_False()
{
FileDescriptor? fd = new FileDescriptor { Flags = 0 };
bool actual = fd.IsObfuscated();
Assert.False(actual);
}
#endregion
#region IsSplit
[Fact]
public void IsSplit_Null_False()
{
FileDescriptor? fd = null;
bool actual = fd.IsSplit();
Assert.False(actual);
}
[Fact]
public void IsSplit_Split_True()
{
FileDescriptor? fd = new FileDescriptor { Flags = FileFlags.FILE_SPLIT };
bool actual = fd.IsSplit();
Assert.True(actual);
}
[Fact]
public void IsSplit_NotSplitFalse()
{
FileDescriptor? fd = new FileDescriptor { Flags = 0 };
bool actual = fd.IsSplit();
Assert.False(actual);
}
#endregion
#region GetMajorVersion
[Fact]
public void GetMajorVersion_NullCabinet_NegativeOne()
{
Cabinet? cabinet = null;
int actual = cabinet.GetMajorVersion();
Assert.Equal(-1, actual);
}
[Fact]
public void GetMajorVersion_NullHeader_NegativeOne()
{
CommonHeader? cabinet = null;
int actual = cabinet.GetMajorVersion();
Assert.Equal(-1, actual);
}
[Theory]
[InlineData(0x00000000, 0)]
[InlineData(0x00000004, 4)]
[InlineData(0x01000000, 0)]
[InlineData(0x01004000, 4)]
[InlineData(0x02000000, 0)]
[InlineData(0x02000190, 4)]
[InlineData(0x04000000, 0)]
[InlineData(0x04000190, 4)]
public void GetMajorVersionTest(uint version, int expected)
{
CommonHeader? cabinet = new CommonHeader { Version = version };
int actual = cabinet.GetMajorVersion();
Assert.Equal(expected, actual);
}
#endregion
}
}