Esempio n. 1
0
        public void GetChildren_ReturnsExpectedItems_WhenMultipleMatchesExist_ThroughSeparateParents()
        {
            using (var testTree = new TestSfsTree())
            {
                const string treePath = "/sitecore/templates/User Defined";

                testTree.CreateTestTree(treePath);

                var testItem = testTree.GetItemsByPath("/sitecore/templates");

                var templates1 = testItem.First();

                // add a second Templates item
                var templates2 = "/sitecore/templates".AsTestItem(templates1.ParentId);
                testTree.Save(templates2);

                // add a child under the second templates item, giving us '/sitecore/templates/User Defined' under templates1, and '/sitecore/templates/Evil' under templates2
                // P.S. don't actually do this in real life. Please? But I'm testing it, because I'm an effing pedant :)
                testTree.Save("/sitecore/templates/Evil".AsTestItem(templates2.Id));

                // get the children of templates1, which should NOT include templates2's child
                var results = testTree.GetChildren(templates1).ToArray();

                Assert.Equal(1, results.Length);
                Assert.Equal("User Defined", results[0].Name);
            }
        }
        public void GetItemsByPath_ReturnsExpectedItems_WhenChildPathIsRequested_AndMultipleMatchesExist_ThroughSeparateParents()
        {
            using (var testTree = new TestSfsTree())
            {
                const string treePath = "/sitecore/templates/User Defined";

                testTree.CreateTestTree(treePath);

                var testItem = testTree.GetItemsByPath("/sitecore/templates");

                var templates1 = testItem.First();

                // add a second Templates item
                var templates2 = "/sitecore/templates".AsTestItem(templates1.ParentId);
                testTree.Save(templates2);

                // add a child under the second templates item, giving us '/sitecore/templates/User Defined' under templates1, and '/sitecore/templates/Evil' under templates2
                // P.S. don't actually do this in real life. Please? But I'm testing it, because I'm an effing pedant :)
                testTree.Save("/sitecore/templates/Evil".AsTestItem(templates2.Id));

                var results = testTree.GetItemsByPath("/sitecore/templates").ToArray();

                Assert.Equal(2, results.Length);
                Assert.NotEqual(results[0].Id, results[1].Id);
                Assert.NotEqual(results[0].SerializedItemId, results[1].SerializedItemId);
                Assert.True(results.Any(result => result.Id == templates1.Id));
                Assert.True(results.Any(result => result.Id == templates2.Id));
            }
        }
