Exemplo n.º 1
0
        public void SchemaWriter_RemovePropertyTypeFromContentListType()
        {
            IntegrationTest(() =>
            {
                var ed = new SchemaEditor();
                ed.Load();
                var lt  = ed.CreateContentListType("LT1-" + Guid.NewGuid());
                var pt0 = ed.CreateContentListPropertyType(DataType.Int, GetNextMapping(ed, true));
                var pt1 = ed.CreateContentListPropertyType(DataType.Int, GetNextMapping(ed, true));
                var pt2 = ed.CreateContentListPropertyType(DataType.Int, GetNextMapping(ed, true));
                var pt3 = ed.CreateContentListPropertyType(DataType.Int, GetNextMapping(ed, true));
                var pt4 = ed.CreateContentListPropertyType(DataType.Int, GetNextMapping(ed, true));
                lt.AddPropertyType(pt0);
                lt.AddPropertyType(pt1);
                lt.AddPropertyType(pt2);
                lt.AddPropertyType(pt3);
                lt.AddPropertyType(pt4);
                ed.Register();

                // ACTION
                ed = new SchemaEditor();
                ed.Load();
                lt = ed.ContentListTypes[lt.Name];
                lt.RemovePropertyType(ed.PropertyTypes[pt4.Name]); // last
                lt.RemovePropertyType(ed.PropertyTypes[pt2.Name]); // middle
                lt.RemovePropertyType(ed.PropertyTypes[pt0.Name]); // first
                ed.Register();

                // ASSERT
                var schema = DP.LoadSchemaAsync(CancellationToken.None).GetAwaiter().GetResult();
                var ltData = schema.ContentListTypes.First(x => x.Name == lt.Name);
                AssertSequenceEqual(new[] { pt1.Name, pt3.Name }, ltData.Properties);
            });
        }
Exemplo n.º 2
0
        public void SchemaWriter_AddPropertyTypeToContentListType()
        {
            IntegrationTest(() =>
            {
                var ed = new SchemaEditor();
                ed.Load();
                var lt = ed.CreateContentListType("LT0" + Guid.NewGuid());

                // ACTION
                var pt0 = ed.CreateContentListPropertyType(DataType.String, GetNextMapping(ed, true));
                var pt1 = ed.CreateContentListPropertyType(DataType.Int, GetNextMapping(ed, true));
                var pt2 = ed.CreateContentListPropertyType(DataType.String, GetNextMapping(ed, true));
                var pt3 = ed.CreateContentListPropertyType(DataType.Int, GetNextMapping(ed, true));
                ed.AddPropertyTypeToPropertySet(pt0, lt);
                ed.AddPropertyTypeToPropertySet(pt1, lt);
                ed.AddPropertyTypeToPropertySet(pt2, lt);
                ed.AddPropertyTypeToPropertySet(pt3, lt);
                ed.Register();

                // ASSERT
                var schema = DP.LoadSchemaAsync(CancellationToken.None).GetAwaiter().GetResult();
                var ltData = schema.ContentListTypes.First(x => x.Name == lt.Name);
                AssertSequenceEqual(new[] { pt0.Name, pt1.Name, pt2.Name, pt3.Name }, ltData.Properties);
            });
        }
Exemplo n.º 3
0
        private FieldSetting CreateNewFieldType(FieldDescriptor fieldInfo, Dictionary <string, List <string> > newBindings, ContentListType listType, SlotTable slotTable, SchemaEditor editor)
        {
            List <string> bindList = new List <string>();

            foreach (RepositoryDataType slotType in FieldManager.GetDataTypes(fieldInfo.FieldTypeShortName))
            {
                if (slotType == RepositoryDataType.NotDefined)
                {
                    continue;
                }
                int    slotNumber = slotTable.ReserveSlot((DataType)slotType);
                string binding    = EncodeBinding(slotType, slotNumber);
                bindList.Add(binding);

                PropertyType pt = editor.PropertyTypes[binding];
                if (pt == null)
                {
                    pt = editor.CreateContentListPropertyType((DataType)slotType, slotNumber);
                }
                editor.AddPropertyTypeToPropertySet(pt, listType);
            }
            newBindings.Add(fieldInfo.FieldName, bindList);

            return(FieldSetting.Create(fieldInfo, bindList, null));
        }
