public void SchEd_WriterCalling_RemoveOverriddenPropertyFromNodeType() { Test(() => { SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); //-- create original PropertyType pt1 = CreatePropertyType(ed1, "PT1", DataType.String, 1); NodeType nt1 = CreateNodeType(ed1, null, "NT1", "NT1", 1); NodeType nt2 = CreateNodeType(ed1, nt1, "NT2", "NT2", 2); NodeType nt3 = CreateNodeType(ed1, nt2, "NT3", "NT3", 3); NodeType nt4 = CreateNodeType(ed1, nt3, "NT4", "NT4", 4); NodeType nt5 = CreateNodeType(ed1, nt4, "NT5", "NT5", 5); ed1.AddPropertyTypeToPropertySet(pt1, nt4); ed1.AddPropertyTypeToPropertySet(pt1, nt2); //-- create current XmlDocument xd = new XmlDocument(); xd.LoadXml(ed1.ToXml()); ed2.Load(xd); //-- edit ed2.RemovePropertyTypeFromPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT4"]); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string log = wr.Log.Replace("\r\n", ""); Assert.IsTrue(log == "Open();UpdatePropertyTypeDeclarationState(propType=<PT1>, newSet=<NT4>, isDeclared=<False>);Close();"); }); }
public void SchemaEditor_LoadSchema() { SchemaEditor editor1 = new SchemaEditor(); editor1.Load(); editor1.CreatePermissionType("PermA"); string s = editor1.ToXml(); XmlDocument xd = new XmlDocument(); xd.LoadXml(s); SchemaEditor editor2 = new SchemaEditor(); editor2.Load(xd); string ss = editor2.ToXml(); }
public void SchemaEditor_LoadSchema() { Test(() => { SchemaEditor editor1 = new SchemaEditor(); editor1.Load(); editor1.CreatePropertyType("NewProperty", DataType.String); //.CreatePermissionType("PermA"); string s = editor1.ToXml(); XmlDocument xd = new XmlDocument(); xd.LoadXml(s); SchemaEditor editor2 = new SchemaEditor(); editor2.Load(xd); string ss = editor2.ToXml(); }); }
public void SchemaEditor_LoadSchema() { SchemaEditor editor1 = new SchemaEditor(); editor1.Load(); editor1.CreatePermissionType("PermA"); string s = editor1.ToXml(); XmlDocument xd = new XmlDocument(); xd.LoadXml(s); SchemaEditor editor2 = new SchemaEditor(); editor2.Load(xd); string ss = editor2.ToXml(); }
public void SchEd_WriterCalling_Complex_01() { Test(() => { SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); //-- create original PropertyType ptX = CreatePropertyType(ed1, "X", DataType.String, 1); PropertyType ptY = CreatePropertyType(ed1, "Y", DataType.String, 2); PropertyType ptZ = CreatePropertyType(ed1, "Z", DataType.String, 3); NodeType ntA = CreateNodeType(ed1, null, "A", null, 1); NodeType ntB = CreateNodeType(ed1, ntA, "B", null, 2); NodeType ntC = CreateNodeType(ed1, ntB, "C", null, 3); ed1.AddPropertyTypeToPropertySet(ptX, ntB); ed1.AddPropertyTypeToPropertySet(ptY, ntC); ed1.AddPropertyTypeToPropertySet(ptX, ntA); //-- create current XmlDocument xd = new XmlDocument(); xd.LoadXml(ed1.ToXml()); ed2.Load(xd); ptX = ed2.PropertyTypes["X"]; ptY = ed2.PropertyTypes["Y"]; ptZ = ed2.PropertyTypes["Z"]; ntA = ed2.NodeTypes["A"]; ntB = ed2.NodeTypes["B"]; ntC = ed2.NodeTypes["C"]; //-- edit ed2.RemovePropertyTypeFromPropertySet(ptX, ntA); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string log = wr.Log.Replace("\r\n", ""); Assert.IsTrue(log == "Open();RemovePropertyTypeFromPropertySet(propertyType=<X>, owner=<A>);Close();"); }); }
public void SchEd_WriterCalling_AddPropertyToAncestorNodeType() { Test(() => { SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); //-- create original PropertyType pt1 = CreatePropertyType(ed1, "PT1", DataType.String, 1); NodeType nt1 = CreateNodeType(ed1, null, "NT1", "NT1", 1); NodeType nt2 = CreateNodeType(ed1, nt1, "NT2", "NT2", 2); NodeType nt3 = CreateNodeType(ed1, nt2, "NT3", "NT3", 3); NodeType nt4 = CreateNodeType(ed1, nt3, "NT4", "NT4", 4); NodeType nt5 = CreateNodeType(ed1, nt4, "NT5", "NT5", 5); ed1.AddPropertyTypeToPropertySet(pt1, nt4); //-- create current XmlDocument xd = new XmlDocument(); xd.LoadXml(ed1.ToXml()); ed2.Load(xd); //-- edit ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT2"]); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string expectedLog = @" Open(); AddPropertyTypeToPropertySet(propertyType=<PT1>, owner=<NT2>, isDeclared=<True>); AddPropertyTypeToPropertySet(propertyType=<PT1>, owner=<NT3>, isDeclared=<False>); Close(); " .Replace("\r\n", "").Replace("\t", "").Replace(" ", ""); string log = wr.Log.Replace("\r\n", "").Replace(" ", ""); Assert.IsTrue(log == expectedLog); }); }
private string InstallContentType(string contentTypeDefInstall, string contentTypeDefModify) { XmlDocument schema = new XmlDocument(); schema.LoadXml(@"<?xml version='1.0' encoding='utf-8' ?> <StorageSchema xmlns='http://schemas.sensenet.com/SenseNet/ContentRepository/Storage/Schema'> <UsedPropertyTypes> <PropertyType itemID='1' name='Binary' dataType='Binary' mapping='0' /> <PropertyType itemID='2' name='VersioningMode' dataType='Int' mapping='0' /> <PropertyType itemID='3' name='Make' dataType='String' mapping='0' /> <PropertyType itemID='4' name='Model' dataType='String' mapping='1' /> <PropertyType itemID='5' name='Style' dataType='String' mapping='2' /> <PropertyType itemID='6' name='Color' dataType='String' mapping='3' /> <PropertyType itemID='7' name='EngineSize' dataType='String' mapping='4' /> <PropertyType itemID='8' name='Power' dataType='String' mapping='5' /> <PropertyType itemID='9' name='Price' dataType='String' mapping='6' /> <PropertyType itemID='10' name='Description' dataType='Text' mapping='0' /> <PropertyType itemID='11' name='Enabled' dataType='Int' mapping='1' /> <PropertyType itemID='12' name='Domain' dataType='String' mapping='7' /> <PropertyType itemID='13' name='Email' dataType='String' mapping='8' /> <PropertyType itemID='14' name='FullName' dataType='String' mapping='9' /> <PropertyType itemID='15' name='PasswordHash' dataType='String' mapping='10' /> <PropertyType itemID='16' name='Memberships' dataType='Binary' mapping='1' /> <PropertyType itemID='17' name='PendingUserLang' dataType='String' mapping='11' /> <PropertyType itemID='18' name='Language' dataType='Int' mapping='2' /> <PropertyType itemID='19' name='Url' dataType='String' mapping='12' /> <PropertyType itemID='20' name='AuthenticationType' dataType='String' mapping='13' /> <PropertyType itemID='21' name='StartPage' dataType='String' mapping='14' /> <PropertyType itemID='22' name='LoginPage' dataType='String' mapping='15' /> <PropertyType itemID='23' name='StatisticalLog' dataType='Int' mapping='3' /> <PropertyType itemID='24' name='AuditLog' dataType='Int' mapping='4' /> <PropertyType itemID='26' name='PageNameInMenu' dataType='String' mapping='16' /> <PropertyType itemID='27' name='Hidden' dataType='Int' mapping='6' /> <PropertyType itemID='28' name='Keywords' dataType='String' mapping='17' /> <PropertyType itemID='29' name='MetaDescription' dataType='String' mapping='18' /> <PropertyType itemID='30' name='MetaTitle' dataType='String' mapping='19' /> <PropertyType itemID='31' name='PageTemplateNode' dataType='Reference' mapping='0' /> <PropertyType itemID='32' name='DefaultPortletSkin' dataType='String' mapping='20' /> <PropertyType itemID='33' name='HiddenPageFrom' dataType='String' mapping='21' /> <PropertyType itemID='34' name='Authors' dataType='String' mapping='22' /> <PropertyType itemID='35' name='CustomMeta' dataType='String' mapping='23' /> <PropertyType itemID='36' name='Comment' dataType='String' mapping='24' /> <PropertyType itemID='37' name='PersonalizationSettings' dataType='Binary' mapping='2' /> <PropertyType itemID='38' name='Title' dataType='String' mapping='25' /> <PropertyType itemID='39' name='Subtitle' dataType='String' mapping='26' /> <PropertyType itemID='40' name='Header' dataType='Text' mapping='1' /> <PropertyType itemID='41' name='Body' dataType='Text' mapping='2' /> <PropertyType itemID='42' name='Links' dataType='Text' mapping='3' /> <PropertyType itemID='43' name='ContentLanguage' dataType='String' mapping='27' /> <PropertyType itemID='44' name='Author' dataType='String' mapping='28' /> <PropertyType itemID='45' name='ContractId' dataType='String' mapping='29' /> <PropertyType itemID='46' name='Project' dataType='String' mapping='30' /> <PropertyType itemID='47' name='Responsee' dataType='String' mapping='31' /> <PropertyType itemID='48' name='Lawyer' dataType='String' mapping='32' /> <PropertyType itemID='49' name='MasterPageNode' dataType='Reference' mapping='1' /> <PropertyType itemID='50' name='Members' dataType='Reference' mapping='2' /> <PropertyType itemID='51' name='Manufacturer' dataType='String' mapping='33' /> <PropertyType itemID='52' name='Driver' dataType='String' mapping='34' /> <PropertyType itemID='53' name='InheritableVersioningMode' dataType='Int' mapping='35' /> <PropertyType itemID='54' name='HasApproving' dataType='Int' mapping='36' /> </UsedPropertyTypes> <NodeTypeHierarchy> <NodeType itemID='7' name='PersonalizationFile' className='SenseNet.ContentRepository.PersonalizationFile'> <PropertyType name='Binary' /> <PropertyType name='VersioningMode' /> <PropertyType name='InheritableVersioningMode' /> <PropertyType name='HasApproving' /> </NodeType> <NodeType itemID='5' name='GenericContent' className='SenseNet.ContentRepository.GenericContent'> <PropertyType name='VersioningMode' /> <PropertyType name='InheritableVersioningMode' /> <PropertyType name='HasApproving' /> <NodeType itemID='3' name='User' className='SenseNet.ContentRepository.User'> <PropertyType name='VersioningMode' /> <PropertyType name='Enabled' /> <PropertyType name='Domain' /> <PropertyType name='Email' /> <PropertyType name='FullName' /> <PropertyType name='PasswordHash' /> <PropertyType name='Memberships' /> </NodeType> <NodeType itemID='1' name='Folder' className='SenseNet.ContentRepository.Folder'> <PropertyType name='VersioningMode' /> <NodeType itemID='16' name='Page' className='SenseNet.Portal.Page'> <PropertyType name='Binary' /> <PropertyType name='PageNameInMenu' /> <PropertyType name='Hidden' /> <PropertyType name='Keywords' /> <PropertyType name='MetaDescription' /> <PropertyType name='MetaTitle' /> <PropertyType name='PageTemplateNode' /> <PropertyType name='DefaultPortletSkin' /> <PropertyType name='HiddenPageFrom' /> <PropertyType name='Authors' /> <PropertyType name='CustomMeta' /> <PropertyType name='Comment' /> <PropertyType name='PersonalizationSettings' /> </NodeType> <NodeType itemID='15' name='OrganizationalUnit' className='SenseNet.ContentRepository.OrganizationalUnit'> </NodeType> <NodeType itemID='14' name='Site' className='SenseNet.Portal.Site'> <PropertyType name='Description' /> <PropertyType name='PendingUserLang' /> <PropertyType name='Language' /> <PropertyType name='Url' /> <PropertyType name='AuthenticationType' /> <PropertyType name='StartPage' /> <PropertyType name='LoginPage' /> <PropertyType name='StatisticalLog' /> <PropertyType name='AuditLog' /> </NodeType> </NodeType> <NodeType itemID='10' name='WebContentDemo' className='SenseNet.ContentRepository.GenericContent'> <PropertyType name='Keywords' /> <PropertyType name='Title' /> <PropertyType name='Subtitle' /> <PropertyType name='Header' /> <PropertyType name='Body' /> <PropertyType name='Links' /> <PropertyType name='ContentLanguage' /> <PropertyType name='Author' /> </NodeType> <NodeType itemID='9' name='File' className='SenseNet.ContentRepository.File'> <PropertyType name='Binary' /> <NodeType itemID='13' name='PageTemplate' className='SenseNet.Portal.PageTemplate'> <PropertyType name='MasterPageNode' /> </NodeType> <NodeType itemID='12' name='Contract' className='SenseNet.ContentRepository.File'> <PropertyType name='Description' /> <PropertyType name='Language' /> <PropertyType name='Keywords' /> <PropertyType name='ContractId' /> <PropertyType name='Project' /> <PropertyType name='Responsee' /> <PropertyType name='Lawyer' /> </NodeType> <NodeType itemID='11' name='MasterPage' className='SenseNet.Portal.MasterPage' /> </NodeType> <NodeType itemID='8' name='Car' className='SenseNet.ContentRepository.GenericContent'> <PropertyType name='Make' /> <PropertyType name='Model' /> <PropertyType name='Style' /> <PropertyType name='Color' /> <PropertyType name='EngineSize' /> <PropertyType name='Power' /> <PropertyType name='Price' /> <PropertyType name='Description' /> </NodeType> </NodeType> <NodeType itemID='4' name='ContentType' className='SenseNet.ContentRepository.Schema.ContentType'> <PropertyType name='Binary' /> </NodeType> <NodeType itemID='2' name='Group' className='SenseNet.ContentRepository.Group'> <PropertyType name='VersioningMode' /> <PropertyType name='Members' /> </NodeType> </NodeTypeHierarchy> <PermissionTypes> <PermissionType itemID='1' name='See' /> <PermissionType itemID='2' name='Open' /> <PermissionType itemID='3' name='OpenMinor' /> <PermissionType itemID='4' name='Save' /> <PermissionType itemID='5' name='Publish' /> <PermissionType itemID='6' name='ForceCheckin' /> <PermissionType itemID='7' name='AddNew' /> <PermissionType itemID='8' name='Approve' /> <PermissionType itemID='9' name='Delete' /> <PermissionType itemID='10' name='RecallOldVersion' /> <PermissionType itemID='11' name='DeleteOldVersion' /> <PermissionType itemID='12' name='SeePermissions' /> <PermissionType itemID='13' name='SetPermissions' /> <PermissionType itemID='14' name='RunApplication' /> </PermissionTypes> </StorageSchema> "); SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); ed1.Load(schema); ed2.Load(schema); ContentTypeManagerAccessor ctmAcc = new ContentTypeManagerAccessor(ContentTypeManager.Current); ContentType cts = ctmAcc.LoadOrCreateNew(contentTypeDefInstall); ctmAcc.ApplyChangesInEditor(cts, ed2); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); ed2Acc.RegisterSchema(ed1, wr); if (contentTypeDefModify != null) { XmlDocument schema2 = new XmlDocument(); schema2.LoadXml(ed2.ToXml()); SchemaEditor ed3 = new SchemaEditor(); ed3.Load(schema2); SchemaEditorAccessor ed3Acc = new SchemaEditorAccessor(ed3); cts = ctmAcc.LoadOrCreateNew(contentTypeDefModify); ctmAcc.ApplyChangesInEditor(cts, ed3); wr = new TestSchemaWriter(); ed3Acc.RegisterSchema(ed2, wr); } return wr.Log; }
private string InstallContentType(string contentTypeDefInstall, string contentTypeDefModify) { XmlDocument schema = new XmlDocument(); schema.LoadXml(@"<?xml version='1.0' encoding='utf-8' ?> <StorageSchema xmlns='http://schemas.sensenet.com/SenseNet/ContentRepository/Storage/Schema'> <UsedPropertyTypes> <PropertyType itemID='1' name='Binary' dataType='Binary' mapping='0' /> <PropertyType itemID='2' name='VersioningMode' dataType='Int' mapping='0' /> <PropertyType itemID='3' name='Make' dataType='String' mapping='0' /> <PropertyType itemID='4' name='Model' dataType='String' mapping='1' /> <PropertyType itemID='5' name='Style' dataType='String' mapping='2' /> <PropertyType itemID='6' name='Color' dataType='String' mapping='3' /> <PropertyType itemID='7' name='EngineSize' dataType='String' mapping='4' /> <PropertyType itemID='8' name='Power' dataType='String' mapping='5' /> <PropertyType itemID='9' name='Price' dataType='String' mapping='6' /> <PropertyType itemID='10' name='Description' dataType='Text' mapping='0' /> <PropertyType itemID='11' name='Enabled' dataType='Int' mapping='1' /> <PropertyType itemID='12' name='Domain' dataType='String' mapping='7' /> <PropertyType itemID='13' name='Email' dataType='String' mapping='8' /> <PropertyType itemID='14' name='FullName' dataType='String' mapping='9' /> <PropertyType itemID='15' name='PasswordHash' dataType='String' mapping='10' /> <PropertyType itemID='16' name='Memberships' dataType='Binary' mapping='1' /> <PropertyType itemID='17' name='PendingUserLang' dataType='String' mapping='11' /> <PropertyType itemID='18' name='Language' dataType='Int' mapping='2' /> <PropertyType itemID='19' name='Url' dataType='String' mapping='12' /> <PropertyType itemID='20' name='AuthenticationType' dataType='String' mapping='13' /> <PropertyType itemID='21' name='StartPage' dataType='String' mapping='14' /> <PropertyType itemID='22' name='LoginPage' dataType='String' mapping='15' /> <PropertyType itemID='23' name='StatisticalLog' dataType='Int' mapping='3' /> <PropertyType itemID='24' name='AuditLog' dataType='Int' mapping='4' /> <PropertyType itemID='26' name='PageNameInMenu' dataType='String' mapping='16' /> <PropertyType itemID='27' name='Hidden' dataType='Int' mapping='6' /> <PropertyType itemID='28' name='Keywords' dataType='String' mapping='17' /> <PropertyType itemID='29' name='MetaDescription' dataType='String' mapping='18' /> <PropertyType itemID='30' name='MetaTitle' dataType='String' mapping='19' /> <PropertyType itemID='31' name='PageTemplateNode' dataType='Reference' mapping='0' /> <PropertyType itemID='32' name='DefaultPortletSkin' dataType='String' mapping='20' /> <PropertyType itemID='33' name='HiddenPageFrom' dataType='String' mapping='21' /> <PropertyType itemID='34' name='Authors' dataType='String' mapping='22' /> <PropertyType itemID='35' name='CustomMeta' dataType='String' mapping='23' /> <PropertyType itemID='36' name='Comment' dataType='String' mapping='24' /> <PropertyType itemID='37' name='PersonalizationSettings' dataType='Binary' mapping='2' /> <PropertyType itemID='38' name='Title' dataType='String' mapping='25' /> <PropertyType itemID='39' name='Subtitle' dataType='String' mapping='26' /> <PropertyType itemID='40' name='Header' dataType='Text' mapping='1' /> <PropertyType itemID='41' name='Body' dataType='Text' mapping='2' /> <PropertyType itemID='42' name='Links' dataType='Text' mapping='3' /> <PropertyType itemID='43' name='ContentLanguage' dataType='String' mapping='27' /> <PropertyType itemID='44' name='Author' dataType='String' mapping='28' /> <PropertyType itemID='45' name='ContractId' dataType='String' mapping='29' /> <PropertyType itemID='46' name='Project' dataType='String' mapping='30' /> <PropertyType itemID='47' name='Responsee' dataType='String' mapping='31' /> <PropertyType itemID='48' name='Lawyer' dataType='String' mapping='32' /> <PropertyType itemID='49' name='MasterPageNode' dataType='Reference' mapping='1' /> <PropertyType itemID='50' name='Members' dataType='Reference' mapping='2' /> <PropertyType itemID='51' name='Manufacturer' dataType='String' mapping='33' /> <PropertyType itemID='52' name='Driver' dataType='String' mapping='34' /> <PropertyType itemID='53' name='InheritableVersioningMode' dataType='Int' mapping='35' /> <PropertyType itemID='54' name='HasApproving' dataType='Int' mapping='36' /> </UsedPropertyTypes> <NodeTypeHierarchy> <NodeType itemID='7' name='PersonalizationFile' className='SenseNet.ContentRepository.PersonalizationFile'> <PropertyType name='Binary' /> <PropertyType name='VersioningMode' /> <PropertyType name='InheritableVersioningMode' /> <PropertyType name='HasApproving' /> </NodeType> <NodeType itemID='5' name='GenericContent' className='SenseNet.ContentRepository.GenericContent'> <PropertyType name='VersioningMode' /> <PropertyType name='InheritableVersioningMode' /> <PropertyType name='HasApproving' /> <NodeType itemID='3' name='User' className='SenseNet.ContentRepository.User'> <PropertyType name='VersioningMode' /> <PropertyType name='Enabled' /> <PropertyType name='Domain' /> <PropertyType name='Email' /> <PropertyType name='FullName' /> <PropertyType name='PasswordHash' /> <PropertyType name='Memberships' /> </NodeType> <NodeType itemID='1' name='Folder' className='SenseNet.ContentRepository.Folder'> <PropertyType name='VersioningMode' /> <NodeType itemID='16' name='Page' className='SenseNet.Portal.Page'> <PropertyType name='Binary' /> <PropertyType name='PageNameInMenu' /> <PropertyType name='Hidden' /> <PropertyType name='Keywords' /> <PropertyType name='MetaDescription' /> <PropertyType name='MetaTitle' /> <PropertyType name='PageTemplateNode' /> <PropertyType name='DefaultPortletSkin' /> <PropertyType name='HiddenPageFrom' /> <PropertyType name='Authors' /> <PropertyType name='CustomMeta' /> <PropertyType name='Comment' /> <PropertyType name='PersonalizationSettings' /> </NodeType> <NodeType itemID='15' name='OrganizationalUnit' className='SenseNet.ContentRepository.OrganizationalUnit'> </NodeType> <NodeType itemID='14' name='Site' className='SenseNet.Portal.Site'> <PropertyType name='Description' /> <PropertyType name='PendingUserLang' /> <PropertyType name='Language' /> <PropertyType name='Url' /> <PropertyType name='AuthenticationType' /> <PropertyType name='StartPage' /> <PropertyType name='LoginPage' /> <PropertyType name='StatisticalLog' /> <PropertyType name='AuditLog' /> </NodeType> </NodeType> <NodeType itemID='10' name='WebContentDemo' className='SenseNet.ContentRepository.GenericContent'> <PropertyType name='Keywords' /> <PropertyType name='Title' /> <PropertyType name='Subtitle' /> <PropertyType name='Header' /> <PropertyType name='Body' /> <PropertyType name='Links' /> <PropertyType name='ContentLanguage' /> <PropertyType name='Author' /> </NodeType> <NodeType itemID='9' name='File' className='SenseNet.ContentRepository.File'> <PropertyType name='Binary' /> <NodeType itemID='13' name='PageTemplate' className='SenseNet.Portal.PageTemplate'> <PropertyType name='MasterPageNode' /> </NodeType> <NodeType itemID='12' name='Contract' className='SenseNet.ContentRepository.File'> <PropertyType name='Description' /> <PropertyType name='Language' /> <PropertyType name='Keywords' /> <PropertyType name='ContractId' /> <PropertyType name='Project' /> <PropertyType name='Responsee' /> <PropertyType name='Lawyer' /> </NodeType> <NodeType itemID='11' name='MasterPage' className='SenseNet.Portal.MasterPage' /> </NodeType> <NodeType itemID='8' name='Car' className='SenseNet.ContentRepository.GenericContent'> <PropertyType name='Make' /> <PropertyType name='Model' /> <PropertyType name='Style' /> <PropertyType name='Color' /> <PropertyType name='EngineSize' /> <PropertyType name='Power' /> <PropertyType name='Price' /> <PropertyType name='Description' /> </NodeType> </NodeType> <NodeType itemID='4' name='ContentType' className='SenseNet.ContentRepository.Schema.ContentType'> <PropertyType name='Binary' /> </NodeType> <NodeType itemID='2' name='Group' className='SenseNet.ContentRepository.Group'> <PropertyType name='VersioningMode' /> <PropertyType name='Members' /> </NodeType> </NodeTypeHierarchy> <PermissionTypes> <PermissionType itemID='1' name='See' /> <PermissionType itemID='2' name='Open' /> <PermissionType itemID='3' name='OpenMinor' /> <PermissionType itemID='4' name='Save' /> <PermissionType itemID='5' name='Publish' /> <PermissionType itemID='6' name='ForceCheckin' /> <PermissionType itemID='7' name='AddNew' /> <PermissionType itemID='8' name='Approve' /> <PermissionType itemID='9' name='Delete' /> <PermissionType itemID='10' name='RecallOldVersion' /> <PermissionType itemID='11' name='DeleteOldVersion' /> <PermissionType itemID='12' name='SeePermissions' /> <PermissionType itemID='13' name='SetPermissions' /> <PermissionType itemID='14' name='RunApplication' /> </PermissionTypes> </StorageSchema> "); SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); ed1.Load(schema); ed2.Load(schema); ContentTypeManagerAccessor ctmAcc = new ContentTypeManagerAccessor(ContentTypeManager.Current); ContentType cts = ctmAcc.LoadOrCreateNew(contentTypeDefInstall); ctmAcc.ApplyChangesInEditor(cts, ed2); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); ed2Acc.RegisterSchema(ed1, wr); if (contentTypeDefModify != null) { XmlDocument schema2 = new XmlDocument(); schema2.LoadXml(ed2.ToXml()); SchemaEditor ed3 = new SchemaEditor(); ed3.Load(schema2); SchemaEditorAccessor ed3Acc = new SchemaEditorAccessor(ed3); cts = ctmAcc.LoadOrCreateNew(contentTypeDefModify); ctmAcc.ApplyChangesInEditor(cts, ed3); wr = new TestSchemaWriter(); ed3Acc.RegisterSchema(ed2, wr); } return(wr.Log); }
public void SchEd_WriterCalling_RemoveAncestorOfOverriddenPropertyFromNodeType() { SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); //-- create original PropertyType pt1 = CreatePropertyType(ed1, "PT1", DataType.String, 1); NodeType nt1 = CreateNodeType(ed1, null, "NT1", "NT1", 1); NodeType nt2 = CreateNodeType(ed1, nt1, "NT2", "NT2", 2); NodeType nt3 = CreateNodeType(ed1, nt2, "NT3", "NT3", 3); NodeType nt4 = CreateNodeType(ed1, nt3, "NT4", "NT4", 4); NodeType nt5 = CreateNodeType(ed1, nt4, "NT5", "NT5", 5); ed1.AddPropertyTypeToPropertySet(pt1, nt4); ed1.AddPropertyTypeToPropertySet(pt1, nt2); //-- create current XmlDocument xd = new XmlDocument(); xd.LoadXml(ed1.ToXml()); ed2.Load(xd); //-- edit ed2.RemovePropertyTypeFromPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT2"]); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string expectedLog = @" Open(); RemovePropertyTypeFromPropertySet(propertyType=<PT1>, owner=<NT2>); RemovePropertyTypeFromPropertySet(propertyType=<PT1>, owner=<NT3>); Close();".Replace("\r\n", "").Replace("\t", "").Replace(" ", ""); string log = wr.Log.Replace("\r\n", "").Replace(" ", ""); Assert.IsTrue(log == expectedLog); }
public void SchEd_WriterCalling_OverridePropertyOnNodeType() { SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); //-- create original PropertyType pt1 = CreatePropertyType(ed1, "PT1", DataType.String, 1); NodeType nt1 = CreateNodeType(ed1, null, "NT1", "NT1", 1); NodeType nt2 = CreateNodeType(ed1, nt1, "NT2", "NT2", 2); NodeType nt3 = CreateNodeType(ed1, nt2, "NT3", "NT3", 3); NodeType nt4 = CreateNodeType(ed1, nt3, "NT4", "NT4", 4); NodeType nt5 = CreateNodeType(ed1, nt4, "NT5", "NT5", 5); ed1.AddPropertyTypeToPropertySet(pt1, nt2); //-- create current XmlDocument xd = new XmlDocument(); xd.LoadXml(ed1.ToXml()); ed2.Load(xd); //-- edit ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT4"]); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string log = wr.Log.Replace("\r\n", ""); Assert.IsTrue(log == "Open();UpdatePropertyTypeDeclarationState(propType=<PT1>, newSet=<NT4>, isDeclared=<True>);Close();"); }
public void SchEd_WriterCalling_Complex_01() { SchemaEditor ed1 = new SchemaEditor(); SchemaEditor ed2 = new SchemaEditor(); SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2); TestSchemaWriter wr = new TestSchemaWriter(); //-- create original PropertyType ptX = CreatePropertyType(ed1, "X", DataType.String, 1); PropertyType ptY = CreatePropertyType(ed1, "Y", DataType.String, 2); PropertyType ptZ = CreatePropertyType(ed1, "Z", DataType.String, 3); NodeType ntA = CreateNodeType(ed1, null, "A", null, 1); NodeType ntB = CreateNodeType(ed1, ntA, "B", null, 2); NodeType ntC = CreateNodeType(ed1, ntB, "C", null, 3); ed1.AddPropertyTypeToPropertySet(ptX, ntB); ed1.AddPropertyTypeToPropertySet(ptY, ntC); ed1.AddPropertyTypeToPropertySet(ptX, ntA); //-- create current XmlDocument xd = new XmlDocument(); xd.LoadXml(ed1.ToXml()); ed2.Load(xd); ptX = ed2.PropertyTypes["X"]; ptY = ed2.PropertyTypes["Y"]; ptZ = ed2.PropertyTypes["Z"]; ntA = ed2.NodeTypes["A"]; ntB = ed2.NodeTypes["B"]; ntC = ed2.NodeTypes["C"]; //-- edit ed2.RemovePropertyTypeFromPropertySet(ptX, ntA); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string log = wr.Log.Replace("\r\n", ""); Assert.IsTrue(log == "Open();RemovePropertyTypeFromPropertySet(propertyType=<X>, owner=<A>);Close();"); }