public async Task ShouldOrderJoinedMapIndexes()
{
_store.RegisterIndexes<PersonIndexProvider>();
_store.RegisterIndexes<PersonAgeIndexProvider>();
using (var session = _store.CreateSession())
{
var bill = new Person
{
Firstname = "Bill",
Age = 1
};
var steve = new Person
{
Firstname = "Steve",
Age = 2
};
var paul = new Person
{
Firstname = "Scott",
Age = 2
};
session.Save(bill);
session.Save(steve);
session.Save(paul);
}
using (var session = _store.CreateSession())
{
Assert.Equal(2, await session.QueryAsync().For<Person>()
.With<PersonByName>(x => x.Name.StartsWith("S"))
.With<PersonByAge>(x => x.Age == 2)
.Count());
Assert.Equal("Scott", (await session.QueryAsync().For<Person>()
.With<PersonByName>(x => x.Name.StartsWith("S"))
.OrderBy(x => x.Name)
.With<PersonByAge>(x => x.Age == 2)
.FirstOrDefault())
.Firstname);
Assert.Equal("Steve", (await session.QueryAsync().For<Person>()
.With<PersonByName>(x => x.Name.StartsWith("S"))
.OrderByDescending(x => x.Name)
.With<PersonByAge>(x => x.Age == 2)
.FirstOrDefault())
.Firstname);
}
}