public void ContentType_ChangeFieldType_LongText() { Content CreateTestContent(string contentTypeName, Node parent) { var testContent = Content.CreateNew(contentTypeName, parent, Guid.NewGuid().ToString()); testContent["LongText1"] = $"{contentTypeName} longtext value"; testContent.Save(); return(testContent); } void AssertProperties(FieldSetting fs, string displayName, string description, bool compulsory, FieldVisibility visibleEdit, string controlHint) { Assert.AreEqual("RichText", fs.ShortName); Assert.AreEqual(displayName, fs.DisplayName); Assert.AreEqual(description, fs.Description); Assert.AreEqual(compulsory, fs.Compulsory); Assert.AreEqual(visibleEdit, fs.VisibleEdit); Assert.AreEqual(controlHint, fs.ControlHint); } Test(() => { ContentTypeInstaller.InstallContentType(CtdTextEditor); ContentTypeInstaller.InstallContentType(CtdTextEditorSibling); ContentTypeInstaller.InstallContentType(CtdTextEditorChild1); ContentTypeInstaller.InstallContentType(CtdTextEditorChild2); ContentTypeInstaller.InstallContentType(CtdTextEditorChild3); var fs1 = ContentType.GetByName(CtdTextEditorName).FieldSettings.First(fs => fs.Name == "LongText1"); Assert.AreEqual("LongText", fs1.ShortName); // create text content and fill the field var parent = new SystemFolder(Repository.Root); parent.Save(); var testContent1 = CreateTestContent(CtdTextEditorName, parent); var testContent2 = CreateTestContent(CtdTextEditorSiblingName, parent); var testContent3 = CreateTestContent(CtdTextEditorChild1Name, parent); var testContent4 = CreateTestContent(CtdTextEditorChild2Name, parent); var testContent5 = CreateTestContent(CtdTextEditorChild3Name, parent); var cb = new ContentTypeBuilder(null); // change field type and set a couple of additional properties cb.ChangeFieldType("LongText1", "RichText") .Type(CtdTextEditorName) .Field("LongText1") .DisplayName("My rich text field") .Compulsory() .VisibleEdit(FieldVisibility.Hide); cb.Apply(); fs1 = ContentType.GetByName(CtdTextEditorName).FieldSettings.Single(fs => fs.Name == "LongText1"); var fs2 = ContentType.GetByName(CtdTextEditorSiblingName).FieldSettings.Single(fs => fs.Name == "LongText1"); var fs3 = ContentType.GetByName(CtdTextEditorChild1Name).FieldSettings.Single(fs => fs.Name == "LongText1"); var fs4 = ContentType.GetByName(CtdTextEditorChild2Name).FieldSettings.Single(fs => fs.Name == "LongText1"); var fs5 = ContentType.GetByName(CtdTextEditorChild3Name).FieldSettings.Single(fs => fs.Name == "LongText1"); // check new and preserved properties AssertProperties(fs1, "My rich text field", "Preserved desc", true, FieldVisibility.Hide, "abc"); AssertProperties(fs2, null, "Sibling desc", false, FieldVisibility.Show, "sibling"); AssertProperties(fs3, "My rich text field", "Preserved desc", true, FieldVisibility.Hide, "abc"); AssertProperties(fs4, "My rich text field", "TextEditorChild2 desc", true, FieldVisibility.Hide, "def"); AssertProperties(fs5, "My rich text field", "TextEditorChild2 desc", true, FieldVisibility.Hide, "ghi"); testContent1 = Content.Load(testContent1.Id); testContent2 = Content.Load(testContent2.Id); testContent3 = Content.Load(testContent3.Id); testContent4 = Content.Load(testContent4.Id); testContent5 = Content.Load(testContent5.Id); Assert.AreEqual($"{CtdTextEditorName} longtext value", ((RichTextFieldValue)testContent1["LongText1"]).Text); Assert.AreEqual($"{CtdTextEditorSiblingName} longtext value", ((RichTextFieldValue)testContent2["LongText1"]).Text); Assert.AreEqual($"{CtdTextEditorChild1Name} longtext value", ((RichTextFieldValue)testContent3["LongText1"]).Text); Assert.AreEqual($"{CtdTextEditorChild2Name} longtext value", ((RichTextFieldValue)testContent4["LongText1"]).Text); Assert.AreEqual($"{CtdTextEditorChild3Name} longtext value", ((RichTextFieldValue)testContent5["LongText1"]).Text); }); }