コード例 #1
0
        public void SchemaWriter_DeleteNodeType()
        {
            IntegrationTest(() =>
            {
                var ed = new SchemaEditor();
                ed.Load();
                var nodeTypeName = "NT1-" + Guid.NewGuid();
                ed.CreateNodeType(null, nodeTypeName, "NT1Class");
                ed.Register();
                var nodeTypeCountBefore = StorageSchema.NodeTypes.Count;
                var nodeTypeId          = StorageSchema.NodeTypes[nodeTypeName].Id;

                // ACTION
                ed = new SchemaEditor();
                ed.Load();
                var nt = ed.NodeTypes[nodeTypeName];
                ed.DeleteNodeType(nt);
                ed.Register();

                // ASSERT
                Assert.AreEqual(nodeTypeCountBefore - 1, StorageSchema.NodeTypes.Count);
                Assert.IsNull(StorageSchema.NodeTypes[nodeTypeName]);
                Assert.IsNull(StorageSchema.NodeTypes.GetItemById(nodeTypeId));
            });
        }
コード例 #2
0
        public void SchemaEditor_RemoveNodeType_WrongContext()
        {
            //-- rossz context
            SchemaEditor editor1 = new SchemaEditor();
            SchemaEditor editor2 = new SchemaEditor();
            NodeType     nt      = editor1.CreateNodeType(null, "NT", "T");

            editor2.DeleteNodeType(nt);
        }
コード例 #3
0
        public void SchemaEditor_RemoveNodeType()
        {
            SchemaEditor editor = new SchemaEditor();

            NodeType     nt1   = editor.CreateNodeType(null, "NT1", "T1");
            NodeType     nt2   = editor.CreateNodeType(nt1, "NT2", "T2");
            NodeType     nt3   = editor.CreateNodeType(nt2, "NT3", "T3");
            PropertyType slot1 = editor.CreatePropertyType("Slot1", DataType.String);
            PropertyType slot2 = editor.CreatePropertyType("Slot2", DataType.String);
            PropertyType slot3 = editor.CreatePropertyType("Slot3", DataType.String);

            editor.AddPropertyTypeToPropertySet(slot1, nt1);
            editor.AddPropertyTypeToPropertySet(slot2, nt2);
            editor.AddPropertyTypeToPropertySet(slot3, nt3);

            editor.DeleteNodeType(editor.NodeTypes["NT2"]);

            Assert.IsTrue(editor.NodeTypes.Count == 1, "#1");
        }
コード例 #4
0
        public void SchEd_WriterCalling_ReCreateNodeType()
        {
            Test(() =>
            {
                SchemaEditor ed1            = new SchemaEditor();
                SchemaEditor ed2            = new SchemaEditor();
                SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2);
                TestSchemaWriter wr         = new TestSchemaWriter();

                //-- create original
                ed1.CreatePropertyType("PT1", DataType.String);
                SetSchemaItemId(ed1.PropertyTypes["PT1"], 1);
                ed1.CreateNodeType(null, "NT1", "T1");
                SetSchemaItemId(ed1.NodeTypes["NT1"], 1);
                ed1.AddPropertyTypeToPropertySet(ed1.PropertyTypes["PT1"], ed1.NodeTypes["NT1"]);
                //-- create current
                ed2.CreatePropertyType("PT1", DataType.String);
                SetSchemaItemId(ed2.PropertyTypes["PT1"], 1);
                ed2.CreateNodeType(null, "NT1", "T1");
                SetSchemaItemId(ed2.NodeTypes["NT1"], 1);
                ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT1"]);

                //-- edit
                ed2.DeleteNodeType(ed2.NodeTypes["NT1"]);
                ed2.CreateNodeType(null, "NT1", "T1");
                ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT1"]);

                //-- register
                ed2Acc.RegisterSchema(ed1, wr);

                //-- test
                string expectedLog = @"
				Open();
				DeleteNodeType(nodeType=<NT1>);
				CreateNodeType(parent=<[null]>, name=<NT1>, className=<T1>);
				AddPropertyTypeToPropertySet(propertyType=<PT1>, owner=<NT1>, isDeclared=<True>);
				Close();
				"                .Replace("\r\n", "").Replace("\t", "").Replace(" ", "");
                string log         = wr.Log.Replace("\r\n", "").Replace(" ", "");
                Assert.IsTrue(log == expectedLog);
            });
        }
