Esempio n. 1
0
            public void CreateRequest_ShouldParseValidResponseHandler(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                if (expected != null)
                {
                    var exUri = new Uri(expected);

                    // LinqToXsd bug?
                    //Assert.Equal<int>(1, request.ResponseHandler.Count);
                    //Assert.Contains<Uri>(exUri, request.ResponseHandler);

                    var handlers = from el in request.Untyped.Descendants()
                                   where el.Name == "{http://www.opengis.net/cat/csw/2.0.2}ResponseHandler"
                                   select new Uri(el.Value);
                    Assert.Equal <int>(1, handlers.Count <Uri>());
                    Assert.Contains <Uri>(exUri, handlers);
                }
                else
                {
                    Assert.Empty(request.ResponseHandler);
                }
            }
Esempio n. 2
0
            public void CreateRequest_ShouldParseValidNamespace(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                if (expected!=null)
                {
                    var prefixesNamespaces=expected.Split(';', ',');
                    Assert.True((prefixesNamespaces.Length%2)==0);

                    for (int i=0; i<prefixesNamespaces.Length/2; ++i)
                    {
                        var prefix=prefixesNamespaces[2*i];
                        var @namespace=prefixesNamespaces[2*i+1];
                        if (!string.IsNullOrEmpty(prefix))
                        {
                            Assert.Equal<string>(prefix, request.Untyped.GetPrefixOfNamespace(@namespace));
                            Assert.Equal<string>(@namespace, request.Untyped.GetNamespaceOfPrefix(prefix).NamespaceName);
                        } else
                            Assert.Equal<string>(@namespace, request.Untyped.GetDefaultNamespace().NamespaceName);
                    }
                }
            }
Esempio n. 3
0
            public void CreateRequest_ShouldParseValidElementName(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                if (expected != null)
                {
                    var exNames = expected
                                  .Split(',')
                                  .Select <string, XName>(n => XName.Get(n));

                    Assert.NotNull(request.Content.AbstractQuery);
                    Assert.IsAssignableFrom <Query>(request.Content.AbstractQuery);

                    // Cannot seem to be able to use the Query.ElementName property here...

                    var elementNames = from el in request.Content.AbstractQuery.Untyped.Descendants()
                                       where el.Name == "{http://www.opengis.net/cat/csw/2.0.2}ElementName"
                                       select el;
                    var xen = elementNames.Select <XElement, XName>(
                        e => (Discovery.GetXmlNameFromString(e.Value, e))
                        );

                    Assert.Equal <int>(exNames.Count <XName>(), xen.Count <XName>());
                    foreach (XName n in exNames)
                    {
                        Assert.Contains <XName>(n, xen);
                    }
                }
            }
Esempio n. 4
0
            public void CreateRequest_ShouldParseValidTypeNames(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                if (expected != null)
                {
                    var exNames = expected
                                  .Split(',')
                                  .Select <string, XName>(n => XName.Get(n));

                    Assert.NotNull(request.Content.AbstractQuery);
                    Assert.IsAssignableFrom <Query>(request.Content.AbstractQuery);

                    // Cannot seem to be able to use the Query.typeNames property here...
                    string[] typeNames = request.Content.AbstractQuery.Untyped.Attribute("typeNames").Value.Split(' ');
                    foreach (XName name in exNames)
                    {
                        string n = name.ToString();
                        if (!string.IsNullOrEmpty(name.NamespaceName))
                        {
                            n = string.Concat(request.Content.AbstractQuery.Untyped.GetPrefixOfNamespace(name.NamespaceName), ":", name.LocalName);
                        }
                        Assert.Contains <string>(n, typeNames);
                    }
                }
                else
                {
                    Assert.Null(request.Content.AbstractQuery);
                }
            }
Esempio n. 5
0
            public void CreateRequest_ShouldParseValidNamespace(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                if (expected != null)
                {
                    var prefixesNamespaces = expected.Split(';', ',');
                    Assert.True((prefixesNamespaces.Length % 2) == 0);

                    for (int i = 0; i < prefixesNamespaces.Length / 2; ++i)
                    {
                        var prefix     = prefixesNamespaces[2 * i];
                        var @namespace = prefixesNamespaces[2 * i + 1];
                        if (!string.IsNullOrEmpty(prefix))
                        {
                            Assert.Equal <string>(prefix, request.Untyped.GetPrefixOfNamespace(@namespace));
                            Assert.Equal <string>(@namespace, request.Untyped.GetNamespaceOfPrefix(prefix).NamespaceName);
                        }
                        else
                        {
                            Assert.Equal <string>(@namespace, request.Untyped.GetDefaultNamespace().NamespaceName);
                        }
                    }
                }
            }
