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");
 }
Exemple #2
0
        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");
        }
Exemple #3
0
        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());
 }
Exemple #5
0
        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;
 }