public void WhenReadFromStreamMethodIsCalledWithUnpositionedStreamTheReaderMustCallStreamSeekMethod()
        {
            var fakeFs  = A.Fake <IFileSystem>();
            var fakeMsf = A.Fake <IMemoryStreamFactory>();

            var fakeStream = A.Fake <System.IO.MemoryStream>();

            A.CallTo(() => fakeStream.CanRead).Returns(true);
            A.CallTo(() => fakeStream.Length).Returns(1);
            A.CallTo(() => fakeStream.Position).Returns(1);
            A.CallTo(() => fakeStream.Seek(0, System.IO.SeekOrigin.Begin)).Returns(0);

            var readerclass = new XmlSchemaReader(fakeFs, fakeMsf);

            try
            {
                readerclass.ReadFromStream(fakeStream);
            }
#pragma warning disable CC0004 // Catch block cannot be empty
            catch (Exception)
            {
                // do nothing
            }
#pragma warning restore CC0004 // Catch block cannot be empty

            A.CallTo(() => fakeStream.Seek(0, System.IO.SeekOrigin.Begin)).MustHaveHappened();
        }
        public void WhenUsingNullPathTheReaderMustThrowArgumentException()
        {
            var readerclass = new XmlSchemaReader(new FileSystem(), new MemoryStreamFactory());

            readerclass.ReadFromPath(null);

            Assert.Fail("Should not reach this point.");
        }
        public void WhenUsingNullByteArrayTheReaderMustThrowArgumentNullException()
        {
            var          readerclass = new XmlSchemaReader(new FileSystem(), new MemoryStreamFactory());
            const byte[] array       = null;

            readerclass.ReadFromByteArray(array);

            Assert.Fail("Should not reach this point.");
        }
        public void WhenFileSystemThrowsExceptionTheReaderMustThrowInvalidOperationException()
        {
            var fakeFs  = A.Fake <IFileSystem>();
            var fakeMsf = A.Fake <IMemoryStreamFactory>();

            A.CallTo(() => fakeFs.File.Exists(string.Empty)).Returns(true);
            A.CallTo(() => fakeFs.FileStream.Create(string.Empty, System.IO.FileMode.Open)).Throws <Exception>();

            var readerclass = new XmlSchemaReader(fakeFs, fakeMsf);

            readerclass.ReadFromPath(string.Empty);

            Assert.Fail("Should not reach this point.");
        }
        public void WhenReadFromStreamMethodIsCalledWithNonReadableStreamTheReaderMustThrowArgumentException()
        {
            var fakeFs  = A.Fake <IFileSystem>();
            var fakeMsf = A.Fake <IMemoryStreamFactory>();

            var fakeStream = A.Fake <System.IO.MemoryStream>();

            A.CallTo(() => fakeStream.CanRead).Returns(false);

            var readerclass = new XmlSchemaReader(fakeFs, fakeMsf);

            readerclass.ReadFromStream(fakeStream);

            Assert.Fail("Should not reach this point.");
        }
        public void WhenMemoryStreamFactoryThrowsExceptionTheReaderMustThrowInvalidOperationException()
        {
            var fakeFs            = A.Fake <IFileSystem>();
            var fakeMemoryFactory = A.Fake <IMemoryStreamFactory>();
            var array             = new byte[1] {
                Convert.ToByte(true)
            };

            A.CallTo(() => fakeMemoryFactory.Create(array, false)).WithAnyArguments().Throws <Exception>();

            var readerclass = new XmlSchemaReader(fakeFs, fakeMemoryFactory);

            readerclass.ReadFromByteArray(array);

            Assert.Fail("Should not reach this point.");
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            var schemaReader = new XmlSchemaReader();
            var schemaset    = new XmlSchemaSet();

            schemaset.Add(schemaReader.ReadFromPath("CustomersOrders.xsd"));

            ValidationFinishedEventArgs result;

            using (var parser = new XmlParser())
            {
                parser.NodeRead += async(s, e, c) =>
                {
                    await Task.Run(() =>
                    {
                        if (e.Node.GetType() == typeof(OrderType))
                        {
                            var order = (OrderType)e.Node;
                            Console.WriteLine($"Customer ID: {order.CustomerID}, Order date: {order.OrderDate.ToShortDateString()}");
                        }
                        else
                        {
                            var customer = (CustomerType)e.Node;
                            Console.WriteLine($"Customer ID: {customer.CustomerID}, Company Name: {customer.CompanyName}");
                        }
                    });
                };

                result = parser.ParseXmlFileFromFileAsync(
                    filePath: "CustomersOrders.xml",
                    schemaSet: schemaset,
                    returnErrorListAtTheEndOfTheProcess: true,
                    types: new Type[] { typeof(OrderType), typeof(CustomerType) }
                    ).Result;
            }

            Console.WriteLine($"Error count: {result.ErrorCount}");
            Console.WriteLine($"Nodes read: {result.ParsedNodeCount}");
            Console.WriteLine($"Elapsed time: {result.ElapsedTime.ToString()}");
            Console.ReadLine();
        }
Esempio n. 8
0
        public WFSFeatureClass(WFSDataset dataset, string name, WMSClass.SRS srs)
        {
            _dataset = dataset;
            _name    = name;
            _srs     = srs;

            if (_srs.Srs.Count > 0)
            {
                _sRef = gView.Framework.Geometry.SpatialReference.FromID(_srs.Srs[_srs.SRSIndex]);
            }

            try
            {
                string param = "VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=" + _name;
                if (_dataset._decribeFeatureType.Get_OnlineResource.IndexOf("&SERVICE=") == -1 &&
                    _dataset._decribeFeatureType.Get_OnlineResource.IndexOf("?SERVICE=") == -1)
                {
                    param = "SERVICE=WFS&" + param;
                }

                string url      = WMSDataset.Append2Url(_dataset._decribeFeatureType.Get_OnlineResource, param);
                string response = WebFunctions.HttpSendRequest(url, "GET", null);
                response = WMSDataset.RemoveDOCTYPE(response);

                XmlDocument schema = new XmlDocument();
                schema.LoadXml(response);
                XmlSchemaReader schemaReader = new XmlSchemaReader(schema);
                _targetNamespace = schemaReader.TargetNamespaceURI;
                if (_targetNamespace == String.Empty)
                {
                    return;
                }

                _fields = schemaReader.ElementFields(name, out _shapefieldName, out _geomtype);

                // Id Feld suchen
                foreach (IField field in _fields.ToEnumerable())
                {
                    if (field.type == FieldType.ID)
                    {
                        _idFieldname = field.name;
                        break;
                    }
                }
                // passendes feld suchen...
                //if (_idFieldname == String.Empty)
                //{
                //    foreach (IField field in _fields)
                //    {
                //        if (!(field is Field)) continue;
                //        switch (field.name.ToLower())
                //        {
                //            case "fdb_oid":
                //            case "oid":
                //            case "fid":
                //            case "objectid":
                //            case "featureid":
                //            case "ogc_fid":
                //                ((Field)field).type = FieldType.ID;
                //                _idFieldname = field.name;
                //                break;
                //        }
                //        if (_idFieldname != String.Empty) break;
                //    }
                //}
            }
            catch { }
        }