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 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 SchEd_WriterCalling_ModifyNodeType_ChangeParent() { 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.CreatePropertyType("PT2", DataType.String); SetSchemaItemId(ed1.PropertyTypes["PT1"], 2); ed1.CreatePropertyType("PT3", DataType.String); SetSchemaItemId(ed1.PropertyTypes["PT1"], 3); NodeType nt1 = ed1.CreateNodeType(null, "NT1", "T1"); SetSchemaItemId(ed1.NodeTypes["NT1"], 1); NodeType nt2 = ed1.CreateNodeType(null, "NT2", "T2"); SetSchemaItemId(ed1.NodeTypes["NT2"], 2); NodeType nt3 = ed1.CreateNodeType(nt1, "NT3", "T3"); SetSchemaItemId(ed1.NodeTypes["NT3"], 3); ed1.AddPropertyTypeToPropertySet(ed1.PropertyTypes["PT1"], ed1.NodeTypes["NT1"]); ed1.AddPropertyTypeToPropertySet(ed1.PropertyTypes["PT2"], ed1.NodeTypes["NT2"]); ed1.AddPropertyTypeToPropertySet(ed1.PropertyTypes["PT3"], ed1.NodeTypes["NT3"]); //-- create current ed2.CreatePropertyType("PT1", DataType.String); SetSchemaItemId(ed2.PropertyTypes["PT1"], 1); ed2.CreatePropertyType("PT2", DataType.String); SetSchemaItemId(ed2.PropertyTypes["PT1"], 2); ed2.CreatePropertyType("PT3", DataType.String); SetSchemaItemId(ed2.PropertyTypes["PT1"], 3); nt1 = ed2.CreateNodeType(null, "NT1", "T1"); SetSchemaItemId(ed2.NodeTypes["NT1"], 1); nt2 = ed2.CreateNodeType(null, "NT2", "T2"); SetSchemaItemId(ed2.NodeTypes["NT2"], 2); nt3 = ed2.CreateNodeType(nt1, "NT3", "T3"); SetSchemaItemId(ed2.NodeTypes["NT3"], 3); ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT1"]); ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT2"], ed2.NodeTypes["NT2"]); ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT3"], ed2.NodeTypes["NT3"]); //-- edit ed2.ModifyNodeType(ed2.NodeTypes["NT3"], ed2.NodeTypes["NT2"]); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string expectedLog = @" Open(); ModifyNodeType(nodeType=<NT3>, parent=<NT2>, className=<T3>); RemovePropertyTypeFromPropertySet(propertyType=<PT1>, owner=<NT3>); AddPropertyTypeToPropertySet(propertyType=<PT2>, owner=<NT3>, isDeclared=<True>); Close(); " .Replace("\r\n", "").Replace("\t", "").Replace(" ", ""); string log = wr.Log.Replace("\r\n", "").Replace(" ", ""); Assert.IsTrue(log == expectedLog, "#1"); Assert.IsNull(nt1.Parent, "#2"); Assert.IsNull(nt2.Parent, "#3"); Assert.IsTrue(nt3.Parent == nt2, "#4"); Assert.IsTrue(nt1.PropertyTypes.Count == 1, "#5"); Assert.IsTrue(nt2.PropertyTypes.Count == 1, "#6"); Assert.IsTrue(nt3.PropertyTypes.Count == 2, "#7"); Assert.IsNotNull(nt1.PropertyTypes["PT1"], "#8"); Assert.IsNotNull(nt2.PropertyTypes["PT2"], "#9"); Assert.IsNotNull(nt3.PropertyTypes["PT3"], "#10"); Assert.IsNull(nt3.PropertyTypes["PT1"], "#11"); Assert.IsNotNull(nt3.PropertyTypes["PT2"], "#12"); }); }
public void SchEd_WriterCalling_ModifyNodeType() { 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.ModifyNodeType(ed2.NodeTypes["NT1"], "ClassName2"); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string log = wr.Log.Replace("\r\n", ""); Assert.IsTrue(log == "Open();ModifyNodeType(nodeType=<NT1>, parent=<[null]>, className=<ClassName2>);Close();"); }); }
public void SchEd_WriterCalling_CreateNodeType() { 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); //-- create current ed2.CreatePropertyType("PT1", DataType.String); SetSchemaItemId(ed2.PropertyTypes["PT1"], 1); //-- edit ed2.CreateNodeType(null, "NT1", "T1"); ed2.AddPropertyTypeToPropertySet(ed2.PropertyTypes["PT1"], ed2.NodeTypes["NT1"]); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string expectedLog = @" Open(); CreateNodeType(parent=<[null]>, name=<NT1>, className=<T1>); AddPropertyTypeToPropertySet(propertyType=<PT1>, owner=<NT1>, isDeclared=<True>); Close(); " .Replace("\r\n", "").Replace("\t", ""); string log = wr.Log.Replace("\r\n", ""); Assert.IsTrue(log == expectedLog); }); }
public void SchEd_WriterCalling_ReCreatePropertyType() { 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); //-- create current ed2.CreatePropertyType("PT1", DataType.String); SetSchemaItemId(ed2.PropertyTypes["PT1"], 1); //-- edit ed2.DeletePropertyType(ed2.PropertyTypes["PT1"]); ed2.CreatePropertyType("PT1", DataType.String); //-- register ed2Acc.RegisterSchema(ed1, wr); //-- test string log = wr.Log.Replace("\r\n", ""); Assert.IsTrue(log == "Open();CreatePropertyType(name=<PT1>, dataType=<String>, isContentListProperty=<False>);DeletePropertyType(propertyType=<PT1>);Close();"); }); }
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); }); }