public async Task Save_ThreeFilesCompressedToFile_DataEqualsExpected()
        {
            const string  FileName           = nameof(Save_ThreeFilesToFile_DataEqualsExpected);
            string        headerPath         = FileName + HeaderFileExtension;
            string        dataPath           = FileName + DataFileExtension;
            string        input              = "inputdata123" + nameof(Save_ThreeFilesToFile_DataEqualsExpected);
            string        encryptedInput     = "encrypteddata654" + nameof(Save_ThreeFilesToFile_DataEqualsExpected);
            var           sbExpected         = new StringBuilder();
            var           sizeMock           = CreateSizeMock(20, 30, 40);
            MS2CryptoMode cryptoMode         = (MS2CryptoMode)12345;
            IMS2ArchiveCryptoRepository repo = new FakeCryptoRepository(cryptoMode, EncodingTest, input, encryptedInput, sizeMock.Object);
            const int fileCount              = 3;

            var archive = MS2Archive.GetArchiveMS2F();

            for (uint i = 1; i <= fileCount; i++)
            {
                sbExpected.Append(input);
                AddDataStringToArchive(archive, input, encryptedInput, sizeMock, i, "file" + i, CompressionType.Zlib);
            }
            await archive.SaveAsync(headerPath, dataPath);

            using var fsData = File.OpenRead(dataPath);
            StringBuilder sbActual = new StringBuilder();

            for (uint i = 1; i <= fileCount; i++)
            {
                string actual = await StreamToString(await repo.GetDecryptionStreamAsync(fsData, sizeMock.Object, false));

                sbActual.Append(actual);
            }
            Assert.AreEqual(sbExpected.ToString(), sbActual.ToString());
        }
Example #2
0
 private static IMS2Archive CreateArchiveMS2F() => MS2Archive.GetArchiveMS2F();