Exemplo n.º 1
0
        public void t11_TargetDocumentId()
        {
            // Create xml document
            XmlDocument data = createDataPool().RootNode.InnerXmlNode.OwnerDocument;

            // We use a dedicated SIEE_Adapter for this test.  We must first register it in the FactoryManager.
            SIEEFactory factory = new Test_SIEEFactory();

            SIEEFactoryManager.Add(factory);

            // We use a default SIEE_Adapter_Settings object and set the Schema
            EECWriterSettings adapterSettings = createWriterSettings(new SIEEFieldlist());

            SIEEWriterExport adapterExport = new SIEEWriterExport();

            adapterExport.Configure(adapterSettings);

            Test_SIEEExport.ExportFunc = (settings, doc, name, fieldlist) =>
            {
                doc.TargetDocumentId = "4711";
            };

            DataPool pool = new DataPool(adapterExport.transform(data, null));

            Assert.AreEqual("4711", pool.RootNode.Documents[0].Annotations["TargetDocumentId"].Value);
            Assert.AreEqual("SIEE_Adapter", pool.RootNode.Documents[0].Annotations["TargetType"].Value);
        }
        public override void Reload()
        {
            Fields.Clear();

            EECWriterSettings writerSettings = (EECWriterSettings)control.ExportDestinationSettings;

            SIEEFieldlist fieldlist = writerSettings.CreateSchema();

            if (fieldlist == null)
            {
                throw (new Exception("No valid definition to create schema"));
            }

            foreach (SIEEField field in fieldlist)
            {
                if (field is SIEETableField)
                {
                    CustomExportDestinationTable newTable = new CustomExportDestinationTable(field.Name);
                    newTable.ExternalId = field.ExternalId;
                    foreach (SIEEField columnField in ((SIEETableField)field).Columns)
                    {
                        CustomExportDestinationField newCol = new CustomExportDestinationField(columnField.Name);
                        newCol.ExternalId = columnField.ExternalId;
                        newTable.Fields.Add(newCol);
                    }
                    Fields.Add(newTable);
                }
                else
                {
                    CustomExportDestinationField newField = new CustomExportDestinationField(field.Name);
                    newField.ExternalId = field.ExternalId;
                    Fields.Add(newField);
                }
            }
        }
 protected void Initialize(SIEEFactory f)
 {
     factory = f;
     SIEEFactoryManager.Add(factory);
     settings = new EECWriterSettings();
     settings.SetFactory(factory);
     description = f.CreateDescription();
 }
Exemplo n.º 4
0
        public void t09_SIEEAnnotation()
        {
            // Create a data pool
            DataPool pool = createDataPool();

            pool.RootNode.Documents[0].Fields["field1"].Value = "field1value";

            // Create an xml document from the data pool
            XmlDocument data;

            data = pool.RootNode.InnerXmlNode.OwnerDocument;

            // We use a dedicated SIEE_Adapter for this test.  We must first register it in the FactoryManager.
            SIEEFactory factory = new Test_SIEEFactory();

            SIEEFactoryManager.Add(factory);

            // We use a default SIEE_Adapter_Settings object and set the Schema
            EECWriterSettings adapterSettings = createWriterSettings(new SIEEFieldlist()
            {
                { new SIEEField()
                  {
                      Name = "field1", ExternalId = ""
                  } },
                { new SIEEField()
                  {
                      Name = "field2", ExternalId = ""
                  } },
            });

            SIEEWriterExport adapterExport = new SIEEWriterExport();

            adapterExport.Configure(adapterSettings);

            Test_SIEEExport.ExportFunc = (settings, doc, name, fieldlist) =>
            {
                int val = 0;
                if (doc.SIEEAnnotation != null)
                {
                    val = int.Parse(doc.SIEEAnnotation);
                }
                if (val <= 3)
                {
                    doc.NewSIEEAnnotation = (val + 1).ToString();
                }
                throw new Exception("Some exception");
            };
            int count = 1;

            pool = new DataPool(adapterExport.transform(data, null));
            t09_testAnnotation(pool, count++);
            pool = new DataPool(adapterExport.transform(pool.RootNode.InnerXmlNode.OwnerDocument, null));
            t09_testAnnotation(pool, count++);
            pool = new DataPool(adapterExport.transform(pool.RootNode.InnerXmlNode.OwnerDocument, null));
            t09_testAnnotation(pool, count);
            pool = new DataPool(adapterExport.transform(pool.RootNode.InnerXmlNode.OwnerDocument, null));
            t09_testAnnotation(pool, count);
        }