Esempio n. 3
0
        public void GetChildren_ReturnsExpectedItems_WhenNameTruncationCausesSimilarNames()
        {
            using (var testTree = new TestSfsTree())
            {
                testTree.MaxFileNameLengthForTests = 10;

                const string treePath = "/sitecore/templates";
                testTree.CreateTestTree(treePath);

                var testItem = testTree.GetItemsByPath(treePath).First();

                var multilist           = "/sitecore/templates/Multilist".AsTestItem(testItem.Id);
                var multilistWithSearch = "/sitecore/templates/Multilist with Search".AsTestItem(testItem.Id);

                var multilistChild           = "/sitecore/templates/Multilist/Menu".AsTestItem(multilist.Id);
                var multilistWithSearchChild = "/sitecore/templates/Multilist with Search/Menu".AsTestItem(multilistWithSearch.Id);

                testTree.Save(multilist);
                testTree.Save(multilistWithSearch);
                testTree.Save(multilistChild);
                testTree.Save(multilistWithSearchChild);

                // now we'll have "Multilist.yml" and "Multilist .yml" - make sure we get the right children from each

                // get the children of the root, which should include the two same named items
                var multilistChildren           = testTree.GetChildren(multilist).ToArray();
                var multilistWithSearchChildren = testTree.GetChildren(multilistWithSearch).ToArray();

                Assert.Equal(1, multilistChildren.Length);
                Assert.Equal(multilistChild.Id, multilistChildren.First().Id);
                Assert.Equal(1, multilistWithSearchChildren.Length);
                Assert.Equal(multilistWithSearchChild.Id, multilistWithSearchChildren.First().Id);
            }
        }
        public void GetChildren_ReturnsExpectedItems_WhenMultipleMatchesExist_ThroughSeparateParents()
        {
            using (var testTree = new TestSfsTree())
            {
                const string treePath = "/sitecore/templates/User Defined";

                CreateTestTree(treePath, testTree);

                var testItem = testTree.GetItemsByPath("/sitecore/templates");

                var templates1 = testItem.First();

                // add a second Templates item
                var templates2 = CreateTestItem("/sitecore/templates", templates1.ParentId);
                testTree.Save(templates2);

                // add a child under the second templates item, giving us '/sitecore/templates/User Defined' under templates1, and '/sitecore/templates/Evil' under templates2
                // P.S. don't actually do this in real life. Please? But I'm testing it, because I'm an effing pedant :)
                testTree.Save(CreateTestItem("/sitecore/templates/Evil", templates2.Id));

                // get the children of templates1, which should NOT include templates2's child
                var results = testTree.GetChildren(templates1).ToArray();

                Assert.Equal(1, results.Length);
                Assert.Equal("User Defined", results[0].Name);
            }
        }
        public void GetItemByPath_GetsExpectedItem_WhenItemNameIsTooLong_AndItemsWithSameShortenedNameExist()
        {
            using (var testTree = new TestSfsTree())
            {
                // force the tree to shorten after 10 char names
                testTree.MaxFileNameLengthForTests = 10;
                testTree.CreateTestTree("/sitecore/hello hello");

                testTree.Save("/sitecore/hello hello hello".AsTestItem(testTree.GetRootItem().Id));

                var overlengthItem = testTree.GetItemsByPath("/sitecore/hello hello").ToArray();

                Assert.Equal(1, overlengthItem.Length);
                Assert.Equal("/sitecore/hello hello", overlengthItem.First().Path);
            }
        }
        public void GetItemByPath_GetsExpectedItem_WhenItemNameIsTooLong_AndItemsWithSameShortenedNameExist()
        {
            using (var testTree = new TestSfsTree())
            {
                // force the tree to shorten after 10 char names
                testTree.MaxFileNameLengthForTests = 10;
                CreateTestTree("/sitecore/hello hello", testTree);

                testTree.Save(CreateTestItem("/sitecore/hello hello hello", testTree.GetRootItem().Id));

                var overlengthItem = testTree.GetItemsByPath("/sitecore/hello hello").ToArray();

                Assert.Equal(1, overlengthItem.Count());
                Assert.Equal("/sitecore/hello hello", overlengthItem.First().Path);
            }
        }
        public void Save_WritesExpectedItems_WhenItemNameIsTooLong_AndItemsWithSameShortenedNameExist()
        {
            using (var testTree = new TestSfsTree())
            {
                // force the tree to shorten after 10 char names
                testTree.MaxFileNameLengthForTests = 10;
                testTree.CreateTestTree("/sitecore/hello hello");

                testTree.Save("/sitecore/hello hello hello".AsTestItem(testTree.GetRootItem().Id));

                var overlengthItems = testTree.GetChildren(testTree.GetRootItem()).OrderBy(i => i.SerializedItemId).ToArray();

                Assert.Equal(2, overlengthItems.Length);
                Assert.Equal("/sitecore/hello hello", overlengthItems[0].Path);
                Assert.EndsWith("hello hell.yml", overlengthItems[0].SerializedItemId);
                Assert.Equal("/sitecore/hello hello hello", overlengthItems[1].Path);
                Assert.EndsWith("hello hell_" + overlengthItems[1].Id + ".yml", overlengthItems[1].SerializedItemId);
            }
        }
Esempio n. 8
0
        public void Save_WritesExpectedItems_WhenItemsWithSameNamePrefixExist()
        {
            using (var testTree = new TestSfsTree())
            {
                // longer name first
                CreateTestTree("/sitecore/Html Editor Drop Down Button", testTree);

                // shorter name second - name is unique, but has same prefix as longer
                testTree.Save(CreateTestItem("/sitecore/Html Editor Drop Down", testTree.GetRootItem().Id));

                var children = testTree.GetChildren(testTree.GetRootItem()).OrderBy(i => i.SerializedItemId).ToArray();

                Assert.Equal(2, children.Length);
                Assert.Equal("/sitecore/Html Editor Drop Down Button", children[0].Path);
                Assert.EndsWith("Html Editor Drop Down Button.yml", children[0].SerializedItemId);
                Assert.Equal(children[1].Path, "/sitecore/Html Editor Drop Down");
                Assert.EndsWith("Html Editor Drop Down.yml", children[1].SerializedItemId);
            }
        }
        public void GetItemsByPath_ReturnsExpectedItems_WhenChildPathIsRequested_AndMultipleMatchesExist()
        {
            using (var testTree = new TestSfsTree())
            {
                const string treePath = "/sitecore/templates/User Defined";
                testTree.CreateTestTree(treePath);

                var testItem = testTree.GetItemsByPath(treePath);

                // add a second User Defined item
                testTree.Save(treePath.AsTestItem(testItem.First().ParentId));

                var results = testTree.GetItemsByPath(treePath).ToArray();

                Assert.Equal(2, results.Length);
                Assert.NotEqual(results[0].Id, results[1].Id);
                Assert.NotEqual(results[0].SerializedItemId, results[1].SerializedItemId);
            }
        }