コード例 #5
0
        private void RemoveContentType(ContentType contentType, SchemaEditor editor)
        {
            // Remove recursive
            foreach (FieldSetting fieldSetting in contentType.FieldSettings)
            {
                if (fieldSetting.Owner == contentType)
                {
                    fieldSetting.ParentFieldSetting = null;
                }
            }
            foreach (ContentType childType in contentType.ChildTypes)
            {
                RemoveContentType(childType, editor);
            }
            NodeType nodeType = editor.NodeTypes[contentType.Name];

            if (nodeType != null)
            {
                editor.DeleteNodeType(nodeType);
            }
            _contentTypes.Remove(contentType.Name);
            _contentPaths.Remove(contentType.Name);
        }
コード例 #6
0
		private void RemoveContentType(ContentType contentType, SchemaEditor editor)
		{
			//-- Remove recursive
			foreach (FieldSetting fieldSetting in contentType.FieldSettings)
				if (fieldSetting.Owner == contentType)
					fieldSetting.ParentFieldSetting = null;
			foreach (ContentType childType in contentType.ChildTypes)
				RemoveContentType(childType, editor);
			NodeType nodeType = editor.NodeTypes[contentType.Name];
			if (nodeType != null)
				editor.DeleteNodeType(nodeType);
			_contentTypes.Remove(contentType.Name);
			_contentPaths.Remove(contentType.Name);
		}
コード例 #7
0
ファイル: ActiveSchemaTest.cs プロジェクト: maxpavlov/FlexNet
		public void SchemaEditor_RemoveNodeType()
		{
			SchemaEditor editor = new SchemaEditor();

			NodeType nt1 = editor.CreateNodeType(null, "NT1");
			NodeType nt2 = editor.CreateNodeType(nt1, "NT2");
			NodeType nt3 = editor.CreateNodeType(nt2, "NT3");
			PropertyType slot1 = editor.CreatePropertyType("Slot1", DataType.String);
			PropertyType slot2 = editor.CreatePropertyType("Slot2", DataType.String);
			PropertyType slot3 = editor.CreatePropertyType("Slot3", DataType.String);
			editor.AddPropertyTypeToPropertySet(slot1, nt1);
			editor.AddPropertyTypeToPropertySet(slot2, nt2);
			editor.AddPropertyTypeToPropertySet(slot3, nt3);

			editor.DeleteNodeType(editor.NodeTypes["NT2"]);

			Assert.IsTrue(editor.NodeTypes.Count == 1, "#1");

		}
コード例 #8
0
ファイル: ActiveSchemaTest.cs プロジェクト: maxpavlov/FlexNet
		public void SchemaEditor_RemoveNodeType_WrongContext()
		{
			//-- hiba: rossz context
			SchemaEditor editor1 = new SchemaEditor();
			SchemaEditor editor2 = new SchemaEditor();
			NodeType nt = editor1.CreateNodeType(null, "NT");
			editor2.DeleteNodeType(nt);
		}
コード例 #9
0
		public void SchEd_WriterCalling_ReCreateNodeType()
		{
			SchemaEditor ed1 = new SchemaEditor();
			SchemaEditor ed2 = new SchemaEditor();
			SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2);
			TestSchemaWriter wr = new TestSchemaWriter();

			//-- create original
			ed1.CreatePropertyType("PT1", DataType.String);
			SetSchemaItemId(ed1.PropertyTypes["PT1"], 1);
			ed1.CreateNodeType(null, "NT1");
			SetSchemaItemId(ed1.NodeTypes["NT1"], 1);
			ed1.AddPropertyTypeToPropertySet(ed1.PropertyTypes["PT1"], ed1.NodeTypes["NT1"]);
			//-- create current
			ed2.CreatePropertyType("PT1", DataType.String);
			SetSchemaItemId(ed2.PropertyTypes["PT1"], 1);
			ed2.CreateNodeType(null, "NT1");
			SetSchemaItemId(ed2.NodeTypes["NT1"], 1);
			ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT1"]);

			//-- edit
			ed2.DeleteNodeType(ed2.NodeTypes["NT1"]);
			ed2.CreateNodeType(null, "NT1");
			ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT1"]);

			//-- register
			ed2Acc.RegisterSchema(ed1, wr);

			//-- test
			string expectedLog = @"
				Open();
				DeleteNodeType(nodeType=<NT1>);
				CreateNodeType(parent=<[null]>, name=<NT1>, className=<>);
				AddPropertyTypeToPropertySet(propertyType=<PT1>, owner=<NT1>, isDeclared=<True>);
				Close();
				".Replace("\r\n", "").Replace("\t", "").Replace(" ", "");
			string log = wr.Log.Replace("\r\n", "").Replace(" ", "");
			Assert.IsTrue(log == expectedLog);
		}