Exemplo n.º 4
0
        public void SchEd_WriterCalling_CreateContentListType()
        {
            Test(() =>
            {
                SchemaEditor ed1            = new SchemaEditor();
                SchemaEditor ed2            = new SchemaEditor();
                SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2);
                TestSchemaWriter wr         = new TestSchemaWriter();

                //-- create original
                ed1.CreateContentListPropertyType(DataType.String, 0);
                SetSchemaItemId(ed1.PropertyTypes["#String_0"], 1);
                //-- create current
                ed2.CreateContentListPropertyType(DataType.String, 0);
                SetSchemaItemId(ed2.PropertyTypes["#String_0"], 1);

                //-- edit
                ed2.CreateContentListType("LT1");
                ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["#String_0"], ed2.ContentListTypes["LT1"]);

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

                //-- test
                string expectedLog = @"
				Open();
				CreateContentListType(name=<LT1>);
				AddPropertyTypeToPropertySet(propertyType=<#String_0>, owner=<LT1>, isDeclared=<True>);
				Close();
				"                .Replace("\r\n", "").Replace("\t", "");
                string log         = wr.Log.Replace("\r\n", "");
                Assert.IsTrue(log == expectedLog);
            });
        }
Exemplo n.º 5
0
        public void SchemaWriter_CreateContentListPropertyType()
        {
            IntegrationTest(() =>
            {
                var ed = new SchemaEditor();
                ed.Load();
                var propertyTypeCountBefore = ed.PropertyTypes.Count;
                var lastPropertyTypeId      = ed.PropertyTypes.Max(x => x.Id);
                var mapping = GetNextMapping(ed, true);

                // ACTION
                var created          = ed.CreateContentListPropertyType(DataType.String, mapping);
                var propertyTypeName = created.Name;
                ed.Register();

                // ASSERT
                Assert.AreEqual(propertyTypeCountBefore + 1, StorageSchema.PropertyTypes.Count);
                var propType = StorageSchema.PropertyTypes[propertyTypeName];
                Assert.AreEqual(lastPropertyTypeId + 1, propType.Id);
                Assert.AreEqual(propertyTypeName, propType.Name);
                Assert.AreEqual(DataType.String, propType.DataType);
                Assert.AreEqual(800000000 + mapping, propType.Mapping);
                Assert.AreEqual(true, propType.IsContentListProperty);
            });
        }
        private PropertyType CreateContentListPropertyType(SchemaEditor editor, DataType dataType, int mapping, int id)
        {
            PropertyType pt = editor.CreateContentListPropertyType(dataType, mapping);

            SetSchemaItemId(pt, id);
            return(pt);
        }
Exemplo n.º 7
0
        public void SchemaEditor_AddWrongPropertyToNodeType()
        {
            SchemaEditor editor = new SchemaEditor();
            PropertyType pt1    = editor.CreateContentListPropertyType(DataType.String, 0);
            NodeType     nt1    = editor.CreateNodeType(null, "NT1", "T1");

            editor.AddPropertyTypeToPropertySet(pt1, nt1);
        }
Exemplo n.º 8
0
        public void SchemaEditor_AddPropertyToContentListType()
        {
            SchemaEditor editor = new SchemaEditor();
            PropertyType pt1    = editor.CreateContentListPropertyType(DataType.String, 0);
            var          lt1    = editor.CreateContentListType("LT1");

            editor.AddPropertyTypeToPropertySet(pt1, lt1);
            Assert.IsNotNull(lt1.PropertyTypes["#String_0"], "#1");
            Assert.IsTrue(lt1.Id == 0, "#2");
        }
Exemplo n.º 9
0
        public void SchemaEditor_RemoveContentListType()
        {
            SchemaEditor editor = new SchemaEditor();

            var          lt1   = editor.CreateContentListType("LT1");
            PropertyType slot1 = editor.CreateContentListPropertyType(DataType.String, 0);

            editor.AddPropertyTypeToPropertySet(slot1, lt1);

            editor.DeleteContentListType(editor.ContentListTypes["LT1"]);

            Assert.IsTrue(editor.ContentListTypes.Count == 0);
        }
