Guest User

Untitled

a guest
Jul 20th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. using Raven.Database.Indexing;
  2. using Xunit;
  3. using System.Linq;
  4. using System;
  5.  
  6. namespace Raven.Tests.Bugs.Indexing
  7. {
  8. public class UseMaxForDateTimeTypeInReduce : LocalClientTest
  9. {
  10. private const string map = @"
  11. from doc in docs
  12. from tag in doc.Tags
  13. select new { Name = tag.Name, CreatedTime = doc.CreatedTime }
  14. ";
  15.  
  16. private const string reduce = @"
  17. from agg in results
  18. group agg by agg.Name into g
  19. let createdTime = g.Max(x => x.CreatedTime)
  20. select new {Name = g.Key, CreatedTime = createdTime}
  21. ";
  22.  
  23. [Fact]
  24. public void CanUseMax()
  25. {
  26. using (var store = NewDocumentStore())
  27. {
  28. store.DatabaseCommands.PutIndex("test",
  29. new IndexDefinition
  30. {
  31. Map = map,
  32. Reduce = reduce,
  33. });
  34.  
  35. using (var sesion = store.OpenSession())
  36. {
  37. sesion.Store(new { Topic = "RavenDB is Hot", CreatedTime = DateTime.Now, Tags = new[] { new { Name = "DB" }, new { Name = "NoSQL" } } });
  38.  
  39. sesion.Store(new { Topic = "RavenDB is Fast", CreatedTime = DateTime.Now.AddMinutes(10), Tags = new[] { new { Name = "NoSQL" } } });
  40.  
  41. sesion.SaveChanges();
  42. }
  43.  
  44. using (var sesion = store.OpenSession())
  45. {
  46. sesion.Advanced.LuceneQuery<dynamic>("test").WaitForNonStaleResults().ToArray();
  47. }
  48.  
  49. Assert.Empty(store.DocumentDatabase.Statistics.Errors);
  50. }
  51. }
  52. }
  53. }
Add Comment
Please, Sign In to add comment