using ICSharpCode.SharpZipLib.Zip; using YLErp.Modules.ApiModule.ExportModule; namespace YLErp.Modules.ApiModule { [TestClass] public class TestOtcTradeContractDocExportService { [TestMethod] public void TestGetZipFileOfOpenDocs() { OtcAppContext.Initialize(s => { var s2 = s.Trim('/').Replace("/", "\\"); return @"d:\\" + s2; }); var service = new OtcTradeContractDocExportService(OptUserInfo.SystemUser); var req1 = new OtcTradeContractOpenDocExportRequest { OpenDateRangeStart = new DateTime(2022, 9, 9), OpenDateRangeEnd = new DateTime(2022, 9, 19), TradeStatus = new[] { "确认成交" } }; var zipBuffer1 = service.GetZipFileOfOpenDocs(req1, out var infos1); using (var mstream = new MemoryStream(zipBuffer1)) using (var s = new ZipInputStream(mstream)) { ZipEntry theEntry; var count = 0; while ((theEntry = s.GetNextEntry()) != null) { count++; var fileName = Path.GetFileName(theEntry.Name); if (fileName == string.Empty) { continue; } using (var streamWriter = File.Create(@"D:\temp\unittest\" + theEntry.Name)) { var size = 2048; var data = new byte[2048]; while (true) { size = s.Read(data, 0, data.Length); if (size > 0) { streamWriter.Write(data, 0, size); } else { break; } } } var json = File.ReadAllText(@"D:\temp\unittest\info.txt"); var ddd = Newtonsoft.Json.Linq.JArray.Parse(json); } Assert.AreEqual(infos1.Length, 52); } var req2 = new OtcTradeContractOpenDocExportRequest { OpenDateRangeStart = new DateTime(2022, 9, 9), OpenDateRangeEnd = new DateTime(2022, 9, 19), TradeStatus = new[] { "确认成交" }, TradeNumbers = new[] { "ZQZ0084-202209150007", "CW20180051-JY-2022091312" } }; var zipBuffer2 = service.GetZipFileOfOpenDocs(req2, out var infos2); File.WriteAllBytes(@"D:\temp\unittest\open_req2.zip", zipBuffer2); Assert.AreEqual(infos2.Length, 2); } [TestMethod] public void TestGetZipFileOfCloseDocs() { OtcAppContext.Initialize(s => { var s2 = s.Trim('/').Replace("/", "\\"); return @"d:\\" + s2; }); var service = new OtcTradeContractDocExportService(OptUserInfo.SystemUser); var req1 = new OtcTradeContractCloseDocExportRequest { CloseDateRangeStart = new DateTime(2022, 9, 1), CloseDateRangeEnd = new DateTime(2022, 9, 19), }; var zipBuffer1 = service.GetZipFileOfCloseDocs(req1, out var infos1); using (var mstream = new MemoryStream(zipBuffer1)) using (var s = new ZipInputStream(mstream)) { ZipEntry theEntry; var count = 0; while ((theEntry = s.GetNextEntry()) != null) { count++; var fileName = Path.GetFileName(theEntry.Name); if (fileName == string.Empty) { continue; } using (var streamWriter = File.Create(@"D:\temp\unittest\" + theEntry.Name)) { var size = 2048; var data = new byte[2048]; while (true) { size = s.Read(data, 0, data.Length); if (size > 0) { streamWriter.Write(data, 0, size); } else { break; } } } var json = File.ReadAllText(@"D:\temp\unittest\info.txt"); var ddd = Newtonsoft.Json.Linq.JArray.Parse(json); } Assert.AreEqual(infos1.Length, 18); } var req2 = new OtcTradeContractCloseDocExportRequest { CloseDateRangeStart = new DateTime(2022, 9, 1), CloseDateRangeEnd = new DateTime(2022, 9, 19), TradeNumbers = new[] { "CW20221208-202209150004", "CW20221208-202209150005" } }; var zipBuffer2 = service.GetZipFileOfCloseDocs(req2, out var infos2); File.WriteAllBytes(@"D:\temp\unittest\close_req2.zip", zipBuffer2); Assert.AreEqual(infos2.Length, 2); } } }