Esempio n. 10
0
        public void Save_WritesExpectedItems_WhenItemsWithSameNamePrefixExist()
        {
            using (var testTree = new TestSfsTree())
            {
                // longer name first
                testTree.CreateTestTree("/sitecore/Html Editor Drop Down Button");

                // shorter name second - name is unique, but has same prefix as longer
                testTree.Save("/sitecore/Html Editor Drop Down".AsTestItem(testTree.GetRootItem().Id));

                var children = testTree.GetChildren(testTree.GetRootItem()).OrderBy(i => i.SerializedItemId).ToArray();

                Assert.Equal(2, children.Length);
                Assert.Equal("/sitecore/Html Editor Drop Down Button", children[0].Path);
                Assert.EndsWith("Html Editor Drop Down Button.yml", children[0].SerializedItemId);
                Assert.Equal(children[1].Path, "/sitecore/Html Editor Drop Down");
                Assert.EndsWith("Html Editor Drop Down.yml", children[1].SerializedItemId);
            }
        }
Esempio n. 11
0
        public void Save_WritesExpectedItems_WhenItemNameIsTooLong_AndItemsWithSameShortenedNameExist()
        {
            using (var testTree = new TestSfsTree())
            {
                // force the tree to shorten after 10 char names
                testTree.MaxFileNameLengthForTests = 10;
                CreateTestTree("/sitecore/hello hello", testTree);

                testTree.Save(CreateTestItem("/sitecore/hello hello hello", testTree.GetRootItem().Id));

                var overlengthItems = testTree.GetChildren(testTree.GetRootItem()).OrderBy(i => i.SerializedItemId).ToArray();

                Assert.Equal(2, overlengthItems.Length);
                Assert.Equal("/sitecore/hello hello", overlengthItems[0].Path);
                Assert.EndsWith("hello hell.yml", overlengthItems[0].SerializedItemId);
                Assert.Equal("/sitecore/hello hello hello", overlengthItems[1].Path);
                Assert.EndsWith("hello hell_" + overlengthItems[1].Id + ".yml", overlengthItems[1].SerializedItemId);
            }
        }
        public void GetItemsByPath_ReturnsExpectedItems_WhenChildPathIsRequested_AndMultipleMatchesExist()
        {
            using (var testTree = new TestSfsTree())
            {
                const string treePath = "/sitecore/templates/User Defined";
                CreateTestTree(treePath, testTree);

                var testItem = testTree.GetItemsByPath(treePath);

                // add a second User Defined item
                testTree.Save(CreateTestItem(treePath, testItem.First().ParentId));

                var results = testTree.GetItemsByPath(treePath).ToArray();

                Assert.Equal(2, results.Length);
                Assert.NotEqual(results[0].Id, results[1].Id);
                Assert.NotEqual(results[0].SerializedItemId, results[1].SerializedItemId);
            }
        }
Esempio n. 13
0
        public void GetChildren_ReturnsExpectedItems_WhenMultipleSameNamedMatchesExist()
        {
            using (var testTree = new TestSfsTree())
            {
                const string treePath = "/sitecore/templates";
                testTree.CreateTestTree(treePath);

                var testItem = testTree.GetItemsByPath(treePath);

                // add a second templates item
                testTree.Save(treePath.AsTestItem(testItem.First().ParentId));

                // get the children of the root, which should include the two same named items
                var results = testTree.GetChildren(testTree.GetRootItem()).ToArray();

                Assert.Equal(2, results.Length);
                Assert.NotEqual(results[0].Id, results[1].Id);
                Assert.NotEqual(results[0].SerializedItemId, results[1].SerializedItemId);
            }
        }
