mirror of
https://github.com/SabreTools/MPF.git
synced 2026-07-02 17:24:48 +00:00
* Namespace cleanups * Make dump validation instanced * Add note to Tasks * Move stuff to DumpEnvironment Most of the stuff in Tasks.cs acted on a single input parameter, namely a DumpEnvironment. Since that's the case, it was more logical to wrap those into DumpEnvironment and make them instance methods rather than keep them static. Due to this change, quite a few methods changed access, and some had to be marked internal due to wanting them to be tested separately. * Gut Tasks * One less thing in MainWindow * Remove explicit cast * Wrong check * Create helper method * Disable scan button on dump * Remove unnecessary getters/setters * Method name/description cleanup * Address TODO * Namespace cleanups * Make dump validation instanced * Add note to Tasks * Move stuff to DumpEnvironment Most of the stuff in Tasks.cs acted on a single input parameter, namely a DumpEnvironment. Since that's the case, it was more logical to wrap those into DumpEnvironment and make them instance methods rather than keep them static. Due to this change, quite a few methods changed access, and some had to be marked internal due to wanting them to be tested separately. * Gut Tasks * One less thing in MainWindow * Remove explicit cast * Wrong check * Create helper method * Disable scan button on dump * Remove unnecessary getters/setters * Method name/description cleanup * Address TODO * Clean up OnContentRendered * Namespace cleanups * Make dump validation instanced * Add note to Tasks * Move stuff to DumpEnvironment Most of the stuff in Tasks.cs acted on a single input parameter, namely a DumpEnvironment. Since that's the case, it was more logical to wrap those into DumpEnvironment and make them instance methods rather than keep them static. Due to this change, quite a few methods changed access, and some had to be marked internal due to wanting them to be tested separately. * Gut Tasks * One less thing in MainWindow * Remove explicit cast * Wrong check * Create helper method * Disable scan button on dump * Remove unnecessary getters/setters * Method name/description cleanup * Address TODO * Clean up OnContentRendered * Update event handlers
149 lines
5.5 KiB
C#
149 lines
5.5 KiB
C#
using DICUI.Data;
|
|
using DICUI.Utilities;
|
|
using Xunit;
|
|
|
|
namespace DICUI.Test
|
|
{
|
|
public class DumpEnvironmentTest
|
|
{
|
|
[Theory]
|
|
[InlineData(null, 'D', false, MediaType.NONE, false)]
|
|
[InlineData("", 'D', false, MediaType.NONE, false)]
|
|
[InlineData("cd F test.bin 8 /c2 20", 'F', false, MediaType.CD, true)]
|
|
[InlineData("fd A test.img", 'A', true, MediaType.Floppy, true)]
|
|
[InlineData("dvd X test.iso 8 /raw", 'X', false, MediaType.Floppy, false)]
|
|
[InlineData("stop D", 'D', false, MediaType.DVD, true)]
|
|
public void ParametersValidTest(string parameters, char letter, bool isFloppy, MediaType? mediaType, bool expected)
|
|
{
|
|
var env = new DumpEnvironment
|
|
{
|
|
DICParameters = parameters,
|
|
Drive = isFloppy ? Drive.Floppy(letter) : Drive.Optical(letter, ""),
|
|
Type = mediaType,
|
|
};
|
|
|
|
bool actual = env.ParametersValid();
|
|
Assert.Equal(expected, actual);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null, null, null, new char(), null, null)]
|
|
[InlineData("", null, null, new char(), null, null)]
|
|
[InlineData("cd F test.bin 8 /c2 20", MediaType.CD, KnownSystem.IBMPCCompatible, 'F', "", "test.bin")]
|
|
[InlineData("fd A blah\\test.img", MediaType.Floppy, KnownSystem.IBMPCCompatible, 'A', "blah", "test.img")]
|
|
[InlineData("dvd X super\\blah\\test.iso 8 /raw", MediaType.GameCubeGameDisc, KnownSystem.NintendoGameCube, 'X', "super\\blah", "test.iso")]
|
|
[InlineData("stop D", null, null, 'D', null, null)]
|
|
public void AdjustForCustomConfigurationTest(string parameters, MediaType? expectedMediaType, KnownSystem? expectedKnownSystem, char expectedDriveLetter, string expectedOutputDirectory, string expectedOutputFilename)
|
|
{
|
|
var env = new DumpEnvironment
|
|
{
|
|
DICParameters = parameters,
|
|
System = KnownSystem.Custom,
|
|
};
|
|
|
|
env.AdjustForCustomConfiguration();
|
|
Assert.Equal(parameters, env.DICParameters);
|
|
Assert.Equal(expectedMediaType, env.Type);
|
|
Assert.Equal(expectedKnownSystem, env.System);
|
|
Assert.Equal(expectedDriveLetter, env.Drive.Letter);
|
|
Assert.Equal(expectedOutputDirectory, env.OutputDirectory);
|
|
Assert.Equal(expectedOutputFilename, env.OutputFilename);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null, null, null, null)]
|
|
[InlineData(" ", "", " ", "")]
|
|
[InlineData("super", "blah.bin", "super", "blah.bin")]
|
|
[InlineData("super\\hero", "blah.bin", "super\\hero", "blah.bin")]
|
|
[InlineData("super.hero", "blah.bin", "super_hero", "blah.bin")]
|
|
[InlineData("superhero", "blah.rev.bin", "superhero", "blah_rev.bin")]
|
|
[InlineData("super&hero", "blah.bin", "super_hero", "blah.bin")]
|
|
[InlineData("superhero", "blah&foo.bin", "superhero", "blah_foo.bin")]
|
|
public void FixOutputPathsTest(string outputDirectory, string outputFilename, string expectedOutputDirectory, string expectedOutputFilename)
|
|
{
|
|
var env = new DumpEnvironment
|
|
{
|
|
OutputDirectory = outputDirectory,
|
|
OutputFilename = outputFilename,
|
|
};
|
|
|
|
env.FixOutputPaths();
|
|
Assert.Equal(expectedOutputDirectory, env.OutputDirectory);
|
|
Assert.Equal(expectedOutputFilename, env.OutputFilename);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetFirstTrackTest()
|
|
{
|
|
// TODO: Implement
|
|
Assert.True(true);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(MediaType.CD)]
|
|
[InlineData(MediaType.DVD)]
|
|
[InlineData(MediaType.Floppy)]
|
|
[InlineData(MediaType.LaserDisc)]
|
|
public void FoundAllFilesTest(MediaType? mediaType)
|
|
{
|
|
// TODO: Implement
|
|
// TODO: Get sample output data for each of the major types
|
|
Assert.True(true);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(KnownSystem.AppleMacintosh, MediaType.CD)]
|
|
[InlineData(KnownSystem.PhilipsCDi, MediaType.CD)]
|
|
[InlineData(KnownSystem.SegaSaturn, MediaType.CD)]
|
|
[InlineData(KnownSystem.SonyPlayStation, MediaType.CD)]
|
|
[InlineData(KnownSystem.SonyPlayStation2, MediaType.CD)]
|
|
[InlineData(KnownSystem.AppleMacintosh, MediaType.DVD)]
|
|
[InlineData(KnownSystem.DVDVideo, MediaType.DVD)]
|
|
[InlineData(KnownSystem.MicrosoftXBOX, MediaType.DVD)]
|
|
[InlineData(KnownSystem.SonyPlayStation2, MediaType.DVD)]
|
|
[InlineData(KnownSystem.BDVideo, MediaType.BluRay)]
|
|
[InlineData(KnownSystem.AUSCOMSystem1, MediaType.Cassette)]
|
|
public void ExtractOutputInformation(KnownSystem? knownSystem, MediaType? mediaType)
|
|
{
|
|
// TODO: Implement
|
|
// TODO: Get sample output data for each of the major types
|
|
Assert.True(true);
|
|
}
|
|
|
|
[Fact]
|
|
public void FormatOutputDataTest()
|
|
{
|
|
// TODO: Implement
|
|
Assert.True(true);
|
|
}
|
|
|
|
[Fact]
|
|
public void WriteOutputDataTest()
|
|
{
|
|
// TODO: Implement
|
|
Assert.True(true);
|
|
}
|
|
|
|
[Fact]
|
|
public void EjectDiscTest()
|
|
{
|
|
// TODO: Implement
|
|
Assert.True(true);
|
|
}
|
|
|
|
[Fact]
|
|
public void CancelDumpingTest()
|
|
{
|
|
// TODO: Implement
|
|
Assert.True(true);
|
|
}
|
|
|
|
[Fact]
|
|
public void StartDumpingTest()
|
|
{
|
|
// TODO: Implement
|
|
Assert.True(true);
|
|
}
|
|
}
|
|
}
|