Esempio n. 6
0
            public void CreateRequest_ShouldThrowOnInvalidParameters(string query)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                Assert.Throws <OwsException>(() => processor.CreateRequest(parameters));
            }
Esempio n. 7
0
            public void CreateRequest_ShouldParseValidMaxRecords(string query, int expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                Assert.Equal <decimal>(expected, request.maxRecords);
            }
Esempio n. 8
0
            public void CreateRequest_ShouldParseValidCqlConstraint(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                Assert.Equal <string>(expected, ((Query)request.AbstractQuery).Constraint.CqlText);
            }
Esempio n. 9
0
            public void CreateRequest_ShouldParseValidOutputFormat(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                Assert.Equal <string>(expected, request.outputFormat);
            }
Esempio n. 10
0
            public void CreateRequest_ShouldParseValidFilterConstraint(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                // Should check the inner XML too...
                Assert.NotNull(((Query)request.AbstractQuery).Constraint.Filter);
            }
Esempio n. 11
0
            public void CreateRequest_ShouldParseValidHopCount(string query, int expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                // LinqToXsd bug?
                //Assert.Equal<decimal>(expected, request.DistributedSearch.hopCount);

                var hc = from el in request.Untyped.Descendants()
                         where el.Name == "{http://www.opengis.net/cat/csw/2.0.2}DistributedSearch"
                         select el.Attribute("hopCount").Value;

                Assert.Equal <int>(1, hc.Count <string>());
                Assert.Equal <int>(expected, int.Parse(hc.First <string>(), CultureInfo.InvariantCulture));
            }
Esempio n. 12
0
            public void CreateRequest_ShouldParseValidRequestId(string query, string expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                if (expected != null)
                {
                    var exUri = new Uri(expected);
                    Assert.Equal <Uri>(exUri, request.requestId);
                }
                else
                {
                    Assert.Null(request.requestId);
                }
            }
Esempio n. 13
0
            public void CreateRequest_ShouldParseValidSortBy(string query, int expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                // Should check the inner XML too...
                if (expected > 0)
                {
                    Assert.NotNull(((Query)request.AbstractQuery).SortBy);
                    Assert.Equal <int>(expected, ((Query)request.AbstractQuery).SortBy.SortProperty.Count);
                }
                else
                {
                    Assert.Null(((Query)request.AbstractQuery).SortBy);
                }
            }
Esempio n. 14
0
            public void CreateRequest_ShouldParseValidDistributedSearch(string query, bool expected)
            {
                var discovery = new Mock <Discovery>();
                var processor = new GetRecordsProcessorAccessor(discovery.Object);

                var parameters = HttpUtility.ParseQueryString(query);

                var request = processor.CreateRequest(parameters);

                // LinqToXsd bug?
                //if (expected)
                //    Assert.NotNull<decimal>(expected, request.DistributedSearch);
                //else
                //    Assert.Null<decimal>(expected, request.DistributedSearch);

                var dc = from el in request.Untyped.Descendants()
                         where el.Name == "{http://www.opengis.net/cat/csw/2.0.2}DistributedSearch"
                         select el;

                Assert.Equal <int>(expected ? 1 : 0, dc.Count <XElement>());
            }
Esempio n. 15
0
            public void CreateRequest_ShouldThrowOnInvalidParameters(string query)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                Assert.Throws<OwsException>(() => processor.CreateRequest(parameters));
            }
Esempio n. 16
0
            public void CreateRequest_ShouldParseValidResponseHandler(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                if (expected!=null)
                {
                    var exUri=new Uri(expected);

                    // LinqToXsd bug?
                    //Assert.Equal<int>(1, request.ResponseHandler.Count);
                    //Assert.Contains<Uri>(exUri, request.ResponseHandler);

                    var handlers=from el in request.Untyped.Descendants()
                                 where el.Name=="{http://www.opengis.net/cat/csw/2.0.2}ResponseHandler"
                                 select new Uri(el.Value);
                    Assert.Equal<int>(1, handlers.Count<Uri>());
                    Assert.Contains<Uri>(exUri, handlers);

                } else
                    Assert.Empty(request.ResponseHandler);
            }
Esempio n. 17
0
            public void CreateRequest_ShouldParseValidHopCount(string query, int expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                // LinqToXsd bug?
                //Assert.Equal<decimal>(expected, request.DistributedSearch.hopCount);

                var hc=from el in request.Untyped.Descendants()
                       where el.Name=="{http://www.opengis.net/cat/csw/2.0.2}DistributedSearch"
                       select el.Attribute("hopCount").Value;
                Assert.Equal<int>(1, hc.Count<string>());
                Assert.Equal<int>(expected, int.Parse(hc.First<string>(), CultureInfo.InvariantCulture));
            }
