public void GZipMemberEntry_GetAllMemberEntriesFromStreamContainingOneGZipWithMaxLimitFour_GetsOneEntry() { using (var stream = TestResource.TagalongCfgGZip.OpenResourceForReading()) { var entries = GZipMemberEntry.GetMemberEntries(stream, maxNumberOfEntries: 4).ToList(); Assert.Equal(1, entries.Count); } }
public void GZipMemberEntry_GetAllMemberEntriesFromStreamContainingTwoConcatenatedGZipsWithMaxLimitThree_GetsTwoEntries() { using (var stream = TestResource.TagalongBinCfgNYGZip.OpenResourceForReading()) { var entries = GZipMemberEntry.GetMemberEntries(stream, maxNumberOfEntries: 3).ToList(); Assert.Equal(2, entries.Count); } }
public void GZipMemberEntry_GetAllMemberEntriesFromStreamContainingConcatenatedGZipsWithMaxLimitZero_GetsZeroEntries() { using (var stream = TestResource.TagalongBCLRNYNYGZip.OpenResourceForReading()) { var entries = GZipMemberEntry.GetMemberEntries(stream, maxNumberOfEntries: 0); Assert.False(entries.Any()); } }
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); } }
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); } }
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); } } }
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; } }
public void GZipMemberEntry_GetAllMemberEntriesWithNullStream_ThrowsNullReferenceException() { Assert.Throws <NullReferenceException>(() => GZipMemberEntry.GetMemberEntries(null)); }