public void ShouldBeThreadLocalStandardValuesProvider() { var templateId = ID.NewID; var itemId = ID.NewID; var fieldId = ID.NewID; var t1 = Task.Factory.StartNew(() => { using (var db = new Db { new DbTemplate(templateId) { { fieldId, "$name" } }, new DbItem("Home", itemId, templateId) }) { Thread.Sleep(1000); db.GetItem(itemId)[fieldId].Should().Be("Home"); } }); var t2 = Task.Factory.StartNew(() => { using (var db = new Db { new DbTemplate(templateId) { fieldId }, new DbItem("Home", itemId, templateId) }) { db.GetItem(itemId)[fieldId].Should().BeEmpty(); } }); t1.Wait(); t2.Wait(); }
public void ShouldPropagateFieldsFromTheBaseTemplate() { // arrange ID templateId = ID.NewID; using (var db = new Db { this.baseTemplateOne, new DbTemplate("My Template", templateId) {BaseIDs = new[] {this.baseTemplateOne.ID}}, new DbItem("home", ID.NewID, templateId) }) { // act Item home = db.GetItem("/sitecore/content/home"); Template template = TemplateManager.GetTemplate(templateId, db.Database); Template baseTemplate = TemplateManager.GetTemplate(this.baseTemplateOne.ID, db.Database); TemplateField titleField = baseTemplate.GetField("Title"); // assert // note: it should "just" work as Sitecore wil do all the looking up the templates chain template.GetFields(false).Should().NotContain(f => f.Name == "Title" || f.ID == titleField.ID); template.GetFields(true).Should().Contain(f => f.Name == "Title" && f.ID == titleField.ID); template.GetField("Title").Should().NotBeNull("template.GetField(\"Title\")"); template.GetField(titleField.ID).Should().NotBeNull("template.GetField(titleField.ID)"); home.Fields["Title"].Should().NotBeNull("home.Fields[\"Title\"]"); home.Fields[titleField.ID].Should().NotBeNull("home.Fields[titleField.ID]"); } }
public void ShouldPropagateFieldsFromAllBaseTemplates() { // arrange ID myTemplateId = ID.NewID; using (var db = new Db { this.baseTemplateOne, this.baseTemplateTwo, this.baseTemplateThree, new DbTemplate("Main Template", myTemplateId) {BaseIDs = new[] {this.baseTemplateOne.ID, this.baseTemplateThree.ID}}, new DbItem("home", ID.NewID, myTemplateId) }) { // act Item home = db.GetItem("/sitecore/content/home"); Template template = TemplateManager.GetTemplate(myTemplateId, db.Database); // assert // note: as noted above, fields propagation should "just" work home.Fields["Title"].Should().NotBeNull("home.Fields[\"Title\"]"); home.Fields["Description"].Should().NotBeNull("home.Fields[\"Description\"]"); template.GetField("Title").Should().NotBeNull("template.GetField(\"Title\")"); template.GetField("Description").Should().NotBeNull("template.GetField(\"Description\")"); } }
public void ShouldCreateItemHierarchyAndReadChildByPath() { // arrange & act using (var db = new Db { new DbItem("parent") { new DbItem("child") } }) { // assert db.GetItem("/sitecore/content/parent/child").Should().NotBeNull(); } }
public void ShouldGetLayoutField() { using (var db = new Db { new DbItem("home") }) { var home = db.GetItem("/sitecore/content/home"); FieldTypeManager.GetField(home.Fields[FieldIDs.LayoutField]).Should().BeOfType<LayoutField>(); FieldTypeManager.GetFieldType("Layout").Type.Should().Be<LayoutField>(); } }
public void ShouldDeserializeNullBaseTemplateItem() { var item = new DsDbItem("/sitecore/content/New Item Without BaseTemplates"); using (var db = new Db { item }) { var linkedTemplate = db.GetItem(item.TemplateID); linkedTemplate.Should().NotBeNull(); linkedTemplate.Template.Name.ShouldBeEquivalentTo("Template"); } }
public void ShouldGetField(string name, Type type) { using (var db = new Db { new DbItem("home") { new DbField("field") { Type = name } } }) { var home = db.GetItem("/sitecore/content/home"); FieldTypeManager.GetField(home.Fields["field"]).Should().BeOfType(type); FieldTypeManager.GetFieldType(name).Type.Should().Be(type); } }
public void ShouldNotTimeOutOnFailingFluentAssertion() { // arrange using (var db = new Db { new DbItem("home") }) { var home = db.GetItem("/sitecore/content/home"); Action assertion = () => { try { home.Should().BeNull(); } catch { } }; // act && assert assertion.ExecutionTime().ShouldNotExceed(1.Seconds()); } }
public void ShouldBeThreadLocalDb() { var t1 = Task.Factory.StartNew(() => { using (var db = new Db { new DbItem("Home") }) { Thread.Sleep(1000); db.GetItem("/sitecore/content/home").Should().NotBeNull("the Home item is expected"); } }); var t2 = Task.Factory.StartNew(() => { using (var db = new Db()) { db.GetItem("/sitecore/content/home").Should().BeNull("the Home item is not expected"); } }); t1.Wait(); t2.Wait(); }
public void ShouldNotThrowOnGetTemplateFieldItem() { // arrange using (var db = new Db { new DbItem("home") { new DbField("field") } }) { var home = db.GetItem("/sitecore/content/home"); // act FieldTypeManager.GetTemplateFieldItem(home.Fields["field"]); } }
public void ShouldCreateItemOfFolderTemplate() { // arrange & act using (var db = new Db { new DbItem("Sample") { TemplateID = TemplateIDs.Folder } }) { // assert db.GetItem("/sitecore/content/sample").TemplateID.Should().Be(TemplateIDs.Folder); } }
public void ShouldCreateAndFulfilCompositeFieldsStructure() { // arrange using (var db = new Db()) { // act db.Add(new DbItem("item1") { { "field1", "item1-field1-value" }, { "field2", "item1-field2-value" } }); db.Add(new DbItem("item2") { { "field1", "item2-field1-value" }, { "field2", "item2-field2-value" } }); // assert db.GetItem("/sitecore/content/item1")["field1"].Should().Be("item1-field1-value"); db.GetItem("/sitecore/content/item1")["field2"].Should().Be("item1-field2-value"); db.GetItem("/sitecore/content/item2")["field1"].Should().Be("item2-field1-value"); db.GetItem("/sitecore/content/item2")["field2"].Should().Be("item2-field2-value"); } }
public void ShouldCreateItemOfAnyVersion() { // arrange using (var db = new Db { new DbItem("home") { { "Title", "title v1" } } }) { var version2 = db.GetItem("/sitecore/content/home", "en", 2); // act using (new EditContext(version2)) { version2["Title"] = "title v2"; } // assert db.GetItem("/sitecore/content/home", "en", 1)["Title"].Should().Be("title v1"); db.GetItem("/sitecore/content/home", "en", 2)["Title"].Should().Be("title v2"); } }
public void ShouldGetItemParent() { // arrange using (var db = new Db { new DbItem("item") }) { // act var parent = db.GetItem("/sitecore/content/item").Parent; // assert parent.Paths.FullPath.Should().Be("/sitecore/content"); } }
public void ShouldDeserializeItemBasedOnTwoTemplates() { // arrange using (var db = new Db { new DsDbItem("/sitecore/content/New Composite Sample Item") }) { // act var item = db.GetItem("/sitecore/content/New Composite Sample Item"); // assert item["Sample Field One"].Should().Be("Value One"); item["Sample Field Two"].Should().Be("Value Two"); } }
public void ShouldNotAutoDeserializeLinkedTemplate() { var item = new DsDbItem("/sitecore/content/home", false, false); using (var db = new Db { item }) { item.Should().NotBeNull(); var templateItem = db.GetItem(item.TemplateID); templateItem.Name.Should().NotBe("Sample Item"); } }
public void ShouldBeEqualsButNotSame() { // arrange using (var db = new Db { new DbItem("home") }) { // act var item1 = db.GetItem("/sitecore/content/Home"); var item2 = db.GetItem("/sitecore/content/Home"); // assert item1.Should().Be(item2); item1.Should().NotBeSameAs(item2); } }
public void ShouldRemoveAllVersions() { // arrange using (var db = new Db { new DbItem("home") { Fields = { new DbField("Title") { { "en", 1, "Hi" }, { "da", 2, "Hey" } } } } }) { var item = db.GetItem("/sitecore/content/home"); // act item.Versions.RemoveAll(true); // assert db.GetItem("/sitecore/content/home", "en", 1)["Title"].Should().BeEmpty(); db.GetItem("/sitecore/content/home", "da", 1)["Title"].Should().BeEmpty(); db.GetItem("/sitecore/content/home", "da", 2)["Title"].Should().BeEmpty(); } }
public void ShouldShareTemplateForItemsWithFields() { // arrange & act using (var db = new Db { new DbItem("article 1") { { "Title", "A1" } }, new DbItem("article 2") { { "Title", "A2" } } }) { var template1 = db.GetItem("/sitecore/content/article 1").TemplateID; var template2 = db.GetItem("/sitecore/content/article 2").TemplateID; // assert template1.Should().Be(template2); } }
public void ShouldReadFieldValueByIdAndName() { // arrange var fieldId = ID.NewID; using (var db = new Db { new DbItem("home") { new DbField("Title", fieldId) { Value = "Hello!" } } }) { // act var item = db.GetItem("/sitecore/content/home"); // assert item[fieldId].Should().Be("Hello!"); item["Title"].Should().Be("Hello!"); } }
public void ShouldNotShareTemplateForItemsWithDifferentFields() { // arrange & act using (var db = new Db { new DbItem("some item") { { "some field", "some value" } }, new DbItem("another item") { { "another field", "another value" } } }) { var template1 = db.GetItem("/sitecore/content/some item").TemplateID; var template2 = db.GetItem("/sitecore/content/another item").TemplateID; // assert template1.Should().NotBe(template2); } }
public void ShouldNotShareTemplateForItemsIfTemplatesSetExplicitly() { // arrange & act using (var db = new Db { new DbItem("article 1") { { "Title", "A1" } }, new DbItem("article 2", ID.NewID, ID.NewID) { { "Title", "A2" } } }) { var item1 = db.GetItem("/sitecore/content/article 1"); var item2 = db.GetItem("/sitecore/content/article 2"); // assert item1.TemplateID.Should().NotBe(item2.TemplateID); item1["Title"].Should().Be("A1"); item2["Title"].Should().Be("A2"); } }
public void ShouldGetTrackingField() { // arrange using (var db = new Db { new DbItem("home") }) { var home = db.GetItem("/sitecore/content/home"); // act & assert FieldTypeManager.GetField(home.Fields["__Tracking"]).Should().BeOfType<TrackingField>(); FieldTypeManager.GetFieldType("Tracking").Type.Should().Be<TrackingField>(); } }
public void ShouldGetItemVersionsCount() { // arrange using (var db = new Db { new DbItem("home") { Fields = { new DbField("Title") { { "en", 1, "v1" }, { "en", 2, "v2" } } } } }) { var item = db.GetItem("/sitecore/content/home"); // act & assert item.Versions.Count.Should().Be(2); } }
public void ShouldAutoDeserializeLinkedTemplate() { var item = new DsDbItem("/sitecore/content/home"); using (var db = new Db { item }) { var templateId = SerializationId.SampleItemTemplate; item.Should().NotBeNull(); item.TemplateID.ShouldBeEquivalentTo(templateId); var templateItem = db.GetItem(item.TemplateID); templateItem.Should().NotBeNull(); templateItem.Name.ShouldBeEquivalentTo("Sample Item"); } }
public void ShouldGetLanguages() { // arrange using (var db = new Db { new DbItem("home") { Fields = { new DbField("Title") { { "en", 1, string.Empty }, { "da", 2, string.Empty } } } } }) { var item = db.GetItem("/sitecore/content/home"); // act & assert item.Languages.Length.Should().Be(2); item.Languages.Should().Contain(Language.Parse("en")); item.Languages.Should().Contain(Language.Parse("da")); } }
public void ShouldAutoDeserializeIncludingBaseTemplates() { var item = new DsDbItem("/sitecore/content/Home/Some item"); using (var db = new Db { item }) { var templateId = ID.Parse("{F6A72DBF-558F-40E5-8033-EE4ACF027FE2}"); var baseTemplateId = ID.Parse("{C4F448EB-7CA3-4A27-BA5E-99E8B9022803}"); item.Should().NotBeNull(); item.TemplateID.ShouldBeEquivalentTo(templateId); var templateItem = db.GetItem(item.TemplateID); templateItem.Should().NotBeNull(); templateItem.Name.ShouldBeEquivalentTo("Some template"); templateItem[FieldIDs.BaseTemplate].ShouldBeEquivalentTo(baseTemplateId.ToString()); var baseTemplateItem = db.GetItem(baseTemplateId); baseTemplateItem.Should().NotBeNull(); baseTemplateItem.Name.ShouldBeEquivalentTo("Some base template"); baseTemplateItem.ID.ShouldBeEquivalentTo(baseTemplateId); } }
public void ShouldCreateItemVersion() { // arrange using (var db = new Db { new DbItem("home") { { "Title", "hello" } } }) { var item1 = db.GetItem("/sitecore/content/home"); // act var item2 = item1.Versions.AddVersion(); using (new EditContext(item2)) { item2["Title"] = "Hi there!"; } // assert item1["Title"].Should().Be("hello"); item2["Title"].Should().Be("Hi there!"); db.GetItem("/sitecore/content/home", "en", 1)["Title"].Should().Be("hello"); db.GetItem("/sitecore/content/home", "en", 2)["Title"].Should().Be("Hi there!"); } }
public void ShouldReuseGeneratedTemplateFromNotOnlySiblings(string pathOne, string pathTwo, bool match) { // arrange using (var db = new Db { new DbItem("home") { new DbItem("one") { { "Title", "One" } } }, new DbItem("site") { new DbItem("two") { { "Title", "Two" } }, new DbItem("three") { { "Title", "Three" }, { "Name", "Three" } }, new DbItem("four") } }) { // act var one = db.GetItem(pathOne); var two = db.GetItem(pathTwo); // assert (one.TemplateID == two.TemplateID).Should().Be(match); } }
public void ShouldGetItemFromSitecoreDatabase() { // arrange using (var db = new Db()) { // act & assert db.GetItem("/sitecore/content").Should().NotBeNull(); } }