|
using Raven.Database;
using Xunit;
namespace Raven.Tests.Storage
{
public class Identity : AbstractDocumentStorageTest
{
private readonly DocumentDatabase db;
public Identity()
{
db = new DocumentDatabase(new RavenConfiguration {DataDirectory = "raven.db.test.esent"});
}
public override void Dispose()
{
db.Dispose();
base.Dispose();
}
[Fact]
public void CanGetNewIdentityValues()
{
db.TransactionalStorage.Batch(actions=>
{
var nextIdentityValue = actions.GetNextIdentityValue("users");
Assert.Equal(1, nextIdentityValue);
nextIdentityValue = actions.GetNextIdentityValue("users");
Assert.Equal(2, nextIdentityValue);
actions.Commit();
});
db.TransactionalStorage.Batch(actions =>
{
var nextIdentityValue = actions.GetNextIdentityValue("users");
Assert.Equal(3, nextIdentityValue);
nextIdentityValue = actions.GetNextIdentityValue("users");
Assert.Equal(4, nextIdentityValue);
actions.Commit();
});
}
[Fact]
public void CanGetNewIdentityValuesWhenUsingTwoDifferentItems()
{
db.TransactionalStorage.Batch(actions =>
{
var nextIdentityValue = actions.GetNextIdentityValue("users");
Assert.Equal(1, nextIdentityValue);
nextIdentityValue = actions.GetNextIdentityValue("blogs");
Assert.Equal(1, nextIdentityValue);
actions.Commit();
});
db.TransactionalStorage.Batch(actions =>
{
var nextIdentityValue = actions.GetNextIdentityValue("blogs");
Assert.Equal(2, nextIdentityValue);
nextIdentityValue = actions.GetNextIdentityValue("users");
Assert.Equal(2, nextIdentityValue);
actions.Commit();
});
}
}
}
|
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.