2024-12-05 21:51:25 -05:00
|
|
|
|
using SabreTools.RedumpLib.Data;
|
2018-06-28 19:41:18 -07:00
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
2024-12-03 13:27:55 -05:00
|
|
|
|
namespace MPF.Frontend.Test
|
2018-06-28 19:41:18 -07:00
|
|
|
|
{
|
2021-11-24 22:19:57 -08:00
|
|
|
|
public class DumpEnvironmentTests
|
2018-06-28 19:41:18 -07:00
|
|
|
|
{
|
|
|
|
|
|
[Theory]
|
2018-07-05 20:30:52 +02:00
|
|
|
|
[InlineData(null, 'D', false, MediaType.NONE, false)]
|
|
|
|
|
|
[InlineData("", 'D', false, MediaType.NONE, false)]
|
2018-09-20 21:25:22 -07:00
|
|
|
|
[InlineData("cd F test.bin 8 /c2 20", 'F', false, MediaType.CDROM, true)]
|
2025-05-01 10:27:31 -04:00
|
|
|
|
[InlineData("cd F test.bin 8 /c2new 20", 'F', false, MediaType.CDROM, true)]
|
2018-09-20 21:30:13 -07:00
|
|
|
|
[InlineData("fd A test.img", 'A', true, MediaType.FloppyDisk, true)]
|
|
|
|
|
|
[InlineData("dvd X test.iso 8 /raw", 'X', false, MediaType.FloppyDisk, false)]
|
2018-07-05 20:30:52 +02:00
|
|
|
|
[InlineData("stop D", 'D', false, MediaType.DVD, true)]
|
2023-11-14 16:37:41 -05:00
|
|
|
|
public void ParametersValidTest(string? parameters, char letter, bool isFloppy, MediaType? mediaType, bool expected)
|
2018-06-28 19:41:18 -07:00
|
|
|
|
{
|
2021-03-08 22:19:22 -08:00
|
|
|
|
var options = new Options() { InternalProgram = InternalProgram.DiscImageCreator };
|
2022-04-20 13:47:55 -07:00
|
|
|
|
|
|
|
|
|
|
// TODO: This relies on creating real objects for the drive. Can we mock this out instead?
|
2020-05-06 17:00:34 -07:00
|
|
|
|
var drive = isFloppy
|
2022-04-20 13:47:55 -07:00
|
|
|
|
? Drive.Create(InternalDriveType.Floppy, letter.ToString())
|
|
|
|
|
|
: Drive.Create(InternalDriveType.Optical, letter.ToString());
|
2020-05-06 17:00:34 -07:00
|
|
|
|
|
2025-06-17 15:36:23 -04:00
|
|
|
|
var env = new DumpEnvironment(options,
|
|
|
|
|
|
string.Empty,
|
|
|
|
|
|
drive,
|
|
|
|
|
|
RedumpSystem.IBMPCcompatible,
|
|
|
|
|
|
null);
|
|
|
|
|
|
env.SetExecutionContext(mediaType, parameters);
|
|
|
|
|
|
env.SetProcessor();
|
2018-06-28 19:41:18 -07:00
|
|
|
|
|
2025-06-17 15:36:23 -04:00
|
|
|
|
bool actual = env.ParametersValid(mediaType);
|
2018-06-28 19:41:18 -07:00
|
|
|
|
Assert.Equal(expected, actual);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|