Exemplo n.º 5
0
        public void t01_EmptyFieldHandling()
        {
            // First we create the runtime document that is to be exported.
            DataPool pool = createDataPool();

            Document doc = pool.RootNode.Documents[0];

            doc.Fields["field1"].Value = "field1value";               // should show up
            doc.Fields.Add(new Field(pool, "field2", "field2value")); // should be ignored
            doc.Fields.Add(new Field(pool, "field3", "field3value")); // should be ignored

            // Create an xml document from the data pool
            XmlDocument data = pool.RootNode.InnerXmlNode.OwnerDocument;

            EECWriterSettings adapterSettings = createWriterSettings(new SIEEFieldlist()
            {
                { new SIEEField()
                  {
                      Name = "field1", ExternalId = ""
                  } },
                { new SIEEField()
                  {
                      Name = "field2", ExternalId = ""
                  } },
                { new SIEEField()
                  {
                      Name = "field3", Value = "default value dor field3"
                  } }
            });

            SIEEWriterExport adapterExport = new SIEEWriterExport();

            adapterExport.FieldMapping4UnitTest.Add("field1");  // we just want to simulate one mapped field
            adapterExport.Configure(adapterSettings);

            SIEEFieldlist lastFieldList = null;

            Test_SIEEExport.ExportFunc = (settings, document, name, fl) =>
            {
                lastFieldList = fl;
            };
            adapterExport.transform(data, null);    // do the export

            // The test export actually has not exported anything but stored the field list internally.
            // We execute the assertions on this result field list.
            SIEEFieldlist fieldlist = lastFieldList;

            Assert.AreEqual("field1value", fieldlist.Where(n => n.Name == "field1").First().Value, "field1 != null");
            Assert.IsNull(fieldlist.Where(n => n.Name == "field2").First().Value, "field2 == null");
            Assert.AreEqual("default value dor field3", fieldlist.Where(n => n.Name == "field3").First().Value, "field3 has default value");
        }
Exemplo n.º 6
0
        public class Test_SIEESettings : SIEESettings { } // just there to index the SIEE_FactoryManager

        private EECWriterSettings createWriterSettings(SIEEFieldlist schema)
        {
            EECWriterSettings adapterSettings = new EECWriterSettings();

            adapterSettings.SerializedSchema = SIEESerializer.ObjectToString(schema);
            Test_SIEESettings myTestSettings = new Test_SIEESettings();

            adapterSettings.SettingsTypename = myTestSettings.GetType().ToString();
            string xmlString = Serializer.SerializeToXmlString(myTestSettings, System.Text.Encoding.Unicode);

            adapterSettings.SerializedSettings = SIEESerializer.ObjectToString(xmlString);
            adapterSettings.FieldsMapper       = new CustomFieldsMapper(); // (Empty), does nothing but must he there
            return(adapterSettings);
        }
Exemplo n.º 7
0
        public void t10_ListFieldHandling()
        {
            // First we create the runtime document that is to be exported.
            DataPool pool = createDataPool();
            Document doc  = pool.RootNode.Documents[0];

            doc.Fields["field1"].Value = "field1value";
            doc.Fields.Add(new Field(pool, "field2", "field2value"));
            doc.Fields.Add(new Field(pool, "field3", "field3value"));
            doc.Fields.Add(new Field(pool, "field4", "field4value"));
            doc.Fields.Add(new Field(pool, "field5", "field5value"));
            doc.Fields.Add(new Field(pool, "field6", "field6value"));

            addFieldList(pool, doc.Fields["field1"], 2);    // to ba ignored
                                                            // field2 --> no list
            addFieldList(pool, doc.Fields["field3"], 2);    // fewer subfields
            addFieldList(pool, doc.Fields["field4"], 4);    // exact
            addFieldList(pool, doc.Fields["field5"], 6);    // more sub fields
            addFieldList(pool, doc.Fields["field6"], 42);   // no limits

            // Create an xml document from the data pool
            XmlDocument data;

            data = pool.RootNode.InnerXmlNode.OwnerDocument;

            EECWriterSettings adapterSettings = createWriterSettings(new SIEEFieldlist()
            {
                { new SIEEField()
                  {
                      Name = "field1",
                  } },
                { new SIEEField()
                  {
                      Name = "field2", Cardinality = 2
                  } },
                { new SIEEField()
                  {
                      Name = "field3", Cardinality = 3
                  } },
                { new SIEEField()
                  {
                      Name = "field4", Cardinality = 4
                  } },
                { new SIEEField()
                  {
                      Name = "field5", Cardinality = 5
                  } },
                { new SIEEField()
                  {
                      Name = "field6", Cardinality = -1
                  } },
            });

            SIEEWriterExport adapterExport = new SIEEWriterExport();

            adapterExport.FieldMapping4UnitTest.Add("field1");
            adapterExport.FieldMapping4UnitTest.Add("field2");
            adapterExport.FieldMapping4UnitTest.Add("field3");
            adapterExport.FieldMapping4UnitTest.Add("field4");
            adapterExport.FieldMapping4UnitTest.Add("field5");
            adapterExport.FieldMapping4UnitTest.Add("field6");

            adapterExport.Configure(adapterSettings);

            SIEEFieldlist lastFieldList = null;

            Test_SIEEExport.ExportFunc = (settings, document, name, fl) =>
            {
                lastFieldList = fl;
            };
            adapterExport.transform(data, null);    // do the export

            // The test export actually has not exported anything but stored the field list internally.
            // We execute the assertions on this result field list.
            SIEEFieldlist fieldlist = lastFieldList;

            verfiyValueList(lastFieldList, "field1", "field1value", 0);
            verfiyValueList(lastFieldList, "field2", "field2value", 0);
            verfiyValueList(lastFieldList, "field3", "field3value", 2);
            verfiyValueList(lastFieldList, "field4", "field4value", 4);
            verfiyValueList(lastFieldList, "field5", "field5value", 5);
            verfiyValueList(lastFieldList, "field6", "field6value", 42);
        }