public async Task TestGetTransactionLogXmlAsync_ArchiveDoesNotHaveFile()
        {
            using (ShimsContext.Create())
            {
                var transactionLog = new TransactionLogType();
                var xml            = GetXml(transactionLog);

                var xmlTransactionLogFileName = "transaction_log.xml";
                var zipFileName = String.Format("{0}", xmlTransactionLogFileName);


                var entries         = new List <ZipArchiveEntry>();
                var readonlyEntries = new ReadOnlyCollection <ZipArchiveEntry>(entries);

                var zipArchive = new System.IO.Compression.Fakes.ShimZipArchive
                {
                    EntriesGet = () => readonlyEntries
                };

                var archiveHandler = new SevisBatchZipArchiveHandler(zipArchive, xmlTransactionLogFileName);
                var testXml        = await archiveHandler.GetTransactionLogXmlAsync();

                Assert.IsNull(testXml);
            }
        }
        public async Task TestGetTransactionLogXmlAsync_ArchiveHasFile()
        {
            using (ShimsContext.Create())
            {
                var transactionLog = new TransactionLogType();
                var xml            = GetXml(transactionLog);

                var xmlTransactionLogFileName = "transaction_log.xml";
                var zipFileName = String.Format("{0}", xmlTransactionLogFileName);
                var entry       = new System.IO.Compression.Fakes.ShimZipArchiveEntry
                {
                    NameGet = () => zipFileName,
                    Open    = () =>
                    {
                        var stream = new MemoryStream();
                        var writer = new StreamWriter(stream, Encoding.Unicode);
                        writer.Write(xml);
                        writer.Flush();
                        stream.Seek(0, SeekOrigin.Begin);
                        return(stream);
                    }
                };

                var entries = new List <ZipArchiveEntry>();
                entries.Add(entry);
                var readonlyEntries = new ReadOnlyCollection <ZipArchiveEntry>(entries);

                var zipArchive = new System.IO.Compression.Fakes.ShimZipArchive
                {
                    EntriesGet = () => readonlyEntries
                };

                var archiveHandler = new SevisBatchZipArchiveHandler(zipArchive, xmlTransactionLogFileName);
                var testXml        = await archiveHandler.GetTransactionLogXmlAsync();

                Assert.AreEqual(xml, testXml);
            }
        }