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); }); }
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); }); }
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)); }
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); }); }
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); }
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); }
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"); }
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); }
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); }
private PropertyType CreateContentListPropertyType(SchemaEditor editor, DataType dataType, int mapping, int id) { PropertyType pt = editor.CreateContentListPropertyType(dataType, mapping); SetSchemaItemId(pt, id); return pt; }
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"); }
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); }
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); }
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); }