Esempio n. 14
0
        private void CreateTestTree(string treePath, TestSfsTree tree)
        {
            var localPath = tree.ConvertGlobalPathToTreePathTest(treePath)
                .TrimStart('/')
                .Split('/');

            var contextPath = string.Empty;
            Guid currentParentId = default(Guid);

            foreach (var pathPiece in localPath)
            {
                // the first path piece will equal the last segment in the global root - don't double append
                if (pathPiece != localPath[0])
                    contextPath += "/" + pathPiece;

                var item = CreateTestItem(tree.GlobalRootItemPath + contextPath, currentParentId);

                currentParentId = item.Id;

                tree.Save(item);
            }
        }
		public void GetChildren_ReturnsExpectedItems_WhenMultipleMatchesExist()
		{
			using (var testTree = new TestSfsTree())
			{
				const string treePath = "/sitecore/templates";
				testTree.CreateTestTree(treePath);

				var testItem = testTree.GetItemsByPath(treePath);

				// add a second child item
				testTree.Save("/sitecore/system".AsTestItem(testItem.First().ParentId));

				// get the children of the root, which should include the two items
				var results = testTree.GetChildren(testTree.GetRootItem()).ToArray();

				Assert.Equal(2, results.Length);
				Assert.NotEqual(results[0].Id, results[1].Id);
				Assert.NotEqual(results[0].SerializedItemId, results[1].SerializedItemId);
				Assert.True(results.Any(result => result.Name == "templates"));
				Assert.True(results.Any(result => result.Name == "system"));
			}
		}
        public void GetItemsByPath_ReturnsExpectedItems_WhenChildPathIsRequested_AndMultipleMatchesExist_ThroughSeparateParents()
        {
            using (var testTree = new TestSfsTree())
            {
                const string treePath = "/sitecore/templates/User Defined";

                CreateTestTree(treePath, testTree);

                var testItem = testTree.GetItemsByPath("/sitecore/templates");

                var templates1 = testItem.First();

                // add a second Templates item
                var templates2 = CreateTestItem("/sitecore/templates", templates1.ParentId);
                testTree.Save(templates2);

                // add a child under the second templates item, giving us '/sitecore/templates/User Defined' under templates1, and '/sitecore/templates/Evil' under templates2
                // P.S. don't actually do this in real life. Please? But I'm testing it, because I'm an effing pedant :)
                testTree.Save(CreateTestItem("/sitecore/templates/Evil", templates2.Id));

                var results = testTree.GetItemsByPath("/sitecore/templates").ToArray();

                Assert.Equal(2, results.Length);
                Assert.NotEqual(results[0].Id, results[1].Id);
                Assert.NotEqual(results[0].SerializedItemId, results[1].SerializedItemId);
                Assert.True(results.Any(result => result.Id == templates1.Id));
                Assert.True(results.Any(result => result.Id == templates2.Id));
            }
        }
		public void GetChildren_ReturnsExpectedItems_WhenNameTruncationCausesSimilarNames()
		{
			using (var testTree = new TestSfsTree())
			{
				testTree.MaxFileNameLengthForTests = 10;

				const string treePath = "/sitecore/templates";
				testTree.CreateTestTree(treePath);

				var testItem = testTree.GetItemsByPath(treePath).First();

				var multilist = "/sitecore/templates/Multilist".AsTestItem(testItem.Id);
				var multilistWithSearch = "/sitecore/templates/Multilist with Search".AsTestItem(testItem.Id);

				var multilistChild = "/sitecore/templates/Multilist/Menu".AsTestItem(multilist.Id);
				var multilistWithSearchChild = "/sitecore/templates/Multilist with Search/Menu".AsTestItem(multilistWithSearch.Id);

				testTree.Save(multilist);
				testTree.Save(multilistWithSearch);
				testTree.Save(multilistChild);
				testTree.Save(multilistWithSearchChild);

				// now we'll have "Multilist.yml" and "Multilist .yml" - make sure we get the right children from each

				// get the children of the root, which should include the two same named items
				var multilistChildren = testTree.GetChildren(multilist).ToArray();
				var multilistWithSearchChildren = testTree.GetChildren(multilistWithSearch).ToArray();

				Assert.Equal(1, multilistChildren.Length);
				Assert.Equal(multilistChild.Id, multilistChildren.First().Id);
				Assert.Equal(1, multilistWithSearchChildren.Length);
				Assert.Equal(multilistWithSearchChild.Id, multilistWithSearchChildren.First().Id);
			}
		}