|
using System;
using Newtonsoft.Json.Linq;
using Raven.Database;
using Raven.Database.Indexing;
using Xunit;
using System.Linq;
namespace Raven.Tests.Storage
{
public class CreateIndexes : AbstractDocumentStorageTest
{
private readonly DocumentDatabase db;
public CreateIndexes()
{
db = new DocumentDatabase(new RavenConfiguration {DataDirectory = "raven.db.test.esent"});
}
#region IDisposable Members
public override void Dispose()
{
db.Dispose();
base.Dispose();
}
#endregion
[Fact]
public void Index_with_same_name_can_be_added_twice()
{
db.PutIndex("pagesByTitle",
new IndexDefinition
{
Map = @"
from doc in docs
where doc.type == ""page""
select new { Key = doc.title, Value = doc.content, Size = doc.size };
"
});
db.PutIndex("pagesByTitle",
new IndexDefinition
{
Map = @"
from doc in docs
where doc.type == ""page""
select new { Key = doc.title, Value = doc.content, Size = doc.size };
"
});
}
[Fact]
public void Can_add_index()
{
db.PutIndex("pagesByTitle",
new IndexDefinition
{
Map = @"
from doc in docs
where doc.type == ""page""
select new { Key = doc.title, Value = doc.content, Size = doc.size };
"
});
var indexNames = db.IndexDefinitionStorage.IndexNames.Where(x=>x.StartsWith("Raven") == false).ToArray();
Assert.Equal(1, indexNames.Length);
Assert.Equal("pagesByTitle", indexNames[0]);
}
[Fact]
public void Can_list_index_definition()
{
const string definition =
@"
from doc in docs
where doc.type == ""page""
select new { Key = doc.title, Value = doc.content, Size = doc.size };
";
db.PutIndex("pagesByTitle", new IndexDefinition{Map = definition});
var actualDefinition = db.IndexDefinitionStorage.GetIndexDefinition("pagesByTitle");
Assert.Equal(definition, actualDefinition.Map);
}
}
}
|
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.