|
using System;
using Newtonsoft.Json.Linq;
using Raven.Database;
using Raven.Tests.Storage;
using Xunit;
namespace Raven.Tests.Transactions
{
public class MuiltipleDocuments : AbstractDocumentStorageTest
{
private readonly DocumentDatabase db;
public MuiltipleDocuments()
{
db = new DocumentDatabase(new RavenConfiguration {DataDirectory = "raven.db.test.esent"});
}
public override void Dispose()
{
db.Dispose();
base.Dispose();
}
[Fact]
public void PutTwoDocumentsAndThenCommit()
{
var transactionInformation = new TransactionInformation { Id = Guid.NewGuid(), Timeout = TimeSpan.FromMinutes(1) };
db.Put("ayende1", null, JObject.Parse("{ayende:'rahien'}"), new JObject(), transactionInformation);
db.Put("ayende2", null, JObject.Parse("{ayende:'rahien'}"), new JObject(), transactionInformation);
db.Commit(transactionInformation.Id);
Assert.NotNull(db.Get("ayende1", null));
Assert.NotNull(db.Get("ayende2", null));
}
[Fact]
public void WhileUpdatingSeveralDocumentsCannotAccessAnyOfThem()
{
var transactionInformation = new TransactionInformation { Id = Guid.NewGuid(), Timeout = TimeSpan.FromMinutes(1) };
db.Put("ayende1", null, JObject.Parse("{ayende:'rahien'}"), new JObject(), transactionInformation);
Assert.Null(db.Get("ayende1", null));
Assert.Null(db.Get("ayende2", null));
db.Put("ayende2", null, JObject.Parse("{ayende:'rahien'}"), new JObject(), transactionInformation);
Assert.Null(db.Get("ayende1", null));
Assert.Null(db.Get("ayende2", null));
db.Commit(transactionInformation.Id);
Assert.NotNull(db.Get("ayende1", null));
Assert.NotNull(db.Get("ayende2", null));
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I've been a software developer since 1996 and have enjoyed C# since 2003. I have a Bachelor's degree in Computer Science and for some reason, a Master's degree in Business Administration. I currently do software development contracting/consulting.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.