public void cloneReturnsTripleStoreContainingSameStatements() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred2"), new PlainLiteral("foo", "jp"))); store.Add(new Statement(new UriRef("http://example.com/the-thing"), new UriRef("http://example.com/pred3"), new TypedLiteral("1", "http://example.com/types/numeric"))); store.Add(new Statement(new UriRef("http://example.com/other-thing"), new UriRef("http://example.com/pred4"), new UriRef("http://example.com/the-thing"))); TripleStore clone = (TripleStore)store.Clone(); Assert.AreEqual(store.NodeCount, clone.NodeCount); Assert.AreEqual(store.ResourceCount, clone.ResourceCount); TripleStoreVerifier verifier = new TripleStoreVerifier(); verifier.expect("_:a <http://example.com/pred> _:b ."); verifier.expect("_:c <http://example.com/pred2> \"foo\"@jp ."); verifier.expect("<http://example.com/the-thing> <http://example.com/pred3> \"1\"^^<http://example.com/types/numeric> ."); verifier.expect("<http://example.com/other-thing> <http://example.com/pred4> <http://example.com/the-thing> ."); Assert.IsTrue(verifier.verify(clone)); clone.Clear(); store.Clear(); }
public void AddIncrementsNodeCountOnceForSubjectAndOnceForObject() { TripleStore store = MakeTripleStoreWithOneDummyStatement(); Assert.AreEqual(3, store.NodeCount); store.Clear(); }
public void AddStatementIncrementsStatementCount() { TripleStore store = MakeTripleStoreWithOneDummyStatement(); Assert.AreEqual(1, store.StatementCount); store.Clear(); }
public void NewInstanceIsEmpty() { TripleStore store = MakeNewTripleStore(); Assert.IsTrue(store.IsEmpty()); store.Clear(); }
public void IsEmptyIsNotTrueIfStatementAdded() { TripleStore store = MakeTripleStoreWithOneDummyStatement(); Assert.IsFalse(store.IsEmpty()); store.Clear(); }
public void GetStatementEnumerator() { Node theSubject = new NodeStub("http://example.com/subj"); Arc thePredicate = new UriRef("http://example.com/pred"); Node theFirstObject = new UriRef("http://example.com/obj1"); Node theSecondObject = new UriRef("http://example.com/obj2"); Statement statement1 = new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj1")); Statement statement2 = new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj2")); TripleStore store = MakeNewTripleStore(); store.Add(statement1); store.Add(statement2); ResourceStatement resStatement1 = new ResourceStatement(store.GetResourceDenotedBy(statement1.GetSubject()), store.GetResourceDenotedBy(statement1.GetPredicate()), store.GetResourceDenotedBy(statement1.GetObject())); ResourceStatement resStatement2 = new ResourceStatement(store.GetResourceDenotedBy(statement2.GetSubject()), store.GetResourceDenotedBy(statement2.GetPredicate()), store.GetResourceDenotedBy(statement2.GetObject())); IEnumerator statementEnum = store.GetStatementEnumerator(); Assert.IsTrue(statementEnum.MoveNext(), "Enumerator has first statement"); ResourceStatement firstStatement = (ResourceStatement)statementEnum.Current; Assert.IsTrue(statementEnum.MoveNext(), "Enumerator has second statement"); ResourceStatement secondStatement = (ResourceStatement)statementEnum.Current; Assert.IsFalse(statementEnum.MoveNext()); Assert.IsTrue((firstStatement.Equals(resStatement1) && secondStatement.Equals(resStatement2)) || (firstStatement.Equals(resStatement2) && secondStatement.Equals(resStatement1)), "Statements have correct components"); store.Clear(); }
public void NodeCountZeroOnCreate() { TripleStore store = MakeNewTripleStore(); Assert.AreEqual(0, store.NodeCount); store.Clear(); }
public void IsEmptyAfterClear() { TripleStore store = MakeTripleStoreWithOneDummyStatement(); store.Clear(); Assert.IsTrue(store.IsEmpty()); }
public void ClearMakesNodeCountZero() { TripleStore store = MakeTripleStoreWithOneDummyStatement(); store.Clear(); Assert.AreEqual(0, store.NodeCount); }
public void GetStatementEnumeratorIsEmptyForNewTripleStore() { TripleStore store = MakeNewTripleStore(); IEnumerator statementEnum = store.GetStatementEnumerator(); Assert.IsFalse(statementEnum.MoveNext(), "Enumerator has no first statement"); store.Clear(); }
public void GetResourceDenotedByDoesNotChangeIsEmptyFlag() { TripleStore store = MakeNewTripleStore(); store.GetResourceDenotedBy(new UriRef("http://example.com/uri")); Assert.IsTrue(store.IsEmpty()); store.Clear(); }
public void ClearMakesResourceCountZero() { TripleStore store = MakeNewTripleStore(); AddDummyTriple(store); store.Clear(); Assert.AreEqual(0, store.ResourceCount); }
public void cloneReturnsObjectOfSameType() { TripleStore store = MakeNewTripleStore(); TripleStore clone = (TripleStore)store.Clone(); Assert.AreEqual(store.GetType(), clone.GetType()); clone.Clear(); store.Clear(); }
public void writeCallsWriterEndOutputOnce() { RdfWriterCounter writer = new RdfWriterCounter(); TripleStore store = MakeNewTripleStore(); store.Write(writer); Assert.AreEqual(1, writer.EndOutputCalled); store.Clear(); }
public void Contains() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new UriRef("ex:obj"))); Assert.IsTrue(store.Contains(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new UriRef("ex:obj")))); store.Clear(); }
public void GetStatementEnumeratorReturnsResourceStatementInstances() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj1"))); IEnumerator statementEnum = store.GetStatementEnumerator(); Assert.IsTrue(statementEnum.MoveNext(), "Enumerator has first statement"); Assert.IsTrue(statementEnum.Current is ResourceStatement, "Enumerator returns a ResourceStatement"); store.Clear(); }
public void AddResourceStatementIncrementsStatementCount() { TripleStore store = MakeNewTripleStore(); Resource subjectResource = store.GetResourceDenotedBy(new UriRef("http://example.com/subj")); Resource predicateResource = store.GetResourceDenotedBy(new UriRef("http://example.com/pred")); Resource objectResource = store.GetResourceDenotedBy(new UriRef("http://example.com/obj")); store.Add(new ResourceStatement(subjectResource, predicateResource, objectResource)); Assert.AreEqual(1, store.StatementCount); store.Clear(); }
public void AddDoesNotAllowDuplicates() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new UriRef("http://example.com/subj"), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj"))); store.Add(new Statement(new UriRef("http://example.com/subj"), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj"))); TripleStoreVerifier verifier = new TripleStoreVerifier(); verifier.expect("<http://example.com/subj> <http://example.com/pred> <http://example.com/obj> ."); Assert.IsTrue(verifier.verify(store)); store.Clear(); }
public void AddAllowsSingleQuotesInUriRefs() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new UriRef("ex:fo'o"))); TripleStoreVerifier verifier = new TripleStoreVerifier(); verifier.expect("<ex:subj> <ex:pred> <ex:fo'o> ."); Assert.IsTrue(verifier.verify(store)); store.Clear(); }
public void AddAllowsSingleQuotesInLiteralLanguages() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new PlainLiteral("darby", "f'oo"))); TripleStoreVerifier verifier = new TripleStoreVerifier(); verifier.expect("<ex:subj> <ex:pred> \"darby\"@f'oo ."); Assert.IsTrue(verifier.verify(store)); store.Clear(); }
public void AddAllowsSingleQuotesInTypedLiteralValues() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new TypedLiteral("d'arby", "ex:foo"))); TripleStoreVerifier verifier = new TripleStoreVerifier(); verifier.expect("<ex:subj> <ex:pred> \"d'arby\"^^<ex:foo> ."); Assert.IsTrue(verifier.verify(store)); store.Clear(); }
public void AddDenotationMakesResourceAccesibleViaDenotee() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new UriRef("http://example.com/subj"), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj"))); Resource originalResource = store.GetResourceDenotedBy(new UriRef("http://example.com/subj")); store.AddDenotation(new UriRef("foo:bar"), originalResource); Assert.AreEqual(originalResource, store.GetResourceDenotedBy(new UriRef("foo:bar"))); store.Clear(); }
public void GetResourceDenotedByAlwaysReturnsSameResourceForSameGraphMember() { TripleStore store = MakeNewTripleStore(); Assert.AreEqual(store.GetResourceDenotedBy(new UriRef("http://example.com/uri")), store.GetResourceDenotedBy(new UriRef("http://example.com/uri")), "UriRef"); Assert.AreEqual(store.GetResourceDenotedBy(new PlainLiteral("squash")), store.GetResourceDenotedBy(new PlainLiteral("squash")), "Plain literal no language"); Assert.AreEqual(store.GetResourceDenotedBy(new PlainLiteral("squash", "de")), store.GetResourceDenotedBy(new PlainLiteral("squash", "de")), "Plain literal with language"); Assert.AreEqual(store.GetResourceDenotedBy(new TypedLiteral("squash", "http://example.com/type")), store.GetResourceDenotedBy(new TypedLiteral("squash", "http://example.com/type")), "Typed literal"); BlankNode blank = new BlankNode(); Assert.AreEqual(store.GetResourceDenotedBy(blank), store.GetResourceDenotedBy(blank), "Blank node"); store.Clear(); }
public void ResourcesPropertyContainsResourceInstances() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj1"))); IList resources = store.Resources; Assert.AreEqual(3, resources.Count, "Should be 3 resources"); Assert.IsTrue(resources[0] is Resource, "First resource is an instance of Resource class"); Assert.IsTrue(resources[1] is Resource, "First resource is an instance of Resource class"); Assert.IsTrue(resources[2] is Resource, "First resource is an instance of Resource class"); store.Clear(); }
public void AddStatementDistinguishesDifferentBlankNodeInstancesForObjects() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new UriRef("http://example.com/subj1"), new UriRef("http://example.com/pred"), new BlankNode())); store.Add(new Statement(new UriRef("http://example.com/subj1"), new UriRef("http://example.com/pred"), new BlankNode())); TripleStoreVerifier verifier = new TripleStoreVerifier(); verifier.expect("<http://example.com/subj1> <http://example.com/pred> _:blank1 ."); verifier.expect("<http://example.com/subj1> <http://example.com/pred> _:blank2 ."); Assert.IsTrue(verifier.verify(store)); store.Clear(); }
public void NodeCountAlwaysEqualsResourceCountForUnsmushedTriples() { TripleStore store = MakeNewTripleStore(); Assert.AreEqual(store.NodeCount, store.ResourceCount); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); Assert.AreEqual(store.NodeCount, store.ResourceCount); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); Assert.AreEqual(store.NodeCount, store.ResourceCount); store.Clear(); }
public void RemoveNonExistentTripleDoesNotDecreaseNodeCountOrResourceCount() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); int NodeCountBefore = store.NodeCount; int ResourceCountBefore = store.ResourceCount; store.Remove(new ResourceStatement(new Resource(), new Resource(), new Resource())); Assert.IsTrue(NodeCountBefore <= store.NodeCount, "Node count should not decrease"); Assert.IsTrue(ResourceCountBefore <= store.ResourceCount, "Resource count should not decrease"); store.Clear(); }
public void AddTripleStoreWithCommonNodes() { UriRef node1 = new UriRef("any:node1"); UriRef node2 = new UriRef("any:node2"); UriRef node3 = new UriRef("any:node3"); UriRef node4 = new UriRef("any:node4"); UriRef node5 = new UriRef("any:node5"); UriRef node6 = new UriRef("any:node6"); UriRef predicate1 = new UriRef("any:predicate1"); UriRef predicate2 = new UriRef("any:predicate2"); UriRef predicate3 = new UriRef("any:predicate3"); Statement statement1 = new Statement(node1, predicate1, node2); Statement statement2 = new Statement(node3, predicate2, node4); Statement statement3 = new Statement(node5, predicate3, node6); Statement statement4 = new Statement(node1, predicate2, node6); TripleStore firstStore = MakeNewTripleStore(); firstStore.Add(statement1); TripleStore secondStore = MakeNewTripleStore(); secondStore.Add(statement2); secondStore.Add(statement3); secondStore.Add(statement4); firstStore.Add(secondStore); TripleStoreVerifier verifierFirst = new TripleStoreVerifier(); verifierFirst.expect("<any:node1> <any:predicate1> <any:node2> ."); verifierFirst.expect("<any:node3> <any:predicate2> <any:node4> ."); verifierFirst.expect("<any:node5> <any:predicate3> <any:node6> ."); verifierFirst.expect("<any:node1> <any:predicate2> <any:node6> ."); Assert.IsTrue(verifierFirst.verify(firstStore), "first knowledge base includes triples from second"); TripleStoreVerifier verifierSecond = new TripleStoreVerifier(); verifierSecond.expect("<any:node3> <any:predicate2> <any:node4> ."); verifierSecond.expect("<any:node5> <any:predicate3> <any:node6> ."); verifierSecond.expect("<any:node1> <any:predicate2> <any:node6> ."); Assert.IsTrue(verifierSecond.verify(secondStore), "second knowledge base is unchanged"); firstStore.Clear(); secondStore.Clear(); }
public void CloneReturnsIndependentTripleStore() { TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); TripleStore clone = (TripleStore)store.Clone(); int cloneNodeCountBefore = clone.NodeCount; int cloneResourceCountBefore = clone.ResourceCount; store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode())); Assert.AreEqual(cloneNodeCountBefore, clone.NodeCount, "Clone node count is unchanged"); Assert.AreEqual(cloneResourceCountBefore, clone.ResourceCount, "Clone resource count is unchanged"); store.Clear(); Assert.AreEqual(cloneNodeCountBefore, clone.NodeCount, "Clone node count is unchanged after Clearing original"); Assert.AreEqual(cloneResourceCountBefore, clone.ResourceCount, "Clone resource count is unchanged after Clearing original"); }
public void AddDistinguishesDifferentBlankNodeInstances() { Node theSubject = new NodeStub("http://example.com/subj"); Arc thePredicate = new UriRef("http://example.com/pred"); Node theFirstObject = new UriRef("http://example.com/obj1"); Node theSecondObject = new UriRef("http://example.com/obj2"); TripleStore store = MakeNewTripleStore(); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj1"))); store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj2"))); TripleStoreVerifier verifier = new TripleStoreVerifier(); verifier.expect("_:node1 <http://example.com/pred> <http://example.com/obj1> ."); verifier.expect("_:node2 <http://example.com/pred> <http://example.com/obj2> ."); Assert.IsTrue(verifier.verify(store)); store.Clear(); }