Files
2026-03-21 20:09:10 -04:00

139 lines
4.6 KiB
C#

using SabreTools.Data.Models.ISO9660;
using SabreTools.Numerics;
using Xunit;
namespace SabreTools.Data.Extensions.Test
{
public class ISO9660ExtensionsTests
{
[Fact]
public void GetLogicalBlockSize_Generic_SectorLength()
{
VolumeDescriptor vd = new GenericVolumeDescriptor();
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(sectorLength, actual);
}
[Fact]
public void GetLogicalBlockSize_PVD_ValidBothEndian_ValidBlockSize_BlockSize()
{
VolumeDescriptor vd = new PrimaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(2048, 2048)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(2048, actual);
}
[Fact]
public void GetLogicalBlockSize_PVD_ValidBothEndian_InvalidBlockSize_SectorLength()
{
VolumeDescriptor vd = new PrimaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(2352, 2352)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(4096, actual);
}
[Fact]
public void GetLogicalBlockSize_PVD_InvalidBothEndian_ValidLE_LEValue()
{
VolumeDescriptor vd = new PrimaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(2048, -1)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(2048, actual);
}
[Fact]
public void GetLogicalBlockSize_PVD_InvalidBothEndian_ValidBE_BEValue()
{
VolumeDescriptor vd = new PrimaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(-1, 2048)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(2048, actual);
}
[Fact]
public void GetLogicalBlockSize_PVD_InvalidBothEndian_BothInvalid_SectorLength()
{
VolumeDescriptor vd = new PrimaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(-1, -2)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(sectorLength, actual);
}
[Fact]
public void GetLogicalBlockSize_SVD_ValidBothEndian_ValidBlockSize_BlockSize()
{
VolumeDescriptor vd = new SupplementaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(2048, 2048)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(2048, actual);
}
[Fact]
public void GetLogicalBlockSize_SVD_ValidBothEndian_InvalidBlockSize_SectorLength()
{
VolumeDescriptor vd = new SupplementaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(2352, 2352)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(4096, actual);
}
[Fact]
public void GetLogicalBlockSize_SVD_InvalidBothEndian_ValidLE_LEValue()
{
VolumeDescriptor vd = new SupplementaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(2048, -1)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(2048, actual);
}
[Fact]
public void GetLogicalBlockSize_SVD_InvalidBothEndian_ValidBE_BEValue()
{
VolumeDescriptor vd = new SupplementaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(-1, 2048)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(2048, actual);
}
[Fact]
public void GetLogicalBlockSize_SVD_InvalidBothEndian_BothInvalid_SectorLength()
{
VolumeDescriptor vd = new SupplementaryVolumeDescriptor
{
LogicalBlockSize = new BothInt16(-1, -2)
};
short sectorLength = 4096;
short actual = vd.GetLogicalBlockSize(sectorLength);
Assert.Equal(sectorLength, actual);
}
}
}