public void CfgFileMetadataProgramInformation_SetFeatures_SetsFeatures()
        {
            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(null);

            var testFeatures = ProgramFeatures.DefaultFeatures.Clone();

            cfgMetadataInformation.Features = testFeatures;

            Assert.NotNull(cfgMetadataInformation.Features);
            Assert.True(object.ReferenceEquals(testFeatures, cfgMetadataInformation.Features));
        }
        public void CfgFileMetadataProgramInformation_SetYear_SetsYear()
        {
            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(null);

            Assert.Null(cfgMetadataInformation.Year);

            var testYear = "1987";

            cfgMetadataInformation.Year = testYear;

            Assert.Equal(testYear, cfgMetadataInformation.Year);
        }
        public void CfgFileMetadataProgramInformation_SetVendor_SetsVendor()
        {
            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(null);

            Assert.Null(cfgMetadataInformation.Vendor);

            var testVendor = "Blue Sky Rangers, Inc.";

            cfgMetadataInformation.Vendor = testVendor;

            Assert.Equal(testVendor, cfgMetadataInformation.Vendor);
        }
        public void CfgFileMetadataProgramInformation_SetShortName_SetsShortName()
        {
            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(null);

            Assert.Null(cfgMetadataInformation.ShortName);

            var testShortName = "Giddyup";

            cfgMetadataInformation.ShortName = testShortName;

            Assert.Equal(testShortName, cfgMetadataInformation.ShortName);
        }
        public void CfgFileMetadataProgramInformation_SetTitle_SetsTitle()
        {
            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(null);

            Assert.Null(cfgMetadataInformation.Title);

            var testTitle = "Keep 'er movin'";

            cfgMetadataInformation.Title = testTitle;

            Assert.Equal(testTitle, cfgMetadataInformation.Title);
        }
        public void CfgFileMetadataProgramInformation_SetYearToBogusValue_SetsYearToBogusValue()
        {
            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(null);

            Assert.Null(cfgMetadataInformation.Year);

            var testYear = "Year Zero!";

            cfgMetadataInformation.Year = testYear;

            Assert.Equal(testYear, cfgMetadataInformation.Year);
        }
        public void CfgFileMetadataProgramInformation_CreateUsingRomWithUnknownMetadataBlockType_ContainsValidMetadata()
        {
            var romPaths = CfgFileMetadataProgramInformationTestStorageAccess.Initialize(TestRomResources.TestBinPath, TestRomResources.TestCfgMetadataPath);
            var rom      = Rom.AsSpecificRomType <BinFormatRom>(Rom.Create(romPaths[0], romPaths[1]));

            rom.MetadataCacheEnabled = true;
            Assert.NotNull(rom.Metadata);
            var metadata = (List <CfgVarMetadataBlock>)rom.Metadata;

            metadata.Add(new CfgVarMetadataFeatureCompatibility(CfgVarMetadataIdTag.Invalid));

            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(rom);

            Assert.NotNull(cfgMetadataInformation.Metadata);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Gets IProgramInformation from a .BIN-format file's metadata, if it is available.
        /// </summary>
        /// <param name="rom">The ROM from which metadata-based information is retrieved.</param>
        /// <returns>IProgramInformation retrieved from the .BIN-format ROM's .cfg file.</returns>
        public static CfgFileMetadataProgramInformation GetBinFileMetadata(this IRom rom)
        {
            CfgFileMetadataProgramInformation programInfo = null;
            var binRom = Rom.AsSpecificRomType <BinFormatRom>(rom);

            if (binRom != null)
            {
                programInfo = new CfgFileMetadataProgramInformation(rom);
                if (!programInfo.Metadata.Any())
                {
                    programInfo = null;
                }
            }
            return(programInfo);
        }
        public void CfgFileMetadataProgramInformation_CreateUsingRomWithZeroSizeJlpFlash_ContainsValidMetadata()
        {
            IReadOnlyList <string> romPaths;
            var storage = CfgFileMetadataProgramInformationTestStorageAccess.Initialize(out romPaths, TestRomResources.TestBinPath, TestRomResources.TestCfgMetadataPath);

            using (var cfgFile = storage.Open(romPaths[1]))
            {
                var cfgContent = "[vars]\njlp=2\njlp_flash=0\n";
                var cfgBytes   = Encoding.UTF8.GetBytes(cfgContent);
                cfgFile.Write(cfgBytes, 0, cfgBytes.Length);
                cfgFile.SetLength(cfgBytes.Length);
            }
            var rom = Rom.AsSpecificRomType <BinFormatRom>(Rom.Create(romPaths[0], romPaths[1]));

            rom.MetadataCacheEnabled = true;
            Assert.NotNull(rom.Metadata);

            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(rom);

            Assert.NotNull(cfgMetadataInformation.Metadata);
            Assert.Equal((ushort)0, cfgMetadataInformation.Features.JlpFlashMinimumSaveSectors);
        }
        public void CfgFileMetadataProgramInformation_AddCrc_ThrowsInvalidOperationException()
        {
            var cfgMetadataInformation = new CfgFileMetadataProgramInformation(null);

            Assert.Throws <InvalidOperationException>(() => cfgMetadataInformation.AddCrc(0u, null, IncompatibilityFlags.None));
        }