public Task WriteAsync(Stream stream, IMS2FileHeader fileHeader) { using var bw = new BinaryWriter(stream, Encoding.ASCII, true); bw.Write((uint)fileHeader.CompressionType); bw.Write(fileHeader.Id); bw.Write((uint)fileHeader.Size.EncodedSize); bw.Write(fileHeader.Size.CompressedSize); bw.Write(fileHeader.Size.Size); bw.Write(fileHeader.Offset); return(Task.CompletedTask); }
public async Task Save_OneFileToFile_FileDataHeaderEqualsExpected() { const string FileName = nameof(Save_OneFileToFile_FileDataHeaderEqualsExpected); string headerPath = FileName + HeaderFileExtension; string dataPath = FileName + DataFileExtension; string input = "inputdata123" + nameof(Save_OneFileToFile_FileDataHeaderEqualsExpected); string encryptedInput = "encrypteddata654" + nameof(Save_OneFileToFile_FileDataHeaderEqualsExpected); var sizeMock = CreateSizeMock(1, 20, 8); MS2CryptoMode expectedCryptoMode = (MS2CryptoMode)12345; IMS2ArchiveCryptoRepository repo = new FakeCryptoRepository(expectedCryptoMode, EncodingTest, input, encryptedInput, sizeMock.Object); IMS2FileHeader expectedFileData = await repo.GetFileHeaderCrypto().ReadAsync(StringToStream(input)); var archive = new MS2Archive(repo); AddDataStringToArchive(archive, input, encryptedInput, sizeMock, 1, "singlefile", CompressionType.Zlib); await archive.SaveAsync(headerPath, dataPath); using var fsHeader = File.OpenRead(headerPath); using var br = new BinaryReader(fsHeader, EncodingTest, true); MS2CryptoMode actualCryptoMode = (MS2CryptoMode)br.ReadUInt32(); var(actualFileInfoSize, actualFileDataSize, actualFileCount) = await repo.GetArchiveHeaderCrypto().ReadAsync(fsHeader); var msFileInfo = await repo.GetDecryptionStreamAsync(fsHeader, actualFileInfoSize, true); var msFileData = await repo.GetDecryptionStreamAsync(fsHeader, actualFileDataSize, true); IMS2FileHeader actualFileData = await repo.GetFileHeaderCrypto().ReadAsync(msFileData); Assert.AreEqual(expectedFileData.Id, actualFileData.Id); Assert.AreEqual(expectedFileData.Offset, actualFileData.Offset); Assert.AreEqual(expectedFileData.CompressionType, actualFileData.CompressionType); Assert.AreEqual(expectedFileData.Size.EncodedSize, actualFileData.Size.EncodedSize); Assert.AreEqual(expectedFileData.Size.CompressedSize, actualFileData.Size.CompressedSize); Assert.AreEqual(expectedFileData.Size.Size, actualFileData.Size.Size); }
bool IEquatable <IMS2FileHeader> .Equals(IMS2FileHeader other) { return(this.Equals(other as MS2FileHeader)); }