public void ShouldWorkWithASingleInputSchemaComponent() { var mapForceMapping = new MapForceMapping(new List <SchemaComponent> { new SchemaComponent("Schema1.xsd", "{http://www.ebinterface.at/schema/3p0/}Entry1", new[] { new Namespace("http://www.ebinterface.at/schema/3p0/"), }, new Entry("Entry1", InputOutputKey.None, XsdObjectType.Element, new[] { new Entry("Entry2", InputOutputKey.Output(null, "2"), XsdObjectType.Element, new[] { new Entry("Entry3", InputOutputKey.Output(null, "3"), XsdObjectType.Element), }), })), }, new List <ConstantComponent>(), new List <FunctionComponent>(), new Graph(new Vertex[0])); var expectedRoot = new SourceItem("Entry1", null, XsdObjectType.Element, null); var expectedChild1 = new SourceItem("Entry2", null, XsdObjectType.Element, null); var expectedChild2 = new SourceItem("Entry3", null, XsdObjectType.Element, null); expectedRoot.AddChild(expectedChild1); expectedChild1.AddChild(expectedChild2); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\mapForceSourceElementTreeTests\Schema1.xsd"); XmlSchemaSet xmlSchemaSet = new XmlSchemaSet(); xmlSchemaSet.Add(XmlSchema.Read(XmlReader.Create(xsdFileName), null)); var sourceElementTree = new MapForceSourceItemTree(mapForceMapping, xmlSchemaSet); AssertTreesAreEqual(expectedRoot, sourceElementTree.RootSourceItem, string.Empty); }
public void ShouldBuildCompleteSourceElementTree() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\mapForceSourceElementTreeTests\BuildCompleteSourceElementTree\mapping.mfd"); var mapForceMapping = LinqToXmlMapForceMappingImporter.ImportFromFiles(mappingFileName); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\mapForceSourceElementTreeTests\BuildCompleteSourceElementTree\source.xsd"); XmlSchemaSet xmlSchemaSet = new XmlSchemaSet(); xmlSchemaSet.Add(XmlSchema.Read(XmlReader.Create(xsdFileName), null)); var person = new SourceItem("Person", null, XsdObjectType.Element, null); var personNameElement = new SourceItem("Name", null, XsdObjectType.Element, null); var personNameAttribute = new SourceItem("Name", null, XsdObjectType.Attribute, null); var personHomeAddress = new SourceItem("HomeAddress", null, XsdObjectType.Element, null); var addressTown = new SourceItem("Town", null, XsdObjectType.Element, null); person.AddChild(personNameElement); person.AddChild(personHomeAddress); person.AddChild(personNameAttribute); personHomeAddress.AddChild(addressTown); var sourceElementTree = new MapForceSourceItemTree(mapForceMapping, xmlSchemaSet); AssertTreesAreEqual(person, sourceElementTree.RootSourceItem, string.Empty); }
public void ShouldAttachConnectedSchemaComponentsToRootSchemaComponent() { var mapForceMapping = new MapForceMapping(new List <SchemaComponent> { new SchemaComponent("Schema3.xsd", "{http://www.ebinterface.at/schema/3p0/}Entry1", new[] { new Namespace("http://www.ebinterface.at/schema/3p0/"), }, new Entry("Entry1", InputOutputKey.None, XsdObjectType.Element, new[] { new Entry("Entry2", InputOutputKey.Output(null, "2"), XsdObjectType.Element, new[] { new Entry("Entry3", InputOutputKey.Output(null, "3"), XsdObjectType.Element), }), new Entry("Entry4", InputOutputKey.None, XsdObjectType.Element), })), new SchemaComponent("Schema2.xsd", "{http://www.ebinterface.at/schema/3p0/}Entry4", new[] { new Namespace("http://www.ebinterface.at/schema/3p0/"), }, new Entry("Entry4", InputOutputKey.None, XsdObjectType.Element, new[] { new Entry("Entry5", InputOutputKey.Output(null, "5"), XsdObjectType.Element), })), }, new List <ConstantComponent> { new ConstantComponent("Root:Entry1", InputOutputKey.Output(null, "6")), }, new List <FunctionComponent>(), new Graph(new Vertex[0])); var entry1 = new SourceItem("Entry1", null, XsdObjectType.Element, null); var entry2 = new SourceItem("Entry2", null, XsdObjectType.Element, null); var entry3 = new SourceItem("Entry3", null, XsdObjectType.Element, null); var entry4 = new SourceItem("Entry4", null, XsdObjectType.Element, null); var entry5 = new SourceItem("Entry5", null, XsdObjectType.Element, null); entry1.AddChild(entry2); entry2.AddChild(entry3); entry1.AddChild(entry4); entry4.AddChild(entry5); XmlSchemaSet xmlSchemaSet = new XmlSchemaSet(); xmlSchemaSet.Add(XmlSchema.Read(XmlReader.Create(TestUtils.PathToTestResource(@"XSDImporterTest\mapping\mapForceSourceElementTreeTests\Schema3.xsd")), null)); var sourceElementTree = new MapForceSourceItemTree(mapForceMapping, xmlSchemaSet); AssertTreesAreEqual(entry1, sourceElementTree.RootSourceItem, string.Empty); }
public void ShouldAttachXsdChoiceInformationToSourceElements() { var mapForceMapping = new MapForceMapping(new List <SchemaComponent> { new SchemaComponent("Schema4.xsd", "{http://www.ebinterface.at/schema/3p0/}Entry1", new[] { new Namespace("http://www.ebinterface.at/schema/3p0/"), }, new Entry("Entry1", InputOutputKey.None, XsdObjectType.Element, new[] { new Entry("Entry2", InputOutputKey.Output(null, "2"), XsdObjectType.Element, new[] { new Entry("Entry3", InputOutputKey.Output(null, "3"), XsdObjectType.Element), }), new Entry("Entry4", InputOutputKey.None, XsdObjectType.Element), })), new SchemaComponent("Schema2.xsd", "{http://www.ebinterface.at/schema/3p0/}Entry4", new[] { new Namespace("http://www.ebinterface.at/schema/3p0/"), }, new Entry("Entry4", InputOutputKey.None, XsdObjectType.Element, new[] { new Entry("Entry5", InputOutputKey.Output(null, "5"), XsdObjectType.Element), })), }, new List <ConstantComponent> { new ConstantComponent("Root:Entry1", InputOutputKey.Output(null, "6")), }, new List <FunctionComponent>(), new Graph(new Vertex[0])); XmlSchemaSet xmlSchemaSet = new XmlSchemaSet(); xmlSchemaSet.Add(XmlSchema.Read(XmlReader.Create(TestUtils.PathToTestResource(@"XSDImporterTest\mapping\mapForceSourceElementTreeTests\Schema4.xsd")), null)); var sourceElementTree = new MapForceSourceItemTree(mapForceMapping, xmlSchemaSet); Assert.That(sourceElementTree.RootSourceItem.XsdTypeName, Is.EqualTo("Entry1Type")); Assert.That(sourceElementTree.RootSourceItem.Children[0].XsdTypeName, Is.EqualTo("Entry2Type")); Assert.That(sourceElementTree.RootSourceItem.Children[0].Children[0].XsdTypeName, Is.EqualTo("String")); Assert.That(sourceElementTree.RootSourceItem.Children[1].XsdTypeName, Is.EqualTo("Entry4Type")); Assert.That(sourceElementTree.RootSourceItem.Children[1].Children[0].XsdTypeName, Is.EqualTo("String")); }