Example #1
0
        public void ProgramDescription_GetRomWhenRomPathsInvalidAndAlternatePathsFound_ReturnsAlternateRom()
        {
            var alternatePaths = ProgramDescriptionHelpersTestStorage.Initialize(TestRomResources.TestBinPath, TestRomResources.TestCfgPath);
            var rom            = new XmlRom();

            rom.UpdateRomPath("/fleery/beery/neery.bin");
            rom.UpdateConfigPath("/fleery/beery/neery.cfg");
            var supportFiles = new ProgramSupportFiles(rom);

            supportFiles.AddSupportFile(ProgramFileKind.Rom, "/grab.bin");
            supportFiles.AddSupportFile(ProgramFileKind.Rom, alternatePaths[0]);
            supportFiles.AddSupportFile(ProgramFileKind.Rom, "/barg.bin");
            supportFiles.AddSupportFile(ProgramFileKind.CfgFile, "/grab.cfg");
            supportFiles.AddSupportFile(ProgramFileKind.CfgFile, alternatePaths[1]);
            supportFiles.AddSupportFile(ProgramFileKind.CfgFile, "/barg.cfg");
            var description = CreateProgramDescription(0x246u, rom);

            description.Files = supportFiles;

            var romFromDescription = description.GetRom();

            Assert.False(object.ReferenceEquals(rom, romFromDescription));
            Assert.Equal(alternatePaths[0], romFromDescription.RomPath);
            Assert.Equal(alternatePaths[1], romFromDescription.ConfigPath);
        }
Example #2
0
        public void ProgramDescription_RomIsNullSetProgramSupportFilesWithNullRom_UpdatesFilesAndLeavesRomUnchanged()
        {
            var information = new TestProgramInformation();
            var crc         = 1u;

            information.AddCrc(crc);
            var description = new ProgramDescription(crc, null, information);

            var newFiles = new ProgramSupportFiles(null);

            description.Files = newFiles;

            Assert.Null(description.Rom);
            Assert.True(object.ReferenceEquals(newFiles, description.Files));
        }
Example #3
0
        public void ProgramDescription_GetRomWhenRomAndCfgPathsInvalidAndUnbalancedAlternatePaths_ThrowsInvalidOperationException()
        {
            ProgramDescriptionHelpersTestStorage.Initialize();
            var rom = new XmlRom();

            rom.UpdateRomPath("/fleggy/beggy/neggy.bin");
            rom.UpdateConfigPath("/fleggy/beggy/neggy.cfg");
            var supportFiles = new ProgramSupportFiles(rom);

            supportFiles.AddSupportFile(ProgramFileKind.Rom, "/biff!");
            var description = CreateProgramDescription(0x654u, rom);

            description.Files = supportFiles;

            var exception = Assert.Throws <InvalidOperationException>(() => description.GetRom());

            Assert.Equal(Resources.Strings.ProgramDescription_MissingAlternateCfgFile, exception.Message);
        }
Example #4
0
        public void ProgramDescription_ValidRomSetProgramSupportFilesWithNullRom_UpdatesFilesAndLeavesRomUnchanged()
        {
            var romPath = ProgramDescriptionTestStorage.Initialize(TestRomResources.TestRomPath).First();
            var rom     = Rom.Create(romPath, null);

            Assert.NotNull(rom);
            var information = new TestProgramInformation();
            var crc         = rom.Crc;

            information.AddCrc(crc);
            var description = new ProgramDescription(crc, rom, information);

            var newFiles = new ProgramSupportFiles(null);

            description.Files = newFiles;

            Assert.True(object.ReferenceEquals(rom, description.Rom));
            Assert.True(object.ReferenceEquals(newFiles, description.Files));
        }
