public void GZipMemberEntry_InflateStreamWithCorruptFlags_ThrowsInvalidOperationException() { using (var stream = CreateCorruptedGZipStream(TestResource.TagalongCfgGZip, CorruptReservedBitsOffset)) { Assert.Throws <InvalidOperationException>(() => GZipMemberEntry.Inflate(stream)); } }
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); }
public void GZipMemberEntry_Serialize_ThrowsNotSupportedException() { var bogusEntry = new GZipMemberEntry(); INTV.Core.Utility.BinaryWriter bogusWriter = null; Assert.Throws <NotSupportedException>(() => bogusEntry.Serialize(bogusWriter)); }
public void GZipMemberEntry_CreateEmpty_CreatesEntryWithGivenName() { var name = "whee"; var entry = GZipMemberEntry.CreateEmptyEntry(name); Assert.NotNull(entry); Assert.Equal(name, entry.Name); }
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_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); } }
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)); }
public void GZipMemberEntry_CreateEmptyEntryWithBadName_ThrowsArgumentException(string badName) { Assert.Throws <ArgumentException>(() => GZipMemberEntry.CreateEmptyEntry(badName)); }