Exemplo n.º 1
0
 public void GZipMemberEntry_InflateStreamWithCorruptFlags_ThrowsInvalidOperationException()
 {
     using (var stream = CreateCorruptedGZipStream(TestResource.TagalongCfgGZip, CorruptReservedBitsOffset))
     {
         Assert.Throws <InvalidOperationException>(() => GZipMemberEntry.Inflate(stream));
     }
 }
Exemplo n.º 2
0
 private static void VerifyGZipMemberEntry(GZipMemberEntry entry, string expectedName, uint?expectedCrc32, long?expectedLength, GZipOS?expectedOperatingSystem = null, bool checkModificationDate = true, bool checkOffset = false)
 {
     Assert.NotNull(entry);
     Assert.False(entry.IsDirectory);
     Assert.Equal(expectedName, entry.Name);
     if (checkModificationDate)
     {
         Assert.NotEqual(DateTime.MinValue, entry.LastModificationTime);
     }
     if (expectedOperatingSystem.HasValue)
     {
         Assert.Equal(expectedOperatingSystem, entry.OperatingSystem);
     }
     if (expectedLength.HasValue)
     {
         Assert.True(entry.Length > 0);
     }
     else
     {
         Assert.Equal(-1, entry.Length);
     }
     if (expectedCrc32.HasValue && (expectedCrc32.Value != 0))
     {
         Assert.Equal(expectedCrc32.Value, entry.Crc32);
     }
     if (checkOffset)
     {
         Assert.True(entry.Offset > 0);
     }
     Assert.Equal(-1, entry.SerializeByteCount);
     Assert.True(entry.DeserializeByteCount >= MinimumEntryDeserializeLength);
 }
Exemplo n.º 3
0
        public void GZipMemberEntry_Serialize_ThrowsNotSupportedException()
        {
            var bogusEntry = new GZipMemberEntry();

            INTV.Core.Utility.BinaryWriter bogusWriter = null;

            Assert.Throws <NotSupportedException>(() => bogusEntry.Serialize(bogusWriter));
        }
Exemplo n.º 4
0
        public void GZipMemberEntry_CreateEmpty_CreatesEntryWithGivenName()
        {
            var name = "whee";

            var entry = GZipMemberEntry.CreateEmptyEntry(name);

            Assert.NotNull(entry);
            Assert.Equal(name, entry.Name);
        }
Exemplo n.º 5
0
        public void GZipMemberEntry_GetAllMemberEntriesFromStreamContainingOneGZipWithMaxLimitFour_GetsOneEntry()
        {
            using (var stream = TestResource.TagalongCfgGZip.OpenResourceForReading())
            {
                var entries = GZipMemberEntry.GetMemberEntries(stream, maxNumberOfEntries: 4).ToList();

                Assert.Equal(1, entries.Count);
            }
        }
Exemplo n.º 6
0
        public void GZipMemberEntry_GetAllMemberEntriesFromStreamContainingTwoConcatenatedGZipsWithMaxLimitThree_GetsTwoEntries()
        {
            using (var stream = TestResource.TagalongBinCfgNYGZip.OpenResourceForReading())
            {
                var entries = GZipMemberEntry.GetMemberEntries(stream, maxNumberOfEntries: 3).ToList();

                Assert.Equal(2, entries.Count);
            }
        }
Exemplo n.º 7
0
        public void GZipMemberEntry_GetAllMemberEntriesFromStreamContainingConcatenatedGZipsWithMaxLimitZero_GetsZeroEntries()
        {
            using (var stream = TestResource.TagalongBCLRNYNYGZip.OpenResourceForReading())
            {
                var entries = GZipMemberEntry.GetMemberEntries(stream, maxNumberOfEntries: 0);

                Assert.False(entries.Any());
            }
        }
