Esempio n. 1
0
        public async Task MoveAfterAsync()
        {
            //Act
            var beijing = await CreateRegion("beijing");

            await CreateRegion("dongcheng", beijing.Id);

            var xicheng = await CreateRegion("xicheng", beijing.Id);

            var hebei = await CreateRegion("hebei");

            await CreateRegion("shijiazhuang", hebei.Id);

            var chengde = await CreateRegion("chengde", hebei.Id);

            await CreateRegion("shaungqiao", chengde.Id);
            await CreateRegion("shaungluan", chengde.Id);

            await _generalTreeManager.MoveAfterAsync(chengde.Id, xicheng.Id);

            //Assert
            var cd = await GetRegion(chengde.Name);

            cd.ShouldNotBeNull();
            cd.FullName.ShouldBe(beijing.FullName + "-" + chengde.Name);
            cd.ParentId.ShouldBe(beijing.Id);
            cd.Level.ShouldBe(beijing.Level + 1);
            cd.Code.ShouldBe(xicheng.Code);

            xicheng = await GetRegion("xicheng");

            xicheng.ShouldNotBeNull();
            xicheng.FullName.ShouldBe(beijing.FullName + "-" + xicheng.Name);
            xicheng.ParentId.ShouldBe(beijing.Id);
            xicheng.Level.ShouldBe(beijing.Level + 1);
            xicheng.Code.ShouldBe(_generalTreeCodeGenerator.GetNextCode(cd.Code));

            var shaungqiao = await GetRegion("shaungqiao");

            shaungqiao.ShouldNotBeNull();
            shaungqiao.FullName.ShouldBe(cd.FullName + "-" + shaungqiao.Name);
            shaungqiao.ParentId.ShouldBe(cd.Id);
            shaungqiao.Level.ShouldBe(cd.Level + 1);
            shaungqiao.Code.ShouldBe(_generalTreeCodeGenerator.MergeCode(cd.Code, _generalTreeCodeGenerator.GetLastCode(shaungqiao.Code)));
        }