public void Test_mapping_complex_type_with_complex_element_to_single_acc() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_complex_element_to_single_acc\mapping.mfd"); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_complex_element_to_single_acc\invoice\maindoc\UBL-Invoice-2.0.xsd"); SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName); var expectedSimpleTypeMappings = new List <SimpleTypeToCdtMapping>(); var issueDateTypeMapping = new ComplexTypeToCdtMapping("Issue", "IssueDateType", new List <ElementMapping>()) { TargetCdt = cdtDateTime }; var orderReferenceTypeMapping = new ComplexTypeToAccMapping("OrderReference", "OrderReferenceType", new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("IssueDate", null, XsdObjectType.Element, null), bccIssue, issueDateTypeMapping), }); var expectedComplexTypeMappings = new List <IMapping> { issueDateTypeMapping, orderReferenceTypeMapping, }; var expectedRootElementMapping = new AsmaMapping(new SourceItem("OrderReference", null, XsdObjectType.Element, null)) { TargetMapping = orderReferenceTypeMapping }; AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping); }
public void Test_mapping_simple_element_and_attributes_to_acc_with_mapping_function_split() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_simple_element_and_attributes_to_acc_with_mapping_function_split\mapping.mfd"); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_simple_element_and_attributes_to_acc_with_mapping_function_split\source.xsd"); SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName); SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText); var expectedSimpleTypeMappings = new List <SimpleTypeToCdtMapping> { stringMapping, }; var addressTypeMapping = new ComplexTypeToAccMapping("Address", "AddressType", new List <ElementMapping> { new SplitMapping(new SourceItem("Street", null, XsdObjectType.Element, null), new[] { bccStreetName, bccBuildingNumber }, new [] { stringMapping, stringMapping }), new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("Town", null, XsdObjectType.Element, null), bccCityName, stringMapping), }); var expectedComplexTypeMappings = new List <IMapping> { addressTypeMapping, }; var expectedRootElementMapping = new AsmaMapping(new SourceItem("Address", null, XsdObjectType.Element, null)) { TargetMapping = addressTypeMapping }; AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping); }
public void Test_mapping_complex_type_with_simple_elements_and_attributes_to_cdt() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_simple_elements_and_attributes_to_cdt\mapping.mfd"); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_simple_elements_and_attributes_to_cdt\source.xsd"); SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName); var textTypeMapping = new ComplexTypeToCdtMapping("Text", "TextType", new List <ElementMapping> { new AttributeOrSimpleElementToSupMapping(new SourceItem("Language", null, XsdObjectType.Attribute, null), supTextLanguage), new AttributeOrSimpleElementToSupMapping(new SourceItem("LanguageLocale", null, XsdObjectType.Attribute, null), supTextLanguageLocale), }); var addressTypeMapping = new ComplexTypeToAccMapping("Address", "AddressType", new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, textTypeMapping), }); var expectedComplexTypeMappings = new List <IMapping> { textTypeMapping, addressTypeMapping, }; var expectedRootElementMapping = new AsmaMapping(new SourceItem("Address", null, XsdObjectType.Element, null)) { TargetMapping = addressTypeMapping }; AssertMappings(mappings, expectedComplexTypeMappings, new List <SimpleTypeToCdtMapping>(), expectedRootElementMapping); }
public void Test_mapping_complex_type_with_two_simple_elements_to_two_accs() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_two_simple_elements_to_two_accs\mapping.mfd"); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_two_simple_elements_to_two_accs\source.xsd"); SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName); SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText); var expectedSimpleTypeMappings = new List <SimpleTypeToCdtMapping> { stringMapping, }; var addressTypeMapping = new ComplexTypeToMaMapping("Address", "AddressType", new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, stringMapping), new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("PersonName", null, XsdObjectType.Element, null), bccPartyName, stringMapping), }); var expectedComplexTypeMappings = new List <IMapping> { addressTypeMapping, }; var expectedRootElementMapping = new AsmaMapping(new SourceItem("Address", null, XsdObjectType.Element, null)) { TargetMapping = addressTypeMapping }; AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping); }
public void Test_mapping_two_complex_types_with_complex_elements_to_duplicated_bcc() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_two_complex_types_with_complex_elements_to_duplicated_bcc\mapping.mfd"); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_two_complex_types_with_complex_elements_to_duplicated_bcc\source.xsd"); SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName); var textTypeToTextMapping = new ComplexTypeToCdtMapping("Text", "TextType", new List <ElementMapping> { new AttributeOrSimpleElementToSupMapping(new SourceItem("Language", null, XsdObjectType.Attribute, null), supTextLanguage), }); var austrianAddressTypeMapping = new ComplexTypeToAccMapping("AustrianAddress", "AustrianAddressType", new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, textTypeToTextMapping), }); var indianAddressTypeMapping = new ComplexTypeToAccMapping("IndianAddress", "IndianAddressType", new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, textTypeToTextMapping), }); var addressBookTypeMapping = new ComplexTypeToMaMapping("AddressBook", "AddressBookType", new List <ElementMapping> { new AsmaMapping(new SourceItem("AustrianAddress", null, XsdObjectType.Element, null)) { TargetMapping = austrianAddressTypeMapping }, new AsmaMapping(new SourceItem("IndianAddress", null, XsdObjectType.Element, null)) { TargetMapping = indianAddressTypeMapping }, }); var expectedComplexTypeMappings = new List <IMapping> { textTypeToTextMapping, austrianAddressTypeMapping, indianAddressTypeMapping, addressBookTypeMapping, }; var expectedRootElementMapping = new AsmaMapping(new SourceItem("InternationalAddressBook", null, XsdObjectType.Element, null)) { TargetMapping = addressBookTypeMapping }; AssertMappings(mappings, expectedComplexTypeMappings, new List <SimpleTypeToCdtMapping>(), expectedRootElementMapping); }
public void Test_mapping_with_semisemantic_loss() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_with_semisemantic_loss\mapping.mfd"); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_with_semisemantic_loss\source.xsd"); SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName); SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText); var expectedSimpleTypeMappings = new List <SimpleTypeToCdtMapping> { stringMapping, }; var addressTypeMapping = new ComplexTypeToAccMapping("Address", "AddressType", new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("StreetName", null, XsdObjectType.Element, null), bccCityName, stringMapping), new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("Town", null, XsdObjectType.Element, null), bccCityName, stringMapping), }); var personTypeMapping = new ComplexTypeToAccMapping("Person", "PersonType", new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("FirstName", null, XsdObjectType.Element, null), bccPartyName, stringMapping), new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("LastName", null, XsdObjectType.Element, null), bccPartyName, stringMapping), new ComplexElementToAsccMapping(new SourceItem("HomeAddress", null, XsdObjectType.Element, null), asccPartyResidenceAddress) { TargetMapping = addressTypeMapping }, new ComplexElementToAsccMapping(new SourceItem("WorkAddress", null, XsdObjectType.Element, null), asccPartyResidenceAddress) { TargetMapping = addressTypeMapping }, }); var expectedComplexTypeMappings = new List <IMapping> { addressTypeMapping, personTypeMapping }; var expectedRootElementMapping = new AsmaMapping(new SourceItem("Person", null, XsdObjectType.Element, null)) { TargetMapping = personTypeMapping }; AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping); }
public void Test_mapping_recursive_complex_type() { var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_recursive_complex_type\mapping.mfd"); var xsdFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_recursive_complex_type\source.xsd"); SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName); SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText); var expectedSimpleTypeMappings = new List <SimpleTypeToCdtMapping> { stringMapping, }; List <ElementMapping> personTypeChildMappings = new List <ElementMapping> { new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("FirstName", null, XsdObjectType.Element, null), bccPartyName, stringMapping), new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("LastName", null, XsdObjectType.Element, null), bccPartyName, stringMapping), }; var personTypeMapping = new ComplexTypeToAccMapping("Person", "PersonType", personTypeChildMappings); personTypeMapping.AddChildMapping(new ComplexElementToAsccMapping(new SourceItem("Children", null, XsdObjectType.Element, null), asccPartyChildren) { TargetMapping = personTypeMapping }); var expectedComplexTypeMappings = new List <IMapping> { personTypeMapping }; var expectedRootElementMapping = new AsmaMapping(new SourceItem("Person", null, XsdObjectType.Element, null)) { TargetMapping = personTypeMapping }; AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping); }
private static void AssertMappings(SchemaMapping mappings, List <IMapping> expectedComplexTypeMappings, List <SimpleTypeToCdtMapping> expectedSimpleTypeMappings, AsmaMapping expectedRootElementMapping) { var complexTypeMappings = new List <ComplexTypeMapping>(mappings.GetComplexTypeMappings()); Console.Out.WriteLine("================================================================================="); Console.Out.WriteLine("Expected Complex Type Mappings:"); foreach (IMapping expectedMapping in expectedComplexTypeMappings) { expectedMapping.TraverseDepthFirst(new MappingPrettyPrinter(Console.Out, " ")); } Console.Out.WriteLine("================================================================================="); Console.Out.WriteLine("Actual Complex Type Mappings:"); foreach (ComplexTypeMapping complexTypeMapping in complexTypeMappings) { complexTypeMapping.TraverseDepthFirst(new MappingPrettyPrinter(Console.Out, " ")); } var simpleTypeMappings = new List <SimpleTypeToCdtMapping>(mappings.GetSimpleTypeMappings()); Console.Out.WriteLine("================================================================================="); Console.Out.WriteLine("Expected Simple Type Mappings:"); foreach (IMapping expectedMapping in expectedSimpleTypeMappings) { expectedMapping.TraverseDepthFirst(new MappingPrettyPrinter(Console.Out, " ")); } Console.Out.WriteLine("================================================================================="); Console.Out.WriteLine("Actual Simple Type Mappings:"); foreach (var simpleTypeMapping in simpleTypeMappings) { simpleTypeMapping.TraverseDepthFirst(new MappingPrettyPrinter(Console.Out, " ")); } Assert.That(complexTypeMappings, Is.EquivalentTo(expectedComplexTypeMappings)); Assert.That(simpleTypeMappings, Is.EquivalentTo(expectedSimpleTypeMappings)); Assert.That(((AsmaMapping)mappings.RootElementMapping).TargetMapping, Is.EqualTo(expectedRootElementMapping.TargetMapping)); Assert.That(mappings.RootElementMapping, Is.EqualTo(expectedRootElementMapping)); }