Exemplo n.º 10
0
		private FieldSetting CreateNewFieldType(FieldDescriptor fieldInfo, Dictionary<string, List<string>> newBindings, ContentListType listType, SlotTable slotTable, SchemaEditor editor)
		{
			List<string> bindList = new List<string>();
			foreach (RepositoryDataType slotType in FieldManager.GetDataTypes(fieldInfo.FieldTypeShortName))
			{
				if (slotType == RepositoryDataType.NotDefined)
					continue;
				int slotNumber = slotTable.ReserveSlot((DataType)slotType);
				string binding = EncodeBinding(slotType, slotNumber);
				bindList.Add(binding);

				PropertyType pt = editor.PropertyTypes[binding];
				if (pt == null)
					pt = editor.CreateContentListPropertyType((DataType)slotType, slotNumber);
				editor.AddPropertyTypeToPropertySet(pt, listType);
			}
			newBindings.Add(fieldInfo.FieldName, bindList);

			return FieldSetting.Create(fieldInfo, bindList);
		}
Exemplo n.º 11
0
        private PropertyType CreateContentListPropertyType(SchemaEditor editor, DataType dataType, int mapping, int id)
		{
			PropertyType pt = editor.CreateContentListPropertyType(dataType, mapping);
			SetSchemaItemId(pt, id);
			return pt;
		}
Exemplo n.º 12
0
        public void SchemaEditor_AddPropertyToContentListType()
		{
			SchemaEditor editor = new SchemaEditor();
			PropertyType pt1 = editor.CreateContentListPropertyType(DataType.String, 0);
            var lt1 = editor.CreateContentListType("LT1");
			editor.AddPropertyTypeToPropertySet(pt1, lt1);
			Assert.IsNotNull(lt1.PropertyTypes["#String_0"], "#1");
			Assert.IsTrue(lt1.Id == 0, "#2");
		}
Exemplo n.º 13
0
		public void SchemaEditor_AddWrongPropertyToNodeType()
		{
			SchemaEditor editor = new SchemaEditor();
			PropertyType pt1 = editor.CreateContentListPropertyType(DataType.String, 0);
			NodeType nt1 = editor.CreateNodeType(null, "NT1");
			editor.AddPropertyTypeToPropertySet(pt1, nt1);
		}
Exemplo n.º 14
0
        public void SchemaEditor_RemoveContentListType()
		{
			SchemaEditor editor = new SchemaEditor();

            var lt1 = editor.CreateContentListType("LT1");
			PropertyType slot1 = editor.CreateContentListPropertyType(DataType.String, 0);
			editor.AddPropertyTypeToPropertySet(slot1, lt1);

			editor.DeleteContentListType(editor.ContentListTypes["LT1"]);

			Assert.IsTrue(editor.ContentListTypes.Count == 0);
		}
Exemplo n.º 15
0
        public void SchEd_WriterCalling_DeleteContentListType()
		{
			SchemaEditor ed1 = new SchemaEditor();
			SchemaEditor ed2 = new SchemaEditor();
			SchemaEditorAccessor ed2Acc = new SchemaEditorAccessor(ed2);
			TestSchemaWriter wr = new TestSchemaWriter();

			//-- create original
			ed1.CreateContentListPropertyType(DataType.String, 0);
			SetSchemaItemId(ed1.PropertyTypes["#String_0"], 1);
			ed1.CreateContentListType("LT1");
			SetSchemaItemId(ed1.ContentListTypes["LT1"], 1);
			ed1.AddPropertyTypeToPropertySet(ed1.PropertyTypes["#String_0"], ed1.ContentListTypes["LT1"]);
			//-- create current
			ed2.CreateContentListPropertyType(DataType.String, 0);
			SetSchemaItemId(ed2.PropertyTypes["#String_0"], 1);
			ed2.CreateContentListType("LT1");
			SetSchemaItemId(ed2.ContentListTypes["LT1"], 1);
			ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["#String_0"], ed2.ContentListTypes["LT1"]);

			//-- edit
			ed2.DeleteContentListType(ed2.ContentListTypes["LT1"]);

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

			//-- test
			string expectedLog = @"
				Open();
				DeleteContentListType(contentListType=<LT1>);
				Close();
				".Replace("\r\n", "").Replace("\t", "").Replace(" ", "");
			string log = wr.Log.Replace("\r\n", "").Replace(" ", "");
			Assert.IsTrue(log == expectedLog);
		}