Beispiel #1
0
        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:检查标注
        }
Beispiel #2
0
        public void Test_Should_Import_File()
        {
            string path = @"..\..\..\..\test.xlsx";

            IEnumerable <TestExcelObject> result = _excelImporter.Import(path).ToList();

            Assert.IsNotNull(result);
        }
Beispiel #3
0
        public string Execute(IProductsSystemData data)
        {
            var sales = this.LoadSales(data);

            excelImporter.SalesToBeImported = sales;
            excelImporter.Import(data);

            return(EngineConstants.ExcelDataSuccessfullyImported);
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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("左侧空格测试");
        }