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)); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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)); } }