public bool verify(KnowledgeBase knowledge) { NTripleListVerifier verifier = new NTripleListVerifier(); foreach (string nTriple in itsTriples) { verifier.Expect(nTriple); } StringWriter received = new StringWriter(); NTripleWriter writer = new NTripleWriter(received); knowledge.Write(writer); StringReader receivedReader = new StringReader(received.ToString()); string receivedLine = receivedReader.ReadLine(); while (receivedLine != null) { string trimmed = receivedLine.Trim(); if (trimmed.Length > 0 && !trimmed.StartsWith("#")) { verifier.Receive(trimmed); } receivedLine = receivedReader.ReadLine(); } bool verifyResult = verifier.Verify(); lastFailureDescription = verifier.GetLastFailureDescription(); return(verifyResult); }
public void parseStreamWithEntitiesInNamespaceDeclarationOfRootElementNamespace() { string rdf = @"<?xml version=""1.0"" encoding=""UTF-8""?> <!DOCTYPE rdf:RDF [ <!ENTITY ex 'http://example.com/ns/'> <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'> ]> <rdf:RDF xmlns:rdf=""&rdf;"" xmlns:ex=""&ex;""> <rdf:Description rdf:about=""http://example.com""> <ex:value>Test</ex:value> </rdf:Description> </rdf:RDF>"; SimpleModel model = new SimpleModel(new XsltParserFactory()); XsltParserFactory parserFactory = new XsltParserFactory(); Parser parser = parserFactory.MakeParser(new ResourceFactory(), new StatementFactory()); parser.NewStatement += new StatementHandler(model.Add); MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); writer.Write(rdf); writer.Flush(); stream.Position = 0; try { parser.Parse(stream, ""); } catch (Exception) { } NTripleListVerifier verifier = new NTripleListVerifier(); verifier.Expect(@"<http://example.com> <http://example.com/ns/value> ""Test"" ."); foreach (string ntriple in model) { verifier.Receive(ntriple); } bool testPassed = verifier.Verify(); string failureDescription = verifier.GetLastFailureDescription() + "\r\nTriples received:\r\n" + model.ToString(); if (testPassed) { Console.WriteLine("XsltParserTest.parseWithEntities UNEXPECTEDLY PASSED - entity in namespace declaration problem might have been fixed "); } Assert.IsTrue(!testPassed); // We exoect this to fail }
public bool verify(bool verbose) { SimpleModel model = new SimpleModel(new XsltParserFactory()); model.ParseString(itsOutputWriter.ToString(), ""); if (verbose) { Console.WriteLine(itsOutputWriter.ToString()); } foreach (string ntriple in model) { itsVerifier.Receive(ntriple); } return(itsVerifier.Verify()); }
public void acidTest() { SimpleModel expectedModel = new SimpleModel(new XsltParserFactory()); expectedModel.ParseString(COMPLEX_DOCUMENT, "http://example.com/"); /* * RdfXmlWriter rdfWriterDump = new RdfXmlWriter( new XmlWriterDumper() ); * expectedModel.write( rdfWriterDump ); */ StringWriter outputWriter = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(outputWriter); RdfXmlWriter rdfWriter = new RdfXmlWriter(xmlWriter); // Pass the expected triples through the writer expectedModel.Write(rdfWriter); SimpleModel receivedModel = new SimpleModel(new XsltParserFactory()); receivedModel.ParseString(outputWriter.ToString(), "http://example.com/"); /* * Console.WriteLine(); * Console.WriteLine( outputWriter.ToString() ); * Console.WriteLine(); */ NTripleListVerifier verifier = new NTripleListVerifier(); foreach (string ntriple in expectedModel) { verifier.Expect(ntriple); } foreach (string ntriple in receivedModel) { verifier.Receive(ntriple); } // NTripleListVerifier can't do full verify with large numbers of blank nodes Assert.IsTrue(verifier.VerifyCounts()); }
public void parseReaderWithoutEntities() { string rdf = @"<?xml version=""1.0"" encoding=""UTF-8""?> <rdf:RDF xmlns:rdf=""http://www.w3.org/1999/02/22-rdf-syntax-ns#""> <rdf:Description rdf:about=""http://example.com""> <rdf:value>Test</rdf:value> </rdf:Description> </rdf:RDF>"; SimpleModel model = new SimpleModel(new XsltParserFactory()); XsltParserFactory parserFactory = new XsltParserFactory(); Parser parser = parserFactory.MakeParser(new ResourceFactory(), new StatementFactory()); parser.NewStatement += new StatementHandler(model.Add); parser.Parse(new StringReader(rdf), ""); NTripleListVerifier verifier = new NTripleListVerifier(); verifier.Expect(@"<http://example.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> ""Test"" ."); foreach (string ntriple in model) { verifier.Receive(ntriple); } bool testPassed = verifier.Verify(); string failureDescription = verifier.GetLastFailureDescription() + "\r\nTriples received:\r\n" + model.ToString(); if (!testPassed) { Console.WriteLine("XsltParserTest.parseWithEntities FAILED because "); Console.WriteLine(failureDescription); } Assert.IsTrue(testPassed); }