public async Task ShouldQueryByReducedIndex()
{
_store.RegisterIndexes<ArticleIndexProvider>();
using (var session = _store.CreateSession())
{
var dates = new[]
{
new DateTime(2011, 11, 1),
new DateTime(2011, 11, 2),
new DateTime(2011, 11, 3),
new DateTime(2011, 11, 4),
new DateTime(2011, 11, 1),
new DateTime(2011, 11, 2),
new DateTime(2011, 11, 3),
new DateTime(2011, 11, 1),
new DateTime(2011, 11, 2),
new DateTime(2011, 11, 1)
};
var articles = dates.Select(x => new Article
{
PublishedUtc = x
});
foreach (var article in articles)
{
session.Save(article);
}
}
using (var session = _store.CreateSession())
{
Assert.Equal(10, await session.QueryAsync().For<Article>().With<ArticlesByDay>().Count());
Assert.Equal(4, await session.QueryAsync<Article, ArticlesByDay>(x => x.DayOfYear == 305).Count());
Assert.Equal(3, await session.QueryAsync<Article, ArticlesByDay>(x => x.DayOfYear == 306).Count());
Assert.Equal(2, await session.QueryAsync<Article, ArticlesByDay>(x => x.DayOfYear == 307).Count());
Assert.Equal(1, await session.QueryAsync<Article, ArticlesByDay>(x => x.DayOfYear == 308).Count());
Assert.Equal(7, await session.QueryAsync<Article, ArticlesByDay>(x => x.DayOfYear == 305 || x.DayOfYear == 306).Count());
Assert.Equal(7, (await session.QueryAsync<Article, ArticlesByDay>(x => x.DayOfYear == 305 || x.DayOfYear == 306).List()).Count());
}
}