public async Task DIImportResultFilter_Test() { var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Errors", "数据错误.xlsx"); var labelingFilePath = Path.Combine(Directory.GetCurrentDirectory(), $"{nameof(DIImportResultFilter_Test)}.xlsx"); //DIImportResultFilterDataDto1未设置ImportResultFilter属性 var result = await Importer.Import <DIImportResultFilterDataDto1>(filePath, labelingFilePath); File.Exists(labelingFilePath).ShouldBeTrue(); result.ShouldNotBeNull(); result.HasError.ShouldBeTrue(); result.Exception.ShouldBeNull(); result.ImporterHeaderInfos.ShouldNotBeNull(); result.ImporterHeaderInfos.Count.ShouldBeGreaterThan(0); //由于同时注册多个筛选器,筛选器之间会相互影响 result.TemplateErrors.Count.ShouldBe(1); var errorRows = new List <int>() { 5, 6 }; result.RowErrors.ShouldContain(p => errorRows.Contains(p.RowIndex) && p.FieldErrors.ContainsKey("产品代码") && p.FieldErrors.Values.Contains("Duplicate data exists, please check! Where:5,6。")); //TODO:检查标注 }
public void Test_Should_Import_File() { string path = @"..\..\..\..\test.xlsx"; IEnumerable <TestExcelObject> result = _excelImporter.Import(path).ToList(); Assert.IsNotNull(result); }
public string Execute(IProductsSystemData data) { var sales = this.LoadSales(data); excelImporter.SalesToBeImported = sales; excelImporter.Import(data); return(EngineConstants.ExcelDataSuccessfullyImported); }
public async Task ImporterWithStream_Test() { //第一列乱序 var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "产品导入模板.xlsx"); using (var stream = new FileStream(filePath, FileMode.Open)) { var result = await Importer.Import <ImportProductDto>(stream); result.ShouldNotBeNull(); result.HasError.ShouldBeTrue(); result.RowErrors.Count.ShouldBe(1); result.Data.ShouldNotBeNull(); result.Data.Count.ShouldBeGreaterThanOrEqualTo(2); foreach (var item in result.Data) { if (item.Name != null && item.Name.Contains("空格测试")) { item.Name.ShouldBe(item.Name.Trim()); } if (item.Code.Contains("不去除空格测试")) { item.Code.ShouldContain(" "); } //去除中间空格测试 item.BarCode.ShouldBe("123123"); } //可为空类型测试 result.Data.ElementAt(4).Weight.HasValue.ShouldBe(true); result.Data.ElementAt(5).Weight.HasValue.ShouldBe(false); //提取性别公式测试 result.Data.ElementAt(0).Sex.ShouldBe("女"); //获取当前日期以及日期类型测试 如果时间不对,请打开对应的Excel即可更新为当前时间,然后再运行此单元测试 //import.Data[0].FormulaTest.Date.ShouldBe(DateTime.Now.Date); //数值测试 result.Data.ElementAt(0).DeclareValue.ShouldBe(123123); result.Data.ElementAt(0).Name.ShouldBe("1212"); result.Data.ElementAt(0).BarCode.ShouldBe("123123"); result.Data.ElementAt(0).ProductIdTest1.ShouldBe(Guid.Parse("C2EE3694-959A-4A87-BC8C-4003F6576352")); result.Data.ElementAt(0).ProductIdTest2.ShouldBe(Guid.Parse("C2EE3694-959A-4A87-BC8C-4003F6576357")); result.Data.ElementAt(1).Name.ShouldBe(null); result.Data.ElementAt(2).Name.ShouldBe("左侧空格测试"); result.ImporterHeaderInfos.ShouldNotBeNull(); result.ImporterHeaderInfos.Count.ShouldBe(17); } }
public async Task Importer_Test() { //第一列乱序 var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "产品导入模板.xlsx"); var import = await Importer.Import <ImportProductDto>(filePath); import.ShouldNotBeNull(); import.HasError.ShouldBeFalse(); import.Data.ShouldNotBeNull(); import.Data.Count.ShouldBeGreaterThanOrEqualTo(2); foreach (var item in import.Data) { if (item.Name.Contains("空格测试")) { item.Name.ShouldBe(item.Name.Trim()); } if (item.Code.Contains("不去除空格测试")) { item.Code.ShouldContain(" "); } //去除中间空格测试 item.BarCode.ShouldBe("123123"); } //可为空类型测试 import.Data.ElementAt(4).Weight.HasValue.ShouldBe(true); import.Data.ElementAt(5).Weight.HasValue.ShouldBe(false); //提取性别公式测试 import.Data.ElementAt(0).Sex.ShouldBe("女"); //获取当前日期以及日期类型测试 如果时间不对,请打开对应的Excel即可更新为当前时间,然后再运行此单元测试 //import.Data[0].FormulaTest.Date.ShouldBe(DateTime.Now.Date); //数值测试 import.Data.ElementAt(0).DeclareValue.ShouldBe(123123); import.Data.ElementAt(0).Name.ShouldBe("1212"); import.Data.ElementAt(0).BarCode.ShouldBe("123123"); import.Data.ElementAt(1).Name.ShouldBe("12312312"); import.Data.ElementAt(2).Name.ShouldBe("左侧空格测试"); }