Exemple #1
0
        public void Versioning_LostVersions_AllNodesAreExist()
        {
            //-- Preparing
            //var gcontents = (from i in  Enumerable.Repeat(typeof(int), 5) select (GenericContent)Content.CreateNew("Car", TestRoot, "car").ContentHandler).ToArray();
            //var ids = gcontents.Select(i =>
            //{
            //    var c = (GenericContent)Content.CreateNew("Car", TestRoot, "car").ContentHandler;
            //    c.ApprovingMode = ApprovingType.False;
            //    c.VersioningMode = VersioningType.None;
            //    c.Save();
            //    return c;
            //}).Select(c => c.Id).ToArray();
            //gcontents = Node.LoadNodes(ids).Cast<GenericContent>().ToArray();
            //var versionids = gcontents.Select(c => c.VersionId).ToArray();

            var gcontents  = new GenericContent[5];
            var ids        = new int[5];
            var versionids = new int[5];

            for (int i = 0; i < gcontents.Length; i++)
            {
                var c = (GenericContent)Content.CreateNew("Car", TestRoot, "car").ContentHandler;
                c.ApprovingMode  = ApprovingType.False;
                c.VersioningMode = VersioningType.None;
                c.Save();

                gcontents[i]  = c;
                ids[i]        = c.Id;
                versionids[i] = c.VersionId;
            }

            //-- Thread #1
            gcontents[1].CheckOut();
            gcontents[3].CheckOut();

            //-- Thread #2
            var heads = DataBackingStore.GetNodeHeads(ids);

            //-- Thread #1
            gcontents[1].CheckIn();
            gcontents[3].CheckIn();

            //-- Thread #2
            var nodes = LoadNodes(heads, VersionNumber.LastAccessible);
            var v2    = nodes.Select(c => c.VersionId).ToArray();

            Assert.IsTrue(versionids.Except(v2).Count() == 0);
        }
        public void Versioning_LostVersions_TwoNodesAreDeleted()
        {
            Test(() =>
            {
                //-- Preparing
                var root      = CreateTestRoot();
                var gcontents = Enumerable.Repeat(typeof(int), 5).Select((x) =>
                {
                    var file            = CreateTestFile(root, null, false);
                    file.ApprovingMode  = ApprovingType.False;
                    file.VersioningMode = VersioningType.None;
                    file.Save();
                    return(file);
                }).ToArray();
                var ids = gcontents.Select(c => c.Id).ToArray();
                // reload
                gcontents      = Node.LoadNodes(ids).Cast <File>().ToArray();
                var versionids = gcontents.Select(c => c.VersionId).ToArray();

                //-- Thread #1
                gcontents[1].CheckOut();
                gcontents[3].CheckOut();

                //-- Thread #2
                var heads = DataBackingStore.GetNodeHeads(ids);

                //-- Thread #1
                gcontents[1].CheckIn();
                gcontents[3].ForceDelete();
                gcontents[2].ForceDelete();

                //-- Thread #2
                var nodes = LoadNodes(heads, VersionNumber.LastAccessible);
                var v2    = nodes.Select(c => c.VersionId).ToArray();

                var diff = versionids.Except(v2).ToArray();
                Assert.IsTrue(diff.Count() == 2);
                Assert.IsTrue(diff.Contains(versionids[2]));
                Assert.IsTrue(diff.Contains(versionids[3]));
            });
        }
Exemple #3
0
        public void Versioning_LostVersions_TwoNodesAreDeleted()
        {
            //-- Preparing
            var gcontents = (from i in Enumerable.Repeat(typeof(int), 5) select(GenericContent) Content.CreateNew("Car", TestRoot, "car").ContentHandler).ToArray();
            var ids       = gcontents.Select(i =>
            {
                var c            = (GenericContent)Content.CreateNew("Car", TestRoot, "car").ContentHandler;
                c.ApprovingMode  = ApprovingType.False;
                c.VersioningMode = VersioningType.None;
                c.Save();
                return(c);
            }).Select(c => c.Id).ToArray();

            gcontents = Node.LoadNodes(ids).Cast <GenericContent>().ToArray();
            var versionids = gcontents.Select(c => c.VersionId).ToArray();

            //-- Thread #1
            gcontents[1].CheckOut();
            gcontents[3].CheckOut();

            //-- Thread #2
            var heads = DataBackingStore.GetNodeHeads(ids);

            //-- Thread #1
            gcontents[1].CheckIn();
            gcontents[3].ForceDelete();
            gcontents[2].ForceDelete();

            //-- Thread #2
            var nodes = LoadNodes(heads, VersionNumber.LastAccessible);
            var v2    = nodes.Select(c => c.VersionId).ToArray();

            var diff = versionids.Except(v2);

            Assert.IsTrue(diff.Count() == 2);
            Assert.IsTrue(diff.Contains(versionids[2]));
            Assert.IsTrue(diff.Contains(versionids[3]));
        }
        public void Versioning_LostVersions_AllNodesAreExist()
        {
            Test(() =>
            {
                var files      = new File[5];
                var ids        = new int[5];
                var versionids = new int[5];
                var root       = CreateTestRoot();
                for (int i = 0; i < files.Length; i++)
                {
                    var file            = CreateTestFile(save: false, parent: root);
                    file.ApprovingMode  = ApprovingType.False;
                    file.VersioningMode = VersioningType.None;
                    file.Save();

                    files[i]      = file;
                    ids[i]        = file.Id;
                    versionids[i] = file.VersionId;
                }

                //-- Thread #1
                files[1].CheckOut();
                files[3].CheckOut();

                //-- Thread #2
                var heads = DataBackingStore.GetNodeHeads(ids);

                //-- Thread #1
                files[1].CheckIn();
                files[3].CheckIn();

                //-- Thread #2
                var nodes = LoadNodes(heads, VersionNumber.LastAccessible);
                var v2    = nodes.Select(c => c.VersionId).ToArray();

                Assert.IsTrue(!versionids.Except(v2).Any());
            });
        }