Exemplo n.º 8
0
        public void GZipMemberEntry_GetAllMemberEntriesFromGZipContainingFileNames_GetsMemberExpectedEntryData(TestResource testResource, long expectedLength, uint expectedCrc32)
        {
            using (var stream = testResource.OpenResourceForReading())
            {
                var entry = GZipMemberEntry.GetMemberEntries(stream).Single();

                VerifyGZipMemberEntry(entry, testResource.ArchiveContents.First(), expectedCrc32, expectedLength, GZipOS.Unix);
            }
        }
Exemplo n.º 9
0
        public void GZipMemberEntry_InflateUsingBinaryReader_ReturnsValidEntry()
        {
            var binGZip = TestResource.TagalongBinGZip;

            using (var reader = new INTV.Core.Utility.BinaryReader(binGZip.OpenResourceForReading()))
            {
                var entry = GZipMemberEntry.Inflate(reader);

                VerifyGZipMemberEntry(entry, binGZip.ArchiveContents.First(), 0, expectedLength: null);
            }
        }
Exemplo n.º 10
0
        public void GZipMemberEntry_GetAllMemberEntriesFromBadStream_OnlyReturnsSomeEntries()
        {
            string testResourcePath;

            using (TestResource.TagalongBinCfgYYGZip.ExtractToTemporaryFile(out testResourcePath))
                using (var stream = new TestFileStream(testResourcePath, FileMode.Open, FileAccess.Read))
                {
                    var entries = GZipMemberEntry.GetMemberEntries(stream);

                    Assert.True(entries.Count() < 2);
                }
        }
Exemplo n.º 11
0
        public void GZipMemberEntry_GetAllMemberEntriesFromStreamContainingTwoConcatenatedGZips_GetsMembersWithExpectedEntryNames(TestResource testResource, IEnumerable <VerificationData> verificationData)
        {
            using (var stream = testResource.OpenResourceForReading())
            {
                var entries           = GZipMemberEntry.GetMemberEntries(stream).ToList();
                var verifyEntriesData = verificationData.ToList();

                for (var i = 0; i < entries.Count; ++i)
                {
                    var verifyData = verifyEntriesData[i];
                    VerifyGZipMemberEntry(entries[i], verifyData.ExpectedName, verifyData.ExpectedCrc32, verifyData.ExpectedLength, checkModificationDate: verifyData.CheckLastModificationTime);
                }
            }
        }
Exemplo n.º 12
0
        public void GZipMemberEntry_GetAllMemberEntriesFromFile_GetsMembersWithExpectedEntryNames(TestResource testResource)
        {
            IEnumerable <GZipMemberEntry> entries = null;
            string testResourcePath;

            using (testResource.ExtractToTemporaryFile(out testResourcePath))
                using (var stream = new FileStream(testResourcePath, FileMode.Open, FileAccess.Read))
                {
                    entries = GZipMemberEntry.GetMemberEntries(stream);
                }

            // .cfg file CRCs are zero because they are inconsistent based on line endings.
            // .luigi file CRCs are zero merely because they haven't been computed :P
            var expectedCrc32s = new[] { TestRomResources.TestBinCrc, 0u, 0u, TestRomResources.TestRomCrc };
            var expectedNames  = testResource.ArchiveContents.ToList();
            var i = 0;

            foreach (var entry in entries)
            {
                // Expected length is loosely checked -- any value indicates a > 0 check.
                VerifyGZipMemberEntry(entry, expectedNames[i], expectedCrc32s[i], expectedLength: 2, checkModificationDate: false, checkOffset: i > 0);
                ++i;
            }
        }
Exemplo n.º 13
0
 public void GZipMemberEntry_GetAllMemberEntriesWithNullStream_ThrowsNullReferenceException()
 {
     Assert.Throws <NullReferenceException>(() => GZipMemberEntry.GetMemberEntries(null));
 }
Exemplo n.º 14
0
 public void GZipMemberEntry_CreateEmptyEntryWithBadName_ThrowsArgumentException(string badName)
 {
     Assert.Throws <ArgumentException>(() => GZipMemberEntry.CreateEmptyEntry(badName));
 }