Example #5
0
        public void ProgramDescription_GetRomWhenRomAndCfgPathsInvalidAndAlternatePathsNotFound_ReturnsOriginalRom()
        {
            ProgramDescriptionHelpersTestStorage.Initialize();
            var rom = new XmlRom();

            rom.UpdateRomPath("/flooty/booty/nooty.bin");
            rom.UpdateConfigPath("/flooty/booty/nooty.cfg");
            var supportFiles = new ProgramSupportFiles(rom);

            supportFiles.AddSupportFile(ProgramFileKind.Rom, "/banff.bin");
            supportFiles.AddSupportFile(ProgramFileKind.Rom, "/barff.bin");
            supportFiles.AddSupportFile(ProgramFileKind.CfgFile, "/banff.cfg");
            supportFiles.AddSupportFile(ProgramFileKind.CfgFile, "/barff.cfg");
            var description = CreateProgramDescription(0x321u, rom);

            description.Files = supportFiles;

            Assert.True(object.ReferenceEquals(rom, description.GetRom()));
        }
Example #6
0
        public void ProgramDescription_GetRomWhenRomPathInvalidAndAlternatePathFound_ReturnsAlternateRom()
        {
            var alternatePath = ProgramDescriptionHelpersTestStorage.Initialize(TestRomResources.TestCc3Path).First();
            var rom           = new XmlRom();

            rom.UpdateRomPath("/floory/boory/noory.rom");
            var supportFiles = new ProgramSupportFiles(rom);

            supportFiles.AddSupportFile(ProgramFileKind.Rom, "/grub.bin");
            supportFiles.AddSupportFile(ProgramFileKind.Rom, alternatePath);
            supportFiles.AddSupportFile(ProgramFileKind.Rom, "/burg.bin");
            var description = CreateProgramDescription(0x135u, rom);

            description.Files = supportFiles;

            var romFromDescription = description.GetRom();

            Assert.False(object.ReferenceEquals(rom, romFromDescription));
            Assert.Equal(alternatePath, romFromDescription.RomPath);
        }
Example #7
0
 private void VerifyProgramSupportFiles(ProgramSupportFiles files0, ProgramSupportFiles files1)
 {
     Assert.Equal(files0.Rom, files1.Rom);
     Assert.Equal(files0.RomImagePath, files1.RomImagePath);
     Assert.Equal(files0.RomConfigurationFilePath, files1.RomConfigurationFilePath);
     Assert.Equal(files0.AlternateRomImagePaths, files1.AlternateRomImagePaths);
     Assert.Equal(files0.AlternateRomConfigurationFilePaths, files1.AlternateRomConfigurationFilePaths);
     Assert.Equal(files0.BoxImagePaths, files1.BoxImagePaths);
     Assert.Equal(files0.OverlayImagePaths, files1.OverlayImagePaths);
     Assert.Equal(files0.ManualCoverImagePaths, files1.ManualCoverImagePaths);
     Assert.Equal(files0.LabelImagePaths, files1.LabelImagePaths);
     Assert.Equal(files0.ManualPaths, files1.ManualPaths);
     Assert.Equal(files0.SaveDataPaths, files1.SaveDataPaths);
     Assert.Equal(files0.DefaultBoxImagePath, files1.DefaultBoxImagePath);
     Assert.Equal(files0.DefaultOverlayImagePath, files1.DefaultOverlayImagePath);
     Assert.Equal(files0.DefaultManualImagePath, files1.DefaultManualImagePath);
     Assert.Equal(files0.DefaultLabelImagePath, files1.DefaultLabelImagePath);
     Assert.Equal(files0.DefaultManualTextPath, files1.DefaultManualTextPath);
     Assert.Equal(files0.DefaultSaveDataPath, files1.DefaultSaveDataPath);
     Assert.Equal(files0.DefaultLtoFlashDataPath, files1.DefaultLtoFlashDataPath);
     Assert.Equal(files0.DefaultVignettePath, files1.DefaultVignettePath);
     Assert.Equal(files0.DefaultReservedDataPath, files1.DefaultReservedDataPath);
 }