Esempio n. 1
0
        public void LuigiFileHeader_ReadVersionZeroHeader_DoesNotThrowAndReportsVersionZero()
        {
            var romPath = LuigiFileHeaderTestStorageAccess.Initialize(TestRomResources.TestLuigiFromBinWithVersionZeroHeaderPath).First();

            var header = LuigiFileHeader.GetHeader(romPath);

            Assert.Equal(0, header.Version);
        }
Esempio n. 2
0
        public void LuigiFileHeader_IsPotentialLuigiFile_ProvidesCorrectResult(string resourceToRegister, string potentialLuigiFilePath, bool expectedIsPotentialLuigiFile)
        {
            var romFilePath = LuigiFileHeaderTestStorageAccess.Initialize(resourceToRegister).First();

            if (string.IsNullOrEmpty(potentialLuigiFilePath))
            {
                potentialLuigiFilePath = romFilePath;
            }

            Assert.Equal(expectedIsPotentialLuigiFile, LuigiFileHeader.PotentialLuigiFile(potentialLuigiFilePath));
        }
Esempio n. 3
0
        public void LuigiFileHeader_SerializeHeaderFromTestRom_SerializesCorrectNumberOfBytes()
        {
            var romPath = LuigiFileHeaderTestStorageAccess.Initialize(TestRomResources.TestLuigiFromBinPath).First();
            var header  = LuigiFileHeader.GetHeader(romPath);

            using (var writer = new BinaryWriter(new System.IO.MemoryStream()))
            {
                var bytesSerialized = header.Serialize(writer);

                Assert.Equal(32, bytesSerialized);
            }
        }
Esempio n. 4
0
        public void LuigiFileHeader_GetFromValidLuigiRom_DoesNotThrowAndReportsExpectedVersion()
        {
            IReadOnlyList <string> paths;
            var storage = LuigiFileHeaderTestStorageAccess.Initialize(out paths, TestRomResources.TestLuigiFromRomPath);

            using (var reader = new BinaryReader(storage.Open(paths.First())))
            {
                var header = LuigiFileHeader.Inflate(reader);

                Assert.Equal(1, header.Version);
                Assert.Equal(32, header.DeserializeByteCount);
            }
        }
Esempio n. 5
0
        public void LuigiFileHeader_UpdateFeaturesOnScrambledLuigiRom_UpdatesFeatures(LuigiFeatureFlags newFeatures, bool forceFeatureUpdate)
        {
            var romPath = LuigiFileHeaderTestStorageAccess.Initialize(TestRomResources.TestLuigiScrambledForDevice0Path).First();

            var header      = LuigiFileHeader.GetHeader(romPath);
            var originalCrc = header.Crc;

            Assert.Equal(0xEC, header.Crc);

            var crcShouldChange = header.Features != newFeatures;

            header.UpdateFeatures(newFeatures, forceFeatureUpdate);

            Assert.Equal(newFeatures, header.Features);
            Assert.Equal(crcShouldChange, header.Crc != originalCrc);
        }
Esempio n. 6
0
        public void LuigiFileHeader_UpdateFeaturesOnLuigiWithMetadata_UpdatesFeatures(LuigiFeatureFlags newFeatures, bool forceFeatureUpdate)
        {
            var romPath = LuigiFileHeaderTestStorageAccess.Initialize(TestRomResources.TestLuigiScrambledForDevice1Path).First();

            var header           = LuigiFileHeader.GetHeader(romPath);
            var originalCrc      = header.Crc;
            var expectedFeatures = header.WouldModifyFeatures(newFeatures, forceFeatureUpdate) ? newFeatures : header.Features;

            Assert.Equal(0x8B, originalCrc);

            var crcShouldChange = header.Features != expectedFeatures;

            header.UpdateFeatures(newFeatures, forceFeatureUpdate);

            Assert.Equal(expectedFeatures, header.Features);
            Assert.Equal(crcShouldChange, header.Crc != originalCrc);
        }
Esempio n. 7
0
        public void LuigiFileHeader_IsPotentialLuigiFile_ThrowsArgumentNullException()
        {
            LuigiFileHeaderTestStorageAccess.Initialize();

            Assert.Throws <ArgumentNullException>(() => LuigiFileHeader.PotentialLuigiFile(null));
        }