本文整理汇总了C#中BrightstarDB.Server.StoreWorker.ProcessTransaction方法的典型用法代码示例。如果您正苦于以下问题:C# StoreWorker.ProcessTransaction方法的具体用法?C# StoreWorker.ProcessTransaction怎么用?C# StoreWorker.ProcessTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BrightstarDB.Server.StoreWorker
的用法示例。
在下文中一共展示了StoreWorker.ProcessTransaction方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestTransaction
public void TestTransaction()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus status = storeWorker.GetJobStatus(jobId.ToString());
while (status.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
status = storeWorker.GetJobStatus(jobId.ToString());
}
}
示例2: TestDeletingTransactionHeadersDisablesLogging
public void TestDeletingTransactionHeadersDisablesLogging()
{
// create a store
var sid = CreateStore(withTransactionLog: true);
var txnHeadersFile = Path.Combine(Configuration.StoreLocation, sid, "transactionheaders.bs");
var txnLogFile = Path.Combine(Configuration.StoreLocation, sid, "transactions.bs");
// Creating the store should create the files
Assert.IsTrue(File.Exists(txnHeadersFile), "Expected transactionheaders.bs file to be created when store is initially created");
Assert.IsTrue(File.Exists(txnLogFile), "Expected transactions.bs file to be created when store is initially created");
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
AssertJobCompletedOk(storeWorker, jobId);
long logLength;
using (var txnStream = File.OpenRead(txnLogFile))
{
logLength = txnStream.Length;
Assert.Greater(logLength, 0L);
}
// Remove the transaction headers file
File.Delete(txnHeadersFile);
// Execute a second transaction
const string data2 = @"<http://www.networkedplanet.com/people/kal> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
jobId = storeWorker.ProcessTransaction("", "", "", data2, Constants.DefaultGraphUri, "nt");
AssertJobCompletedOk(storeWorker, jobId);
Assert.IsFalse(File.Exists(txnHeadersFile), "Did not expect transactionheaders.bs to reappear after second transaction");
Assert.IsTrue(File.Exists(txnLogFile), "Expected transactions.bs file to remain untouched after second transaction");
using (var txnStream = File.OpenRead(txnLogFile))
{
Assert.AreEqual(logLength, txnStream.Length, "Expected transaction log file to be unchanged in size by second transaction");
}
}
示例3: TestTouchingTransactionHeadersEnablesLogging
public void TestTouchingTransactionHeadersEnablesLogging()
{
// create a store with logging disabled
var sid = CreateStore(withTransactionLog: false);
var txnHeadersFile = Path.Combine(Configuration.StoreLocation, sid, "transactionheaders.bs");
var txnLogFile = Path.Combine(Configuration.StoreLocation, sid, "transactions.bs");
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// Should be no transaction files because we created the store with logging disabled
Assert.IsFalse(File.Exists(txnHeadersFile));
Assert.IsFalse(File.Exists(txnLogFile));
// But now "touch" the header file to create it
File.Create(txnHeadersFile).Close();
// execute a transaction that logs data
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
AssertJobCompletedOk(storeWorker, jobId);
// Transaction files should now both be there
Assert.IsTrue(File.Exists(txnHeadersFile));
Assert.IsTrue(File.Exists(txnLogFile));
// There should also be some content in both files
using (var txnStream = File.OpenRead(txnHeadersFile))
{
Assert.Greater(txnStream.Length, 0L);
}
using (var txnStream = File.OpenRead(txnLogFile))
{
Assert.Greater(txnStream.Length, 0L);
}
}
示例4: TestNoTransactionLogWhenLoggingDisabled
public void TestNoTransactionLogWhenLoggingDisabled()
{
// create a store
var sid = CreateStore(withTransactionLog:false);
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
Assert.IsFalse(File.Exists(Path.Combine(Configuration.StoreLocation, sid, "transactionheaders.bs")));
Assert.IsFalse(File.Exists(Path.Combine(Configuration.StoreLocation, sid, "transactions.bs")));
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
var jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.IsFalse(File.Exists(Path.Combine(Configuration.StoreLocation, sid, "transactionheaders.bs")));
Assert.IsFalse(File.Exists(Path.Combine(Configuration.StoreLocation, sid, "transactions.bs")));
}
示例5: TestTransactionLogCreatedWhenLoggingEnabled
public void TestTransactionLogCreatedWhenLoggingEnabled()
{
// create a store
var sid = CreateStore(withTransactionLog: true);
var txnHeadersFile = Path.Combine(Configuration.StoreLocation, sid, "transactionheaders.bs");
var txnLogFile = Path.Combine(Configuration.StoreLocation, sid, "transactions.bs");
// Creating the store should create the files
Assert.IsTrue(File.Exists(txnHeadersFile), "Expected transactionheaders.bs file to be created when store is initially created");
Assert.IsTrue(File.Exists(txnLogFile), "Expected transactions.bs file to be created when store is initially created");
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
// Transaction files should still be there
Assert.IsTrue(File.Exists(txnHeadersFile));
Assert.IsTrue(File.Exists(txnLogFile));
// There should also be some content in both files
using (var txnStream = File.OpenRead(txnHeadersFile))
{
Assert.Greater(txnStream.Length, 0L);
}
using (var txnStream = File.OpenRead(txnLogFile))
{
Assert.Greater(txnStream.Length, 0L);
}
}
示例6: TestQueryCaching
public void TestQueryCaching()
{
Configuration.EnableQueryCache = true;
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk && jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.AreEqual(JobStatus.CompletedOk, jobStatus.JobStatus, "Import failed: {0} : {1}", jobStatus.Information, jobStatus.ExceptionDetail);
var sw = new Stopwatch();
sw.Start();
var queryResult = storeWorker.Query("select * where { ?a ?b ?c }", SparqlResultsFormat.Xml, new[] { Constants.DefaultGraphUri });
sw.Stop();
Console.WriteLine("initial query took : " + sw.ElapsedMilliseconds);
var initTime = sw.ElapsedMilliseconds;
sw = new Stopwatch();
sw.Start();
var cachedResult = storeWorker.Query("select * where { ?a ?b ?c }", SparqlResultsFormat.Xml, new[] { Constants.DefaultGraphUri });
sw.Stop();
Console.WriteLine("warm query took : " + sw.ElapsedMilliseconds);
Thread.Sleep(1000);
sw = new Stopwatch();
sw.Start();
cachedResult = storeWorker.Query("select * where { ?a ?b ?c }", SparqlResultsFormat.Xml, new[] { Constants.DefaultGraphUri });
sw.Stop();
Console.WriteLine("cached query took : " + sw.ElapsedMilliseconds);
var cachedTime = sw.ElapsedMilliseconds;
Assert.AreEqual(queryResult, cachedResult);
if (cachedTime >= initTime)
{
Assert.Inconclusive(
"Expected time to read from cache ({0}ms) to be less than time to execute query ({1}ms).",
cachedTime, initTime);
}
Configuration.EnableQueryCache = false;
}
示例7: TestConsolidateStore
public void TestConsolidateStore()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
var data =
@"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("","", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
jobId = Guid.NewGuid();
storeWorker.QueueJob(new ConsolidateJob(jobId, null, storeWorker));
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk && jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.AreEqual(JobStatus.CompletedOk, jobStatus.JobStatus);
// open store and find all triples
var results = storeWorker.Query("select * where { ?a ?b ?c }", SparqlResultsFormat.Xml, new[] { Constants.DefaultGraphUri });
var doc = XDocument.Parse(results);
XNamespace sparqlNs = "http://www.w3.org/2005/sparql-results#";
Assert.AreEqual(1, doc.Descendants(sparqlNs + "result").Count());
data =
@"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
jobId = storeWorker.ProcessTransaction("", "", data, "", Constants.DefaultGraphUri, "nt");
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.AreEqual(JobStatus.CompletedOk, jobStatus.JobStatus);
// consolidate again
jobId = Guid.NewGuid();
storeWorker.QueueJob(new ConsolidateJob(jobId, null, storeWorker));
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk && jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.AreEqual(JobStatus.CompletedOk, jobStatus.JobStatus);
results = storeWorker.Query("select * where { ?a ?b ?c }", SparqlResultsFormat.Xml, new[] { Constants.DefaultGraphUri });
doc = XDocument.Parse(results);
Assert.AreEqual(0, doc.Descendants(sparqlNs + "result").Count());
}
示例8: TestDeleteStoreAfterUpdate
public void TestDeleteStoreAfterUpdate()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
// var queryResult = storeWorker.Query("select * where { ?s ?p ?o }");
storeWorker.Shutdown(true, () => _storeManager.DeleteStore(Configuration.StoreLocation +"\\" + sid));
}
示例9: TestGetErrorMessage
public void TestGetErrorMessage()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.IsTrue(jobStatus.Information.Contains("Job Error"), "Unexpected job message: '{0}'", jobStatus.Information);
Assert.IsTrue(jobStatus.ExceptionDetail.Message.Contains("Syntax error in triples to add."), "Unexpected job message: '{0}'", jobStatus.ExceptionDetail.Message);
}
示例10: TestFailedTransactionAppearsInTransactionList
public void TestFailedTransactionAppearsInTransactionList()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transaction with bad data
var data =
@"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk && jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
var transactionLog = storeWorker.TransactionLog;
var transactionList = transactionLog.GetTransactionList();
var i = 0;
while (transactionList.MoveNext())
{
i++;
}
Assert.AreEqual(1, i);
var txnList = storeWorker.TransactionLog.GetTransactionList();
txnList.MoveNext();
var tinfo = txnList.Current;
Assert.IsNotNull(tinfo);
Assert.AreEqual(TransactionType.GuardedUpdateTransaction, tinfo.TransactionType);
Assert.AreEqual(TransactionStatus.Failed, tinfo.TransactionStatus);
data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
transactionList.Reset();
i = 0;
while (transactionList.MoveNext())
{
i++;
}
Assert.AreEqual(2, i);
}
示例11: TestRecoverTransactionData
public void TestRecoverTransactionData()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
var transactionLog = storeWorker.TransactionLog;
var transactionList = transactionLog.GetTransactionList();
var i = 0;
while (transactionList.MoveNext())
{
i++;
}
Assert.AreEqual(1, i);
// now get txn data
var txnList = storeWorker.TransactionLog.GetTransactionList();
txnList.MoveNext();
var tinfo = txnList.Current;
Assert.IsNotNull(tinfo);
Assert.AreEqual(TransactionType.GuardedUpdateTransaction, tinfo.TransactionType);
Assert.AreEqual(TransactionStatus.CompletedOk, tinfo.TransactionStatus);
Assert.IsTrue(tinfo.TransactionStartTime < DateTime.UtcNow);
var job = new GuardedUpdateTransaction(Guid.NewGuid(), null, storeWorker);
using (var tdStream = storeWorker.TransactionLog.GetTransactionData(tinfo.DataStartPosition))
{
job.ReadTransactionDataFromStream(tdStream);
}
Assert.IsNotNull(job);
Assert.AreEqual(data, job.InsertData);
}
示例12: TestReadTransactionList
public void TestReadTransactionList()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
var data =
@"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction("","", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
var transactionLog = storeWorker.TransactionLog;
var transactionList = transactionLog.GetTransactionList();
var i = 0;
while (transactionList.MoveNext())
{
i++;
}
Assert.AreEqual(1, i);
data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
transactionList.Reset();
i = 0;
while (transactionList.MoveNext())
{
i++;
}
Assert.AreEqual(2, i);
}
示例13: TestTransactionWithNonExistsancePreconditionFails
public void TestTransactionWithNonExistsancePreconditionFails()
{
var storeId = CreateStore();
var storeWorker = new StoreWorker(Configuration.StoreLocation, storeId);
storeWorker.Start();
const string data =
@"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np> .\n
<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/core/version> ""1""^^<http://www.w3.org/2000/01/rdf-schema#integer> .";
const string notExistsPrecondition =
@"<http://www.networkedplanet.com/people/gra> <" + Constants.WildcardUri + "> <" + Constants.WildcardUri + ">.";
const string insertData =
@"<http://www.networkedplanet.com/people/kal> <http://www.newtorkedplanet.com/types/worksfor> <http://wwww.networkedplanet.com/companies/np> .\n
<http://www.networkedplanet.com/people/kal> <http://www.networkedplanet.com/core/version> ""1""^^<http://wwww.w3.org/2000/01/rdf-schema#integer> .";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt", "UpdateTransaction");
AssertJobCompleted(storeWorker, jobId, JobStatus.CompletedOk);
jobId = storeWorker.ProcessTransaction("", notExistsPrecondition, "", insertData, Constants.DefaultGraphUri,
"nt", "UpdateTransaction2");
var jobStatus = AssertJobCompleted(storeWorker, jobId, JobStatus.TransactionError);
Assert.IsTrue(jobStatus.ExceptionDetail.Message.Contains("Transaction preconditions failed"),
"Unexpected job exception message: {0}", jobStatus.ExceptionDetail.Message);
}
示例14: TestTransactionWithPrecondition
public void TestTransactionWithPrecondition()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
var data =
@"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np> .\n
<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/core/version> ""1""^^<http://www.w3.org/2000/01/rdf-schema#integer> .";
var jobId = storeWorker.ProcessTransaction("", "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk && jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.IsTrue(jobStatus.JobStatus == JobStatus.CompletedOk, "Initial insert failed: {0} : {1}", jobStatus.Information, jobStatus.ExceptionDetail);
// now test precondition
const string preconds = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/core/version> ""1""^^<http://www.w3.org/2000/01/rdf-schema#integer>";
data =
@"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
jobId = storeWorker.ProcessTransaction(preconds,"", "", data, Constants.DefaultGraphUri, "nt");
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.CompletedOk && jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.IsTrue(jobStatus.JobStatus == JobStatus.CompletedOk, "Transaction execution failed: {0} : {1}", jobStatus.Information, jobStatus.ExceptionDetail);
}
示例15: TestTransactionWithPreconditionFails
public void TestTransactionWithPreconditionFails()
{
// create a store
var sid = CreateStore();
// initialise and start the store worker
var storeWorker = new StoreWorker(Configuration.StoreLocation, sid);
storeWorker.Start();
// execute transactions
const string preconds = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/core/version> ""1""^^<http://www.w3.org/2000/01/rdf-schema#integer>";
// execute transactions
const string data = @"<http://www.networkedplanet.com/people/gra> <http://www.networkedplanet.com/types/worksfor> <http://www.networkedplanet.com/companies/np>";
var jobId = storeWorker.ProcessTransaction(preconds, "", "", data, Constants.DefaultGraphUri, "nt");
JobExecutionStatus jobStatus = storeWorker.GetJobStatus(jobId.ToString());
while (jobStatus.JobStatus != JobStatus.TransactionError)
{
Thread.Sleep(1000);
jobStatus = storeWorker.GetJobStatus(jobId.ToString());
}
Assert.AreEqual(jobStatus.JobStatus, JobStatus.TransactionError);
}