public void TestRetrieveSingleFilm() { const string odataQuery = "http://example.org/odata/Films('Un_Chien_Andalou')"; var parsedQuery = QueryDescriptorQueryNode.ParseUri( new Uri(odataQuery), new Uri(_odataBase), _dbpediaModel); var sparqlGenerator = new SparqlGenerator(_dbpediaMap); sparqlGenerator.ProcessQuery(parsedQuery); Console.WriteLine(sparqlGenerator.SparqlQueryModel.GetSparqlRepresentation()); var mockRequest = new Mock<IODataRequestMessage>(); mockRequest.Setup(m => m.Url).Returns(new Uri(odataQuery)); var mockMessage = new Mock<IODataResponseMessage>(); var outputStream = new MemoryStream(); mockMessage.Setup(m => m.GetStream()).Returns(outputStream); var feedGenerator = new ODataFeedGenerator(mockRequest.Object, mockMessage.Object, _dbpediaMap, _odataBase, new ODataMessageWriterSettings{Indent = true}); sparqlGenerator.SparqlQueryModel.Execute(_sparqlEndpoint, feedGenerator); outputStream.Seek(0, SeekOrigin.Begin); var validator = new XPathValidator(outputStream); validator.AddNamespace("atom", "http://www.w3.org/2005/Atom"); validator.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices"); validator.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); Console.WriteLine(validator.ToString()); validator.AssertRoot("atom:entry"); validator.AssertXPathValue("/atom:entry/atom:id", "http://example.org/odata/Films('Un_Chien_Andalou')"); validator.AssertXPathValue("/atom:entry/atom:title", ""); validator.AssertXPathValue("/atom:entry/atom:content/m:properties/d:Name", "Un Chien Andalou"); validator.AssertXPathValue("/atom:entry/atom:content/m:properties/d:Runtime", "960.0"); validator.AssertXPathValue("/atom:entry/atom:link[@rel='http://schemas.microsoft.com/ado/2007/08/dataservices/related/Director']/@href", "http://example.org/odata/Films('Un_Chien_Andalou')/Director"); }
public void TestRetrieveSingleFilm() { const string odataQuery = "http://example.org/odata/Films('Un_Chien_Andalou')"; var parsedQuery = QueryDescriptorQueryNode.ParseUri( new Uri(odataQuery), new Uri(_odataBase), _dbpediaModel); var sparqlGenerator = new SparqlGenerator(_dbpediaMap); sparqlGenerator.ProcessQuery(parsedQuery); Console.WriteLine(sparqlGenerator.SparqlQueryModel.GetSparqlRepresentation()); var mockRequest = new Mock <IODataRequestMessage>(); mockRequest.Setup(m => m.Url).Returns(new Uri(odataQuery)); var mockMessage = new Mock <IODataResponseMessage>(); var outputStream = new MemoryStream(); mockMessage.Setup(m => m.GetStream()).Returns(outputStream); var feedGenerator = new ODataFeedGenerator(mockRequest.Object, mockMessage.Object, _dbpediaMap, _odataBase, new ODataMessageWriterSettings { Indent = true }); sparqlGenerator.SparqlQueryModel.Execute(_sparqlEndpoint, feedGenerator); outputStream.Seek(0, SeekOrigin.Begin); var validator = new XPathValidator(outputStream); validator.AddNamespace("atom", "http://www.w3.org/2005/Atom"); validator.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices"); validator.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); Console.WriteLine(validator.ToString()); validator.AssertRoot("atom:entry"); validator.AssertXPathValue("/atom:entry/atom:id", "http://example.org/odata/Films('Un_Chien_Andalou')"); validator.AssertXPathValue("/atom:entry/atom:title", ""); validator.AssertXPathValue("/atom:entry/atom:content/m:properties/d:Name", "Un Chien Andalou"); validator.AssertXPathValue("/atom:entry/atom:content/m:properties/d:Runtime", "960.0"); validator.AssertXPathValue("/atom:entry/atom:link[@rel='http://schemas.microsoft.com/ado/2007/08/dataservices/related/Director']/@href", "http://example.org/odata/Films('Un_Chien_Andalou')/Director"); }
private XPathValidator GenerateAndExecuteSparql(string odataQuery, SparqlMap sparqlMap, ODataVersion odataVersion = ODataVersion.V3) { var parsedQuery = QueryDescriptorQueryNode.ParseUri( new Uri(odataQuery), new Uri(_odataBase), _dbpediaModel); var sparqlGenerator = new SparqlGenerator(sparqlMap, "en"); sparqlGenerator.ProcessQuery(parsedQuery); var mockRequest = new Mock <IODataRequestMessage>(); mockRequest.Setup(m => m.Url).Returns(new Uri(odataQuery)); var mockMessage = new Mock <IODataResponseMessage>(); var outputStream = new MemoryStream(); mockMessage.Setup(m => m.GetStream()).Returns(outputStream); var feedGenerator = new ODataFeedGenerator( mockRequest.Object, mockMessage.Object, sparqlMap, _odataBase, new ODataMessageWriterSettings { Indent = true, Version = odataVersion }); Console.WriteLine(sparqlGenerator.SparqlQueryModel.GetSparqlRepresentation()); sparqlGenerator.SparqlQueryModel.Execute(_sparqlEndpoint, feedGenerator); outputStream.Seek(0, SeekOrigin.Begin); var validator = new XPathValidator(outputStream); validator.AddNamespace("atom", "http://www.w3.org/2005/Atom"); validator.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices"); validator.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); return(validator); }
public void TestCreateAssociationLinks() { var testGraph = new Graph {BaseUri = new Uri("http://dbpedia.org/resource/")}; var film = testGraph.CreateUriNode(UriFactory.Create("http://dbpedia.org/resource/Un_Chien_Andalou")); var rdfType = testGraph.CreateUriNode(UriFactory.Create("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")); testGraph.Assert(film, rdfType, testGraph.CreateUriNode(UriFactory.Create("http://dbpedia.org/ontology/Film"))); testGraph.Assert(film, testGraph.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/name")), testGraph.CreateLiteralNode("Un Chien Andalou")); var director = testGraph.CreateUriNode(UriFactory.Create("http://dbpedia.org/resource/Luis_Bunuel")); testGraph.Assert(director, rdfType, testGraph.CreateUriNode(UriFactory.Create("http://dbpedia.org/ontology/Person"))); testGraph.Assert(film, testGraph.CreateUriNode(UriFactory.Create("http://dbpedia.org/property/director")), director); var mockRequest = new Mock<IODataRequestMessage>(); mockRequest.Setup(m => m.Url).Returns(new Uri("http://example.org/odata/Films('Un_Chien_Andalou')")); var mock = new Mock<IODataResponseMessage>(); var mockStream = new MemoryStream(); mock.Setup(m => m.GetStream()).Returns(mockStream); var generator = new ODataFeedGenerator(mockRequest.Object, mock.Object, _dbpediaMap, "http://example.org/odata/", new ODataMessageWriterSettings { Indent = true }); generator.CreateEntryFromGraph(testGraph, film.Uri.ToString(), "DBPedia.Film"); mockStream.Seek(0, SeekOrigin.Begin); var streamXml = XDocument.Load(mockStream); Assert.IsNotNull(streamXml); Assert.IsNotNull(streamXml.Root); Assert.AreEqual(XName.Get("entry", "http://www.w3.org/2005/Atom"), streamXml.Root.Name); Console.WriteLine(streamXml.ToString()); }
public void TestCreateEntryFeedForSingleItem() { var testGraph = new Graph { BaseUri = new Uri("http://dbpedia.org/resource/") }; var film = testGraph.CreateUriNode(UriFactory.Create("http://dbpedia.org/resource/Un_Chien_Andalou")); testGraph.Assert(film, testGraph.CreateUriNode(UriFactory.Create("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")), testGraph.CreateUriNode(UriFactory.Create("http://dbpedia.org/ontology/Film"))); testGraph.Assert(film, testGraph.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/name")), testGraph.CreateLiteralNode("Un Chien Andalou")); var mockRequest = new Mock <IODataRequestMessage>(); mockRequest.Setup(m => m.Url).Returns(new Uri("http://example.org/odata/Films('Un_Chien_Andalou')")); var mock = new Mock <IODataResponseMessage>(); var mockStream = new MemoryStream(); //mock.Setup(m => m.Url).Returns(new Uri("http://example.org/odata/Films('Un_Chien_Andalou')")); //mock.Setup(m => m.Method).Returns("GET"); mock.Setup(m => m.GetStream()).Returns(mockStream); var generator = new ODataFeedGenerator(mockRequest.Object, mock.Object, _dbpediaMap, "http://example.org/odata/", new ODataMessageWriterSettings { Indent = true }); generator.CreateEntryFromGraph(testGraph, film.Uri.ToString(), "DBPedia.Film"); mockStream.Seek(0, SeekOrigin.Begin); var streamXml = XDocument.Load(mockStream); Assert.IsNotNull(streamXml); Assert.IsNotNull(streamXml.Root); Assert.AreEqual(XName.Get("entry", "http://www.w3.org/2005/Atom"), streamXml.Root.Name); Console.WriteLine(streamXml.ToString()); XNamespace atom = "http://www.w3.org/2005/Atom"; Assert.AreEqual("http://example.org/odata/Films('Un_Chien_Andalou')", (string)streamXml.Root.Element(atom + "id")); }
private XPathValidator GenerateAndExecuteSparql(string odataQuery, SparqlMap sparqlMap, ODataVersion odataVersion=ODataVersion.V3) { var parsedQuery = QueryDescriptorQueryNode.ParseUri( new Uri(odataQuery), new Uri(_odataBase), _dbpediaModel); var sparqlGenerator = new SparqlGenerator(sparqlMap, "en"); sparqlGenerator.ProcessQuery(parsedQuery); var mockRequest = new Mock<IODataRequestMessage>(); mockRequest.Setup(m => m.Url).Returns(new Uri(odataQuery)); var mockMessage = new Mock<IODataResponseMessage>(); var outputStream = new MemoryStream(); mockMessage.Setup(m => m.GetStream()).Returns(outputStream); var feedGenerator = new ODataFeedGenerator( mockRequest.Object, mockMessage.Object, sparqlMap, _odataBase, new ODataMessageWriterSettings{Indent = true, Version = odataVersion}); Console.WriteLine(sparqlGenerator.SparqlQueryModel.GetSparqlRepresentation()); sparqlGenerator.SparqlQueryModel.Execute(_sparqlEndpoint, feedGenerator); outputStream.Seek(0, SeekOrigin.Begin); var validator = new XPathValidator(outputStream); validator.AddNamespace("atom", "http://www.w3.org/2005/Atom"); validator.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices"); validator.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); return validator; }