public async Task BulkCreate_ExistTree_Test() { await UsingDbContextAsync(async context => { //Arrange context.Region.Add(new Region { Name = "hebei", FullName = "hebei", Code = "00001", Level = 1 }); await context.SaveChangesAsync(); context.Region.Add(new Region { Name = "shijiazhuang", FullName = "hebei-shijiazhuang", Code = "00001.00001", Level = 2, ParentId = 1 }); await context.SaveChangesAsync(); }); var chengde = new Region { Name = "chengde", ParentId = 1, Children = new List <Region> { new Region { Name = "shuangqiaoqu" }, new Region { Name = "shuangluanqu" } } }; await _generalRegionTreeManager.BulkCreateAsync(chengde); //Assert chengde = GetRegion("chengde"); chengde.ShouldNotBeNull(); chengde.Name.ShouldBe("chengde"); chengde.FullName.ShouldBe("hebei-chengde"); chengde.Code.ShouldBe(_generalTreeCodeGenerate.CreateCode(1, 2)); chengde.Level.ShouldBe(2); chengde.ParentId.ShouldBe(1); var shuangqiaoqu = GetRegion("shuangqiaoqu"); shuangqiaoqu.ShouldNotBeNull(); shuangqiaoqu.Name.ShouldBe("shuangqiaoqu"); shuangqiaoqu.FullName.ShouldBe("hebei-chengde-shuangqiaoqu"); shuangqiaoqu.Code.ShouldBe(_generalTreeCodeGenerate.CreateCode(1, 2, 1)); shuangqiaoqu.Level.ShouldBe(chengde.Level + 1); shuangqiaoqu.ParentId.ShouldBe(chengde.Id); var shuangluanqu = GetRegion("shuangluanqu"); shuangluanqu.ShouldNotBeNull(); shuangluanqu.Name.ShouldBe("shuangluanqu"); shuangluanqu.FullName.ShouldBe("hebei-chengde-shuangluanqu"); shuangluanqu.Code.ShouldBe(_generalTreeCodeGenerate.CreateCode(1, 2, 2)); shuangluanqu.Level.ShouldBe(chengde.Level + 1); shuangluanqu.ParentId.ShouldBe(chengde.Id); }
public async Task BulkCreate_Test() { //Act var beijing = new Region(Guid.NewGuid()) { Name = "beijing" }; var xicheng = new Region(Guid.NewGuid()) { Name = "xicheng", ParentId = beijing.Id }; var xicheng_x = new Region(Guid.NewGuid()) { Name = "xicheng_x", ParentId = xicheng.Id }; var xicheng_y = new Region(Guid.NewGuid()) { Name = "xicheng_y", ParentId = xicheng.Id }; xicheng.Children = new List <Region> { xicheng_x, xicheng_y }; beijing.Children = new List <Region> { xicheng, new Region(Guid.NewGuid()) { Name = "dongcheng", ParentId = beijing.Id } }; await _generalTreeManager.BulkCreateAsync(beijing); //Assert var bj = await GetRegion("beijing"); bj.ShouldNotBeNull(); bj.Name.ShouldBe("beijing"); bj.FullName.ShouldBe("beijing"); bj.Code.ShouldBe(_generalTreeCodeGenerator.CreateCode(1)); bj.Level.ShouldBe(1); bj.ParentId.ShouldBeNull(); var xc = await GetRegion("xicheng"); xc.ShouldNotBeNull(); xc.Name.ShouldBe("xicheng"); xc.FullName.ShouldBe("beijing-xicheng"); xc.Code.ShouldBe(_generalTreeCodeGenerator.CreateCode(1, 1)); xc.Level.ShouldBe(beijing.Level + 1); xc.ParentId.ShouldBe(beijing.Id); var xc_x = await GetRegion("xicheng_x"); xc_x.ShouldNotBeNull(); xc_x.Name.ShouldBe("xicheng_x"); xc_x.FullName.ShouldBe("beijing-xicheng-xicheng_x"); xc_x.Code.ShouldBe(_generalTreeCodeGenerator.CreateCode(1, 1, 1)); xc_x.Level.ShouldBe(xc.Level + 1); xc_x.ParentId.ShouldBe(xc.Id); var dc = await GetRegion("dongcheng"); dc.ShouldNotBeNull(); dc.Name.ShouldBe("dongcheng"); dc.FullName.ShouldBe("beijing-dongcheng"); dc.Code.ShouldBe(_generalTreeCodeGenerator.CreateCode(1, 2)); dc.Level.ShouldBe(beijing.Level + 1); dc.ParentId.ShouldBe(beijing.Id); }