private void TestUpdate(IStorageProvider manager) { this.EnsureTestDataset(manager); Skip.IfNot(TestConfigManager.GetSettingAsBoolean(TestConfigManager.UseRemoteParsing), "Test Config marks Remote Parsing as unavailable, test cannot be run"); Uri updateUri = new Uri("http://example.org/persistence/update/temp"); this.EnsureGraphDeleted(manager, updateUri); PersistentTripleStore store = new PersistentTripleStore(manager); try { Assert.False(store.HasGraph(updateUri), "Prior to SPARQL Update our target graph should not exist using HasGraph()"); Assert.False(store.Graphs.Contains(updateUri), "Prior to SPARQL Update out target graph should not exist using Graphs.Contains()"); Assert.False(manager.ListGraphs().Contains(updateUri), "Prior to SPARQL Update our target graph should not exist in the underlying store"); store.ExecuteUpdate("LOAD <http://dbpedia.org/resource/Ilkeston> INTO GRAPH <" + updateUri.ToString() + ">"); Assert.True(store.HasGraph(updateUri), "SPARQL Update should have loaded into our target graph so that HasGraph() returns true"); Assert.True(store.Graphs.Contains(updateUri), "SPARQL Update should have loaded into out target graph so that Graphs.Contains() returns true"); //Note that SPARQL Updates go directly to the underlying store so the change is persisted immediately Assert.True(manager.ListGraphs().Contains(updateUri), "SPARQL Update should loaded into our target graph directly in the underlying store"); } finally { store.Dispose(); } }
private void TestDumpStorePrimed(IStorageProvider manager) { this.EnsureTestDataset(manager); PersistentTripleStore store = new PersistentTripleStore(manager); try { // First prime the persistent store by loading a bunch of stuff Assert.True(store.HasGraph(new Uri(TestGraphUri1)), "URI 1 should return true for HasGraph()"); Assert.True(store.Graphs.Contains(new Uri(TestGraphUri1)), "URI 1 should return true for Graphs.Contains()"); Assert.True(store.HasGraph(new Uri(TestGraphUri2)), "URI 2 should return true for HasGraph()"); Assert.True(store.Graphs.Contains(new Uri(TestGraphUri2)), "URI 2 should return true for Graphs.Contains()"); Assert.True(store.HasGraph(new Uri(TestGraphUri3)), "URI 3 should return true for HasGraph()"); Assert.True(store.Graphs.Contains(new Uri(TestGraphUri3)), "URI 3 should return true for Graphs.Contains()"); Uri noSuchThing = new Uri("http://example.org/persistence/graphs/noSuchGraph"); Assert.False(store.HasGraph(noSuchThing), "Bad URI should return false for HasGraph()"); Assert.False(store.Graphs.Contains(noSuchThing), "Bad URI should return false for Graphs.Contains()"); // Then try and dump StringWriter strWriter = new StringWriter(); TriGWriter writer = new TriGWriter(); writer.UseMultiThreadedWriting = false; writer.Save(store, strWriter); Console.WriteLine("TriG output:"); Console.WriteLine(strWriter.ToString()); Assert.False(String.IsNullOrEmpty(strWriter.ToString())); } finally { store.Dispose(); } }
private void TestRemoveThenAddGraphDiscarded(IStorageProvider manager) { this.EnsureTestDataset(manager); PersistentTripleStore store = new PersistentTripleStore(manager); try { Uri toRemove = new Uri(TestGraphUri1); IGraph g = store[toRemove]; Assert.True(store.HasGraph(toRemove), "In-memory view should contain the Graph we wish to remove"); store.Remove(toRemove); Assert.False(store.HasGraph(toRemove), "In-memory view should no longer contain the Graph we removed prior to the Flush/Discard operation"); store.Add(g); Assert.True(store.HasGraph(toRemove), "In-memory should now contain the Graph we added back"); store.Discard(); Assert.True(store.HasGraph(toRemove), "In-Memory view should still contain the Graph we removed and added back regardless as we Discarded that change"); AnyHandler handler = new AnyHandler(); manager.LoadGraph(handler, toRemove); Assert.True(handler.Any, "Attempting to load Graph from underlying store should return something as the Discard() prevented the removal and add back being persisted"); } finally { store.Dispose(); } }
private void TestRemoveThenAddGraphFlushed(IStorageProvider manager) { this.EnsureTestDataset(manager); PersistentTripleStore store = new PersistentTripleStore(manager); try { Uri toRemove = new Uri(TestGraphUri1); IGraph g = store[toRemove]; Assert.True(store.HasGraph(toRemove), "In-memory view should contain the Graph we wish to remove"); store.Remove(toRemove); Assert.False(store.HasGraph(toRemove), "In-memory view should no longer contain the Graph we removed prior to the Flush/Discard operation"); store.Add(g); Assert.True(store.HasGraph(toRemove), "In-memory should now contain the Graph we added back"); store.Flush(); Assert.True(store.HasGraph(toRemove), "In-Memory view should still contain the Graph we added back after Flushing"); AnyHandler handler = new AnyHandler(); manager.LoadGraph(handler, toRemove); Assert.True(handler.Any, "Attempting to load Graph from underlying store should return something after the Flush() operation since we didn't remove the graph in the end"); } finally { store.Dispose(); } }
private void TestAddThenRemoveGraphDiscarded(IStorageProvider manager) { this.EnsureTestDataset(manager); PersistentTripleStore store = new PersistentTripleStore(manager); try { Graph g = new Graph(); g.BaseUri = new Uri("http://example.org/persistence/graphs/added/discarded"); this.EnsureGraphDeleted(manager, g.BaseUri); g.Assert(g.CreateUriNode("rdf:subject"), g.CreateUriNode("rdf:predicate"), g.CreateUriNode("rdf:object")); store.Add(g); Assert.True(store.HasGraph(g.BaseUri), "Newly added graph should exist in in-memory view of store"); Assert.False(manager.ListGraphs().Contains(g.BaseUri), "Newly added graph should not yet exist in underlying store"); store.Remove(g.BaseUri); Assert.False(store.HasGraph(g.BaseUri), "Graph then removed before Flush/Discard() should no longer exist in in-memory view of store"); Assert.False(manager.ListGraphs().Contains(g.BaseUri), "Graph then removed should still not exist in underlying store"); store.Discard(); Assert.False(store.HasGraph(g.BaseUri), "After Discard() is called graph should not exist in in-memory view of store"); Assert.False(manager.ListGraphs().Contains(g.BaseUri), "After Discard() is called added then removed graph should not exist in underlying store"); } finally { store.Dispose(); } }
private void TestRemoveGraphFlushed(IStorageProvider manager) { this.EnsureTestDataset(manager); PersistentTripleStore store = new PersistentTripleStore(manager); try { Uri toRemove = new Uri(TestGraphUri1); Assert.True(store.HasGraph(toRemove), "In-memory view should contain the Graph we wish to remove"); store.Remove(toRemove); Assert.False(store.HasGraph(toRemove), "In-memory view should no longer contain the Graph we removed prior to the Flush/Discard operation"); store.Flush(); Assert.False(store.HasGraph(toRemove), "In-Memory view should no longer contain the Graph we removed after Flushing"); AnyHandler handler = new AnyHandler(); try { manager.LoadGraph(handler, toRemove); } catch { } Assert.False(handler.Any, "Attempting to load Graph from underlying store should return nothing after the Flush() operation"); } finally { store.Dispose(); } }
private void TestAddGraphDiscarded(IStorageProvider manager) { this.EnsureTestDataset(manager); PersistentTripleStore store = new PersistentTripleStore(manager); try { Graph g = new Graph(); g.BaseUri = new Uri("http://example.org/persistence/graphs/added/discarded"); this.EnsureGraphDeleted(manager, g.BaseUri); g.Assert(g.CreateUriNode("rdf:subject"), g.CreateUriNode("rdf:predicate"), g.CreateUriNode("rdf:object")); store.Add(g); Assert.True(store.HasGraph(g.BaseUri), "Newly added graph should exist in in-memory view of store"); Assert.False(manager.ListGraphs().Contains(g.BaseUri), "Newly added graph should not yet exist in underlying store"); store.Discard(); Graph h = new Graph(); try { manager.LoadGraph(h, g.BaseUri); } catch { //No catch needed } Assert.True(h.IsEmpty, "After Discard() is called a graph may exist in the underlying store but it MUST be empty"); } finally { store.Dispose(); } }
private void TestContains(IStorageProvider manager) { this.EnsureTestDataset(manager); PersistentTripleStore store = new PersistentTripleStore(manager); try { Assert.True(store.HasGraph(new Uri(TestGraphUri1)), "URI 1 should return true for HasGraph()"); Assert.True(store.Graphs.Contains(new Uri(TestGraphUri1)), "URI 1 should return true for Graphs.Contains()"); Assert.True(store.HasGraph(new Uri(TestGraphUri2)), "URI 2 should return true for HasGraph()"); Assert.True(store.Graphs.Contains(new Uri(TestGraphUri2)), "URI 2 should return true for Graphs.Contains()"); Assert.True(store.HasGraph(new Uri(TestGraphUri3)), "URI 3 should return true for HasGraph()"); Assert.True(store.Graphs.Contains(new Uri(TestGraphUri3)), "URI 3 should return true for Graphs.Contains()"); Uri noSuchThing = new Uri("http://example.org/persistence/graphs/noSuchGraph"); Assert.False(store.HasGraph(noSuchThing), "Bad URI should return false for HasGraph()"); Assert.False(store.Graphs.Contains(noSuchThing), "Bad URI should return false for Graphs.Contains()"); } finally { store.Dispose(); } }
public bool IsReadyToUse() => _repository.HasGraph(new Uri(_chainGraphIri));