Exemplo n.º 1
0
        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();");
            });
        }
Exemplo n.º 2
0
		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();
		}
Exemplo n.º 3
0
        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();
            });
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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();");
            });
        }
Exemplo n.º 6
0
        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);
            });
        }
Exemplo n.º 7
0
		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;
		}
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
		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);
		}
Exemplo n.º 10
0
		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();");
		}
Exemplo n.º 11
0
		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();");

		}