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); } }
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); } } }
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); } } }
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); } }
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); } } } }
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)); }
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); }
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); }
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); }
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); }
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)); }
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); } }
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); } }
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>()); }
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)); }
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); }
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)); }
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>()); }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }