public void UpdatesReferencesOnDuplicatedItem() { var fakeSite = new Sitecore.FakeDb.Sites.FakeSiteContext( new Sitecore.Collections.StringDictionary { { "name", "website" }, { "database", "master" }, { "content", "master" }, { "rootPath", "/sitecore/content" } }); using (new Sitecore.Sites.SiteContextSwitcher(fakeSite)) using (GetFakeDb()) { var db = Sitecore.Context.Database; var page1 = db.GetItem("/sitecore/content/home/page1"); var processor = new DuplicateItem(new TreeReferenceUpdater()); processor.Execute(new ClientPipelineArgs() { Parameters = new NameValueCollection() { { "database", "master" }, { "id", page1.ID.ToString() }, { "name", "page2" } }, }); var page2 = db.GetItem("/sitecore/content/home/page2"); db.GetItem(page2.Fields["Link"].Value).Parent.ID.Should().Be(page2.ID); } }
public void HowToSwitchContextSite() { // Create a fake Site Context and configure the required parameters. // Please note that there is no registration in the App.config file required. var fakeSite = new Sitecore.FakeDb.Sites.FakeSiteContext( new Sitecore.Collections.StringDictionary { { "name", "website" }, { "database", "web" } }); // switch the context site using (new Sitecore.Sites.SiteContextSwitcher(fakeSite)) { Xunit.Assert.Equal("website", Sitecore.Context.Site.Name); Xunit.Assert.Equal("web", Sitecore.Context.Site.Database.Name); } }
public void GetSiteDefinition_ItemOutsideSiteHierarcy_ShouldReturnContextSiteDefinition(SiteContext siteContext, DbItem item, Db db, string siteName) { var siteDefinitionId = ID.NewID; var home = new DbItem("home", ID.NewID); db.Add(new DbItem(siteName, siteDefinitionId, Templates.Site.ID) { home }); var definitionItem = db.GetItem(siteDefinitionId); db.Add(item); var contextItem = db.GetItem(item.ID); var fakeSite = new Sitecore.FakeDb.Sites.FakeSiteContext(new Sitecore.Collections.StringDictionary { { "name", siteName }, { "database", db.Database.Name }, { "rootPath", "/sitecore/content/" + siteName }, { "startItem", "/home" } }); using (new Sitecore.Sites.SiteContextSwitcher(fakeSite)) { var siteDefinition = siteContext.GetSiteDefinition(contextItem); siteDefinition.Item.ID.ShouldBeEquivalentTo(definitionItem.ID); } }