150 lines
5.4 KiB
C#
150 lines
5.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|