Example #1
0
        public void Delete()
        {
            var disk      = this.Fixture.Get <VirtualDisk>();
            var directory = this.Fixture.Get <VirtualDirectory>("common 1-1-1");
            DeleteVirtualDirectory cmd = DeleteVirtualDirectory.GetCommon(disk.Id, directory.Id);

            cmd.Execute();
            var obj = VirtualDirectoryCommon.FindById(directory.Id, QueryLevel.None);

            Assert.IsTrue(obj.IsEmpty());
        }
Example #2
0
        private void AssertDirectory(Guid id, string name)
        {
            DataPortal.Direct <VirtualDirectory>((conn) =>
            {
                var result = conn.QuerySingle("select name from dbo.virtualDirectory where id=@id", new { id });
                Assert.AreEqual(name, result.name);
            });

            var directory = VirtualDirectoryCommon.FindById(id, QueryLevel.Mirroring);

            //验证LR值
            var lr = GetLR(id);

            var childs = directory.Childs;

            if (childs.Count() == 0)
            {
                return;
            }
            if (childs.Count() == 1)
            {
                //子项只有一个节点时
                var child   = childs.First();
                var childLR = GetLR(child.Id);
                Assert.AreEqual(lr.Left + 1, childLR.Left);
                Assert.AreEqual(lr.Right - 1, childLR.Right);

                AssertDirectory(child.Id, child.Name);
            }
            else
            {
                //子项有多个节点时,父节点的左值+1等于第一个子节点的左值,父节点的右值-1等于最后一个节点的右值
                var first   = childs.First();
                var last    = childs.Last();
                var firstLR = GetLR(first.Id);
                var lastLR  = GetLR(last.Id);
                Assert.AreEqual(lr.Left + 1, firstLR.Left);
                Assert.AreEqual(lr.Right - 1, lastLR.Right);

                foreach (var child in childs)
                {
                    AssertDirectory(child.Id, child.Name);
                }
            }
        }