Esempio n. 18
0
            public void CreateRequest_ShouldParseValidDistributedSearch(string query, bool expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                // LinqToXsd bug?
                //if (expected)
                //    Assert.NotNull<decimal>(expected, request.DistributedSearch);
                //else
                //    Assert.Null<decimal>(expected, request.DistributedSearch);

                var dc=from el in request.Untyped.Descendants()
                       where el.Name=="{http://www.opengis.net/cat/csw/2.0.2}DistributedSearch"
                       select el;
                Assert.Equal<int>(expected ? 1 : 0, dc.Count<XElement>());
            }
Esempio n. 19
0
            public void CreateRequest_ShouldParseValidSortBy(string query, int expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                // Should check the inner XML too...
                if (expected>0)
                {
                    Assert.NotNull(((Query)request.AbstractQuery).SortBy);
                    Assert.Equal<int>(expected, ((Query)request.AbstractQuery).SortBy.SortProperty.Count);
                } else
                    Assert.Null(((Query)request.AbstractQuery).SortBy);
            }
Esempio n. 20
0
            public void CreateRequest_ShouldParseValidFilterConstraint(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                // Should check the inner XML too...
                Assert.NotNull(((Query)request.AbstractQuery).Constraint.Filter);
            }
Esempio n. 21
0
            public void CreateRequest_ShouldParseValidCqlConstraint(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                Assert.Equal<string>(expected, ((Query)request.AbstractQuery).Constraint.CqlText);
            }
Esempio n. 22
0
            public void CreateRequest_ShouldParseValidElementName(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                if (expected!=null)
                {
                    var exNames=expected
                        .Split(',')
                        .Select<string, XName>(n => XName.Get(n));

                    Assert.NotNull(request.Content.AbstractQuery);
                    Assert.IsAssignableFrom<Query>(request.Content.AbstractQuery);

                    // Cannot seem to be able to use the Query.ElementName property here...

                    var elementNames=from el in request.Content.AbstractQuery.Untyped.Descendants()
                                     where el.Name=="{http://www.opengis.net/cat/csw/2.0.2}ElementName"
                                     select el;
                    var xen=elementNames.Select<XElement, XName>(
                        e => (Discovery.GetXmlNameFromString(e.Value, e))
                    );

                    Assert.Equal<int>(exNames.Count<XName>(), xen.Count<XName>());
                    foreach (XName n in exNames)
                        Assert.Contains<XName>(n, xen);
                }
            }
Esempio n. 23
0
            public void CreateRequest_ShouldParseValidTypeNames(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                if (expected!=null)
                {
                    var exNames=expected
                        .Split(',')
                        .Select<string, XName>(n => XName.Get(n));

                    Assert.NotNull(request.Content.AbstractQuery);
                    Assert.IsAssignableFrom<Query>(request.Content.AbstractQuery);

                    // Cannot seem to be able to use the Query.typeNames property here...
                    string[] typeNames=request.Content.AbstractQuery.Untyped.Attribute("typeNames").Value.Split(' ');
                    foreach (XName name in exNames)
                    {
                        string n=name.ToString();
                        if (!string.IsNullOrEmpty(name.NamespaceName))
                            n=string.Concat(request.Content.AbstractQuery.Untyped.GetPrefixOfNamespace(name.NamespaceName), ":", name.LocalName);
                        Assert.Contains<string>(n, typeNames);
                    }
                } else
                    Assert.Null(request.Content.AbstractQuery);
            }
Esempio n. 24
0
            public void CreateRequest_ShouldParseValidMaxRecords(string query, int expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                Assert.Equal<decimal>(expected, request.maxRecords);
            }
Esempio n. 25
0
            public void CreateRequest_ShouldParseValidRequestId(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                if (expected!=null)
                {
                    var exUri=new Uri(expected);
                    Assert.Equal<Uri>(exUri, request.requestId);
                } else
                    Assert.Null(request.requestId);
            }
Esempio n. 26
0
            public void CreateRequest_ShouldParseValidOutputFormat(string query, string expected)
            {
                var discovery=new Mock<Discovery>();
                var processor=new GetRecordsProcessorAccessor(discovery.Object);

                var parameters=HttpUtility.ParseQueryString(query);

                var request=processor.CreateRequest(parameters);

                Assert.Equal<string>(expected, request.outputFormat);
            }